]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - board/sunxi/Kconfig
sunxi: Convert CONFIG_MACPWR to Kconfig
[people/ms/u-boot.git] / board / sunxi / Kconfig
index 3ec011aa1b560f9548d94307ab8f6f040d4df08c..87f282a49337c93fb556717609300f7ed8b7d969 100644 (file)
@@ -1,5 +1,45 @@
 if ARCH_SUNXI
 
+config IDENT_STRING
+       default " Allwinner Technology"
+
+# FIXME: Should not redefine these Kconfig symbols
+config PRE_CONSOLE_BUFFER
+       default y
+
+config SPL_GPIO_SUPPORT
+       default y
+
+config SPL_LIBCOMMON_SUPPORT
+       default y
+
+config SPL_LIBDISK_SUPPORT
+       default y
+
+config SPL_LIBGENERIC_SUPPORT
+       default y
+
+config SPL_MMC_SUPPORT
+       depends on SPL && GENERIC_MMC
+       default y
+
+config SPL_POWER_SUPPORT
+       default y
+
+config SPL_SERIAL_SUPPORT
+       default y
+
+config SUNXI_HIGH_SRAM
+       bool
+       default n
+       ---help---
+       Older Allwinner SoCs have their mask boot ROM mapped just below 4GB,
+       with the first SRAM region being located at address 0.
+       Some newer SoCs map the boot ROM at address 0 instead and move the
+       SRAM to 64KB, just behind the mask ROM.
+       Chips using the latter setup are supposed to select this option to
+       adjust the addresses accordingly.
+
 # Note only one of these may be selected at a time! But hidden choices are
 # not supported by Kconfig
 config SUNXI_GEN_SUN4I
@@ -16,6 +56,11 @@ config SUNXI_GEN_SUN6I
        watchdog, etc.
 
 
+config MACH_SUNXI_H3_H5
+       bool
+       select SUNXI_GEN_SUN6I
+       select SUPPORT_SPL
+
 choice
        prompt "Sunxi SoC Variant"
        optional
@@ -23,12 +68,14 @@ choice
 config MACH_SUN4I
        bool "sun4i (Allwinner A10)"
        select CPU_V7
+       select ARM_CORTEX_CPU_IS_UP
        select SUNXI_GEN_SUN4I
        select SUPPORT_SPL
 
 config MACH_SUN5I
        bool "sun5i (Allwinner A13)"
        select CPU_V7
+       select ARM_CORTEX_CPU_IS_UP
        select SUNXI_GEN_SUN4I
        select SUPPORT_SPL
 
@@ -37,6 +84,7 @@ config MACH_SUN6I
        select CPU_V7
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
+       select ARCH_SUPPORT_PSCI
        select SUNXI_GEN_SUN6I
        select SUPPORT_SPL
        select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
@@ -46,6 +94,7 @@ config MACH_SUN7I
        select CPU_V7
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
+       select ARCH_SUPPORT_PSCI
        select SUNXI_GEN_SUN4I
        select SUPPORT_SPL
        select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
@@ -55,6 +104,7 @@ config MACH_SUN8I_A23
        select CPU_V7
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
+       select ARCH_SUPPORT_PSCI
        select SUNXI_GEN_SUN6I
        select SUPPORT_SPL
        select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
@@ -64,6 +114,7 @@ config MACH_SUN8I_A33
        select CPU_V7
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
+       select ARCH_SUPPORT_PSCI
        select SUNXI_GEN_SUN6I
        select SUPPORT_SPL
        select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
@@ -79,26 +130,59 @@ config MACH_SUN8I_H3
        select CPU_V7
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
-       select SUNXI_GEN_SUN6I
-       select SUPPORT_SPL
+       select ARCH_SUPPORT_PSCI
+       select MACH_SUNXI_H3_H5
        select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
 
 config MACH_SUN9I
        bool "sun9i (Allwinner A80)"
        select CPU_V7
+       select SUNXI_HIGH_SRAM
        select SUNXI_GEN_SUN6I
+       select SUPPORT_SPL
 
 config MACH_SUN50I
        bool "sun50i (Allwinner A64)"
        select ARM64
        select SUNXI_GEN_SUN6I
+       select SUNXI_HIGH_SRAM
+       select SUPPORT_SPL
+
+config MACH_SUN50I_H5
+       bool "sun50i (Allwinner H5)"
+       select ARM64
+       select MACH_SUNXI_H3_H5
+       select SUNXI_HIGH_SRAM
 
 endchoice
 
 # The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33"
 config MACH_SUN8I
        bool
