]> git.sur5r.net Git - u-boot/blobdiff - arch/arm/Kconfig
arm: zynq: Rework FPGA initialization
[u-boot] / arch / arm / Kconfig
index 35fcd2427412dbc088c982b6b76a272c31128bb6..a7618f9ff226c1f9987314097e2ff9178cbd7899 100644 (file)
@@ -74,6 +74,28 @@ config ARM_ASM_UNIFIED
 config THUMB2_KERNEL
        bool
 
+config SYS_ARM_CACHE_CP15
+       bool "CP15 based cache enabling support"
+       help
+         Select this if your processor suports enabling caches by using
+         CP15 registers.
+
+config SYS_ARM_MMU
+       bool "MMU-based Paged Memory Management Support"
+       select SYS_ARM_CACHE_CP15
+       help
+         Select if you want MMU-based virtualised addressing space
+         support by paged memory management.
+
+config SYS_ARM_MPU
+       bool 'Use the ARM v7 PMSA Compliant MPU'
+       help
+         Some ARM systems without an MMU have instead a Memory Protection
+         Unit (MPU) that defines the type and permissions for regions of
+         memory.
+         If your CPU has an MPU then you should choose 'y' here unless you
+         know that you do not want to use the MPU.
+
 # If set, the workarounds for these ARM errata are applied early during U-Boot
 # startup. Note that in general these options force the workarounds to be
 # applied; no CPU-type/version detection exists, unlike the similar options in
@@ -158,47 +180,64 @@ config ARM_ERRATA_855873
 config CPU_ARM720T
        bool
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
 config CPU_ARM920T
        bool
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
 config CPU_ARM926EJS
        bool
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
 config CPU_ARM946ES
        bool
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
 config CPU_ARM1136
        bool
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
 config CPU_ARM1176
        bool
        select HAS_VBAR
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
-config CPU_V7
+config CPU_V7A
        bool
        select HAS_VBAR
        select HAS_THUMB2
        select SYS_CACHE_SHIFT_6
+       imply SYS_ARM_MMU
 
 config CPU_V7M
        bool
        select HAS_THUMB2
        select THUMB2_KERNEL
        select SYS_CACHE_SHIFT_5
+       select SYS_ARM_MPU
+
+config CPU_V7R
+       bool
+       select HAS_THUMB2
+       select SYS_CACHE_SHIFT_6
+       select SYS_ARM_MPU
+       select SYS_ARM_CACHE_CP15
 
 config CPU_PXA
        bool
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
 config CPU_SA1100
        bool
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
 config SYS_CPU
        default "arm720t" if CPU_ARM720T
@@ -207,7 +246,8 @@ config SYS_CPU
        default "arm946es" if CPU_ARM946ES
        default "arm1136" if CPU_ARM1136
        default "arm1176" if CPU_ARM1176
-       default "armv7" if CPU_V7
+       default "armv7" if CPU_V7A
+       default "armv7" if CPU_V7R
        default "armv7m" if CPU_V7M
        default "pxa" if CPU_PXA
        default "sa1100" if CPU_SA1100
@@ -221,8 +261,9 @@ config SYS_ARM_ARCH
        default 5 if CPU_ARM946ES
        default 6 if CPU_ARM1136
        default 6 if CPU_ARM1176
-       default 7 if CPU_V7
+       default 7 if CPU_V7A
        default 7 if CPU_V7M
+       default 7 if CPU_V7R
        default 5 if CPU_PXA
        default 4 if CPU_SA1100
        default 8 if ARM64
@@ -244,7 +285,7 @@ config SYS_CACHELINE_SIZE
 
 config SYS_ARCH_TIMER
        bool "ARM Generic Timer support"
-       depends on CPU_V7 || ARM64
+       depends on CPU_V7A || ARM64
        default y if ARM64
        help
          The ARM Generic Timer (aka arch-timer) provides an architected
@@ -254,7 +295,7 @@ config SYS_ARCH_TIMER
 
 config ARM_SMCCC
        bool "Support for ARM SMC Calling Convention (SMCCC)"
-       depends on CPU_V7 || ARM64
+       depends on CPU_V7A || ARM64
        select ARM_PSCI_FW
        help
          Say Y here if you want to enable ARM SMC Calling Convention.
@@ -440,7 +481,7 @@ config TARGET_SPEAR600
 
 config TARGET_STV0991
        bool "Support stv0991"
-       select CPU_V7
+       select CPU_V7A
        select DM
        select DM_SERIAL
        select DM_SPI
@@ -493,36 +534,36 @@ config ARCH_BCM283X
 
 config TARGET_VEXPRESS_CA15_TC2
        bool "Support vexpress_ca15_tc2"
-       select CPU_V7
+       select CPU_V7A
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
        select PL011_SERIAL
 
 config TARGET_VEXPRESS_CA5X2
        bool "Support vexpress_ca5x2"
-       select CPU_V7
+       select CPU_V7A
        select PL011_SERIAL
 
 config TARGET_VEXPRESS_CA9X4
        bool "Support vexpress_ca9x4"
-       select CPU_V7
+       select CPU_V7A
        select PL011_SERIAL
 
 config TARGET_BCM23550_W1D
        bool "Support bcm23550_w1d"
-       select CPU_V7
+       select CPU_V7A
        imply CRC32_VERIFY
        imply FAT_WRITE
 
 config TARGET_BCM28155_AP
        bool "Support bcm28155_ap"
-       select CPU_V7
+       select CPU_V7A
        imply CRC32_VERIFY
        imply FAT_WRITE
 
 config TARGET_BCMCYGNUS
        bool "Support bcmcygnus"