-       default y if MACH_SUN8I_A23 || MACH_SUN8I_A33 || MACH_SUN8I_H3 || MACH_SUN8I_A83T
+       default y if MACH_SUN8I_A23 || MACH_SUN8I_A33 || MACH_SUNXI_H3_H5 || MACH_SUN8I_A83T
+
+config RESERVE_ALLWINNER_BOOT0_HEADER
+       bool "reserve space for Allwinner boot0 header"
+       select ENABLE_ARM_SOC_BOOT0_HOOK
+       ---help---
+       Prepend a 1536 byte (empty) header to the U-Boot image file, to be
+       filled with magic values post build. The Allwinner provided boot0
+       blob relies on this information to load and execute U-Boot.
+       Only needed on 64-bit Allwinner boards so far when using boot0.
+
+config ARM_BOOT_HOOK_RMR
+       bool
+       depends on ARM64
+       default y
+       select ENABLE_ARM_SOC_BOOT0_HOOK
+       ---help---
+       Insert some ARM32 code at the very beginning of the U-Boot binary
+       which uses an RMR register write to bring the core into AArch64 mode.
+       The very first instruction acts as a switch, since it's carefully
+       chosen to be a NOP in one mode and a branch in the other, so the
+       code would only be executed if not already in AArch64.
+       This allows both the SPL and the U-Boot proper to be entered in
+       either mode and switch to AArch64 if needed.
 
 config DRAM_TYPE
        int "sunxi dram type"
@@ -109,11 +193,14 @@ config DRAM_TYPE
 
 config DRAM_CLK
        int "sunxi dram clock speed"
+       default 792 if MACH_SUN9I
        default 312 if MACH_SUN6I || MACH_SUN8I
        default 360 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
+       default 672 if MACH_SUN50I
        ---help---
-       Set the dram clock speed, valid range 240 - 480, must be a multiple
-       of 24.
+       Set the dram clock speed, valid range 240 - 480 (prior to sun9i),
+       must be a multiple of 24. For the sun9i (A80), the tested values
+       (for DDR3-1600) are 312 to 792.
 
 if MACH_SUN5I || MACH_SUN7I
 config DRAM_MBUS_CLK
@@ -128,6 +215,8 @@ config DRAM_ZQ
        int "sunxi dram zq value"
        default 123 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
        default 127 if MACH_SUN7I
+       default 4145117 if MACH_SUN9I
+       default 3881915 if MACH_SUN50I
        ---help---
        Set the dram zq value.
 
@@ -135,6 +224,7 @@ config DRAM_ODT_EN
        bool "sunxi dram odt enable"
        default n if !MACH_SUN8I_A23
        default y if MACH_SUN8I_A23
+       default y if MACH_SUN50I
        ---help---
        Select this to enable dram odt (on die termination).
 
@@ -220,7 +310,7 @@ endif
 config SYS_CLK_FREQ
        default 816000000 if MACH_SUN50I
        default 912000000 if MACH_SUN7I
-       default 1008000000 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
+       default 1008000000 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I || MACH_SUN9I
 
 config SYS_CONFIG_NAME
        default "sun4i" if MACH_SUN4I
@@ -255,13 +345,16 @@ config OLD_SUNXI_KERNEL_COMPAT
        Set this to enable various workarounds for old kernels, this results in
        sub-optimal settings for newer kernels, only enable if needed.
 
-config MMC
-       depends on !UART0_PORT_F
-       default y if ARCH_SUNXI
+config MACPWR
+       string "MAC power pin"
+       default ""
+       help
+         Set the pin used to power the MAC. This takes a string in the format
+         understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
 
 config MMC0_CD_PIN
        string "Card detect pin for mmc0"
-       default "PF6" if MACH_SUN8I_A83T || MACH_SUN8I_H3 || MACH_SUN50I
+       default "PF6" if MACH_SUN8I_A83T || MACH_SUNXI_H3_H5 || MACH_SUN50I
        default ""
        ---help---
        Set the card detect pin for mmc0, leave empty to not use cd. This
@@ -426,7 +519,7 @@ config AXP_GPIO
 
 config VIDEO
        bool "Enable graphical uboot console on HDMI, LCD or VGA"
-       depends on !MACH_SUN8I_A83T && !MACH_SUN8I_H3 && !MACH_SUN9I && !MACH_SUN50I
+       depends on !MACH_SUN8I_A83T && !MACH_SUNXI_H3_H5 && !MACH_SUN9I && !MACH_SUN50I
        default y
        ---help---
        Say Y here to add support for using a cfb console on the HDMI, LCD
@@ -620,6 +713,13 @@ config VIDEO_LCD_TL059WV5C0
 
 endchoice
 
+config SATAPWR
+       string "SATA power pin"
+       default ""
+       help
+         Set the pins used to power the SATA. This takes a string in the
+         format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
+         port H.
 
 config GMAC_TX_DELAY
        int "GMAC Transmit Clock Delay Chain"