-       select CPU_V7
+       select CPU_V7A
        imply CRC32_VERIFY
        imply CMD_HASH
        imply FAT_WRITE
@@ -533,7 +574,7 @@ config TARGET_BCMCYGNUS
 
 config TARGET_BCMNSP
        bool "Support bcmnsp"
-       select CPU_V7
+       select CPU_V7A
 
 config TARGET_BCMNS2
        bool "Support Broadcom Northstar2"
@@ -557,7 +598,7 @@ config ARCH_EXYNOS
 
 config ARCH_S5PC1XX
        bool "Samsung S5PC1XX"
-       select CPU_V7
+       select CPU_V7A
        select DM
        select DM_SERIAL
        select DM_GPIO
@@ -565,7 +606,7 @@ config ARCH_S5PC1XX
 
 config ARCH_HIGHBANK
        bool "Calxeda Highbank"
-       select CPU_V7
+       select CPU_V7A
        select PL011_SERIAL
 
 config ARCH_INTEGRATOR
@@ -576,7 +617,7 @@ config ARCH_INTEGRATOR
 
 config ARCH_KEYSTONE
        bool "TI Keystone"
-       select CPU_V7
+       select CPU_V7A
        select SUPPORT_SPL
        select SYS_THUMB_BUILD
        select CMD_POWEROFF
@@ -587,7 +628,7 @@ config ARCH_KEYSTONE
 
 config ARCH_OMAP2PLUS
        bool "TI OMAP2+"
-       select CPU_V7
+       select CPU_V7A
        select SPL_BOARD_INIT if SPL
        select SPL_STACK_R if SPL
        select SUPPORT_SPL
@@ -626,13 +667,13 @@ config ARCH_MX28
 
 config ARCH_MX7ULP
         bool "NXP MX7ULP"
-        select CPU_V7
+       select CPU_V7A
        select ROM_UNIFIED_SECTIONS
        imply MXC_GPIO
 
 config ARCH_MX7
        bool "Freescale MX7"
-       select CPU_V7
+       select CPU_V7A
        select SYS_FSL_HAS_SEC if SECURE_BOOT
        select SYS_FSL_SEC_COMPAT_4
        select SYS_FSL_SEC_LE
@@ -642,7 +683,7 @@ config ARCH_MX7
 
 config ARCH_MX6
        bool "Freescale MX6"
-       select CPU_V7
+       select CPU_V7A
        select SYS_FSL_HAS_SEC if SECURE_BOOT
        select SYS_FSL_SEC_COMPAT_4
        select SYS_FSL_SEC_LE
@@ -656,7 +697,7 @@ endif
 
 config ARCH_MX5
        bool "Freescale MX5"
-       select CPU_V7
+       select CPU_V7A
        select BOARD_EARLY_INIT_F
        imply MXC_GPIO
 
@@ -692,7 +733,7 @@ config ARCH_SNAPDRAGON
 
 config ARCH_SOCFPGA
        bool "Altera SOCFPGA family"
-       select CPU_V7
+       select CPU_V7A
        select SUPPORT_SPL
        select OF_CONTROL
        select SPL_OF_CONTROL
@@ -750,7 +791,7 @@ config ARCH_SUNXI
 
 config ARCH_VF610
        bool "Freescale Vybrid"
-       select CPU_V7
+       select CPU_V7A
        select SYS_FSL_ERRATUM_ESDHC111
        imply CMD_MTDPARTS
        imply NAND
@@ -758,7 +799,7 @@ config ARCH_VF610
 config ARCH_ZYNQ
        bool "Xilinx Zynq based platform"
        select BOARD_LATE_INIT
-       select CPU_V7
+       select CPU_V7A
        select SUPPORT_SPL
        select OF_CONTROL
        select SPL_BOARD_INIT if SPL
@@ -780,6 +821,7 @@ config ARCH_ZYNQ
        imply CMD_CLK
        imply FAT_WRITE
        imply CMD_SPL
+       imply ARCH_EARLY_INIT_R
 
 config ARCH_ZYNQMP
        bool "Xilinx ZynqMP based platform"
@@ -1000,7 +1042,7 @@ config TARGET_LS1088ARDB
 config TARGET_LS1021AQDS
        bool "Support ls1021aqds"
        select BOARD_LATE_INIT
-       select CPU_V7
+       select CPU_V7A
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
        select SUPPORT_SPL
@@ -1014,7 +1056,7 @@ config TARGET_LS1021AQDS
 config TARGET_LS1021ATWR
        bool "Support ls1021atwr"
        select BOARD_LATE_INIT
-       select CPU_V7
+       select CPU_V7A
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
        select SUPPORT_SPL
@@ -1027,7 +1069,7 @@ config TARGET_LS1021ATWR
 config TARGET_LS1021AIOT
        bool "Support ls1021aiot"
        select BOARD_LATE_INIT
-       select CPU_V7
+       select CPU_V7A
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
        select SUPPORT_SPL
@@ -1143,7 +1185,7 @@ config STM32
 
 config ARCH_STI
        bool "Support STMicrolectronics SoCs"
-       select CPU_V7
+       select CPU_V7A
        select DM
        select DM_SERIAL
        select BLK
@@ -1373,7 +1415,7 @@ source "arch/arm/Kconfig.debug"
 endmenu
 
 config SPL_LDSCRIPT
-        default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if ARCH_MX23 || ARCH_MX28
+        default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if (ARCH_MX23 || ARCH_MX28) && !SPL_FRAMEWORK
         default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136
        default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64