]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - arch/arm/Kconfig
ARM: Kconfig: Move TI_SECURE_DEVICE to a common area
[people/ms/u-boot.git] / arch / arm / Kconfig
index 64e0ee43f1126cecde6e713d50f887b889a2564b..2c52ff025a2219b7578ceefe3c014705d207a075 100644 (file)
@@ -9,6 +9,52 @@ config ARM64
        select PHYS_64BIT
        select SYS_CACHE_SHIFT_6
 
+if ARM64
+config POSITION_INDEPENDENT
+       bool "Generate position-independent pre-relocation code"
+       help
+         U-Boot expects to be linked to a specific hard-coded address, and to
+         be loaded to and run from that address. This option lifts that
+         restriction, thus allowing the code to be loaded to and executed
+         from almost any address. This logic relies on the relocation
+         information that is embedded into the binary to support U-Boot
+         relocating itself to the top-of-RAM later during execution.
+
+config SYS_INIT_SP_BSS_OFFSET
+       int
+       help
+         U-Boot typically uses a hard-coded value for the stack pointer
+         before relocation. Define this option to instead calculate the
+         initial SP at run-time. This is useful to avoid hard-coding addresses
+         into U-Boot, so that can be loaded and executed at arbitrary
+         addresses and thus avoid using arbitrary addresses at runtime. This
+         option's value is the offset added to &_bss_start in order to
+         calculate the stack pointer. This offset should be large enough so
+         that the early malloc region, global data (gd), and early stack usage
+         do not overlap any appended DTB.
+
+config LINUX_KERNEL_IMAGE_HEADER
+       bool
+       help
+         Place a Linux kernel image header at the start of the U-Boot binary.
+         The format of the header is described in the Linux kernel source at
+         Documentation/arm64/booting.txt. This feature is useful since the
+         image header reports the amount of memory (BSS and similar) that
+         U-Boot needs to use, but which isn't part of the binary.
+
+if LINUX_KERNEL_IMAGE_HEADER
+config LNX_KRNL_IMG_TEXT_OFFSET_BASE
+       hex
+       help
+         The value subtracted from CONFIG_SYS_TEXT_BASE to calculate the
+         TEXT_OFFSET value written in to the Linux kernel image header.
+endif
+endif
+
+config STATIC_RELA
+       bool
+       default y if ARM64 && !POSITION_INDEPENDENT
+
 config DMA_ADDR_T_64BIT
        bool
        default y if ARM64
@@ -106,6 +152,9 @@ config ARM_ERRATA_852421
 config ARM_ERRATA_852423
        bool
 
+config ARM_ERRATA_855873
+       bool
+
 config CPU_ARM720T
        bool
        select SYS_CACHE_SHIFT_5
@@ -238,9 +287,8 @@ config ENABLE_ARM_SOC_BOOT0_HOOK
        bool "prepare BOOT0 header"
        help
          If the SoC's BOOT0 requires a header area filled with (magic)
-         values, then choose this option, and create a define called
-         ARM_SOC_BOOT0_HOOK which contains the required assembler
-         preprocessor code.
+         values, then choose this option, and create a file included as
+         <asm/arch/boot0.h> which contains the required assembler code.
 
 config ARM_CORTEX_CPU_IS_UP
        bool
@@ -299,6 +347,7 @@ config ARCH_AT91
 config TARGET_EDB93XX
        bool "Support edb93xx"
        select CPU_ARM920T
+       select PL010_SERIAL
 
 config TARGET_ASPENITE
        bool "Support aspenite"
@@ -341,70 +390,11 @@ config TARGET_WORK_92105
        select CPU_ARM926EJS
        select SUPPORT_SPL
 
-config TARGET_MX25PDK
-       bool "Support mx25pdk"
-       select BOARD_LATE_INIT
-       select CPU_ARM926EJS
-       select BOARD_EARLY_INIT_F
-
-config TARGET_ZMX25
-       bool "Support zmx25"
-       select BOARD_LATE_INIT
-       select CPU_ARM926EJS
-
 config TARGET_APF27
        bool "Support apf27"
        select CPU_ARM926EJS
        select SUPPORT_SPL
 
-config TARGET_APX4DEVKIT
-       bool "Support apx4devkit"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-
-config TARGET_XFI3
-       bool "Support xfi3"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-
-config TARGET_M28EVK
-       bool "Support m28evk"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-
-config TARGET_MX23EVK
-       bool "Support mx23evk"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-       select BOARD_EARLY_INIT_F
-
-config TARGET_MX28EVK
-       bool "Support mx28evk"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-       select BOARD_EARLY_INIT_F
-
-config TARGET_MX23_OLINUXINO
-       bool "Support mx23_olinuxino"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-       select BOARD_EARLY_INIT_F
-
-config TARGET_BG0900
-       bool "Support bg0900"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-
-config TARGET_SANSA_FUZE_PLUS
-       bool "Support sansa_fuze_plus"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-
-config TARGET_SC_SPS_1
-       bool "Support sc_sps_1"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-
 config ORION5X
        bool "Marvell Orion"
        select CPU_ARM926EJS
@@ -414,24 +404,28 @@ config TARGET_SPEAR300
        select CPU_ARM926EJS
        select BOARD_EARLY_INIT_F
        imply CMD_SAVES
+       select PL011_SERIAL
 
 config TARGET_SPEAR310
        bool "Support spear310"
        select CPU_ARM926EJS
        select BOARD_EARLY_INIT_F
        imply CMD_SAVES
+       select PL011_SERIAL
 
 config TARGET_SPEAR320
        bool "Support spear320"
        select CPU_ARM926EJS
        select BOARD_EARLY_INIT_F
        imply CMD_SAVES
+       select PL011_SERIAL
 
 config TARGET_SPEAR600
        bool "Support spear600"
        select CPU_ARM926EJS
        select BOARD_EARLY_INIT_F
        imply CMD_SAVES
+       select PL011_SERIAL
 
 config TARGET_STV0991
        bool "Support stv0991"
@@ -441,12 +435,14 @@ config TARGET_STV0991
        select DM_SPI
        select DM_SPI_FLASH
        select SPI_FLASH
+       select PL01X_SERIAL
 
 config TARGET_X600
        bool "Support x600"
        select BOARD_LATE_INIT
        select CPU_ARM926EJS
        select SUPPORT_SPL
+       select PL011_SERIAL
 
 config TARGET_IMX31_PHYCORE
        bool "Support imx31_phycore_eet"
@@ -495,6 +491,8 @@ config ARCH_BCM283X
        select DM_SERIAL
        select DM_GPIO
        select OF_CONTROL
+       select PL01X_SERIAL
+       select SERIAL_SEARCH_ALL
        imply FAT_WRITE
 
 config TARGET_VEXPRESS_CA15_TC2
@@ -502,14 +500,17 @@ config TARGET_VEXPRESS_CA15_TC2
        select CPU_V7
        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 PL011_SERIAL
 
 config TARGET_VEXPRESS_CA9X4
        bool "Support vexpress_ca9x4"
        select CPU_V7
+       select PL011_SERIAL
 
 config TARGET_BCM23550_W1D
        bool "Support bcm23550_w1d"
@@ -568,11 +569,13 @@ config ARCH_S5PC1XX
 config ARCH_HIGHBANK
        bool "Calxeda Highbank"
        select CPU_V7
+       select PL011_SERIAL
 
 config ARCH_INTEGRATOR
        bool "ARM Ltd. Integrator family"
        select DM
        select DM_SERIAL
+       select PL01X_SERIAL
 
 config ARCH_KEYSTONE
        bool "TI Keystone"
@@ -599,10 +602,34 @@ config ARCH_MESON
          targeted at media players and tablet computers. We currently
          support the S905 (GXBaby) 64-bit SoC.
 
+config ARCH_MX8M
+       bool "NXP i.MX8M platform"
+       select ARM64
+       select DM
+       select SUPPORT_SPL
+
+config ARCH_MX23
+       bool "NXP i.MX23 family"
+       select CPU_ARM926EJS
+       select PL011_SERIAL
+       select SUPPORT_SPL
+
+config ARCH_MX25
+       bool "NXP MX25"
+       select CPU_ARM926EJS
+       imply MXC_GPIO
+
+config ARCH_MX28
+       bool "NXP i.MX28 family"
+       select CPU_ARM926EJS
+       select PL011_SERIAL
+       select SUPPORT_SPL
+
 config ARCH_MX7ULP
         bool "NXP MX7ULP"
         select CPU_V7
        select ROM_UNIFIED_SECTIONS
+       imply MXC_GPIO
 
 config ARCH_MX7
        bool "Freescale MX7"
@@ -612,6 +639,7 @@ config ARCH_MX7
        select SYS_FSL_SEC_LE
        select BOARD_EARLY_INIT_F
        select ARCH_MISC_INIT
+       imply MXC_GPIO
 
 config ARCH_MX6
        bool "Freescale MX6"
@@ -620,6 +648,7 @@ config ARCH_MX6
        select SYS_FSL_SEC_COMPAT_4
        select SYS_FSL_SEC_LE
        select SYS_THUMB_BUILD if SPL
+       imply MXC_GPIO
 
 if ARCH_MX6
 config SPL_LDSCRIPT
@@ -630,14 +659,14 @@ config ARCH_MX5
        bool "Freescale MX5"
        select CPU_V7
        select BOARD_EARLY_INIT_F
+       imply MXC_GPIO
 
 config ARCH_QEMU
        bool "QEMU Virtual Platform"
-       select CPU_V7
-       select ARCH_SUPPORT_PSCI
        select DM
        select DM_SERIAL
        select OF_CONTROL
+       select PL01X_SERIAL
 
 config ARCH_RMOBILE
        bool "Renesas ARM SoCs"
@@ -669,19 +698,21 @@ config ARCH_SOCFPGA
        select OF_CONTROL
        select SPL_OF_CONTROL
        select DM
-       select DM_SPI_FLASH
-       select DM_SPI
        select ENABLE_ARM_SOC_BOOT0_HOOK
        select ARCH_EARLY_INIT_R
        select ARCH_MISC_INIT
-       select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
        select SYS_THUMB_BUILD
        imply CMD_MTDPARTS
        imply CRC32_VERIFY
+       imply DM_SPI
+       imply DM_SPI_FLASH
        imply FAT_WRITE
+       imply HW_WATCHDOG
+       imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
 
 config ARCH_SUNXI
        bool "Support sunxi (Allwinner) SoCs"
+       select BINMAN
        select CMD_GPIO
        select CMD_MMC if MMC
        select CMD_USB if DISTRO_DEFAULTS
@@ -698,12 +729,14 @@ config ARCH_SUNXI
        select SPL_SYS_MALLOC_SIMPLE if SPL
        select SYS_NS16550
        select SPL_SYS_THUMB_BUILD if !ARM64
+       select SYS_THUMB_BUILD if !ARM64
        select USB if DISTRO_DEFAULTS
        select USB_STORAGE if DISTRO_DEFAULTS
        select USB_KEYBOARD if DISTRO_DEFAULTS
        select USE_TINY_PRINTF
        imply CMD_GPT
        imply FAT_WRITE
+       imply OF_LIBFDT_OVERLAY
        imply PRE_CONSOLE_BUFFER
        imply SPL_GPIO_SUPPORT
        imply SPL_LIBCOMMON_SUPPORT
@@ -714,11 +747,6 @@ config ARCH_SUNXI
        imply SPL_SERIAL_SUPPORT
        imply USB_GADGET
 
-config TARGET_TS4600
-       bool "Support TS4600"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-
 config ARCH_VF610
        bool "Freescale Vybrid"
        select CPU_V7
@@ -727,7 +755,7 @@ config ARCH_VF610
        imply NAND
 
 config ARCH_ZYNQ
-       bool "Xilinx Zynq Platform"
+       bool "Xilinx Zynq based platform"
        select BOARD_LATE_INIT
        select CPU_V7
        select SUPPORT_SPL
@@ -735,25 +763,23 @@ config ARCH_ZYNQ
        select SPL_BOARD_INIT if SPL
        select SPL_OF_CONTROL if SPL
        select DM
-       select DM_ETH
-       select DM_GPIO
+       select DM_ETH if NET
        select SPL_DM if SPL
-       select DM_MMC
+       select DM_MMC if MMC
        select DM_SPI
        select DM_SERIAL
        select DM_SPI_FLASH
        select SPL_SEPARATE_BSS if SPL
        select DM_USB if USB
-       select BLK
        select CLK
-       select SPL_CLK
+       select SPL_CLK if SPL
        select CLK_ZYNQ
        imply CMD_CLK
        imply FAT_WRITE
        imply CMD_SPL
 
 config ARCH_ZYNQMP
-       bool "Support Xilinx ZynqMP Platform"
+       bool "Xilinx ZynqMP based platform"
        select ARM64
        select BOARD_LATE_INIT
        select DM
@@ -762,7 +788,7 @@ config ARCH_ZYNQMP
        select SUPPORT_SPL
        select CLK
        select SPL_BOARD_INIT if SPL
-       select SPL_CLK
+       select SPL_CLK if SPL
        select DM_USB if USB
        imply FAT_WRITE
 
@@ -773,15 +799,18 @@ config TEGRA
 config TARGET_VEXPRESS64_AEMV8A
        bool "Support vexpress_aemv8a"
        select ARM64
+       select PL01X_SERIAL
 
 config TARGET_VEXPRESS64_BASE_FVP
        bool "Support Versatile Express ARMv8a FVP BASE model"
        select ARM64
        select SEMIHOSTING
+       select PL01X_SERIAL
 
 config TARGET_VEXPRESS64_BASE_FVP_DRAM
        bool "Support Versatile Express ARMv8a FVP BASE model booting from DRAM"
        select ARM64
+       select PL01X_SERIAL
        help
          This target is derived from TARGET_VEXPRESS64_BASE_FVP and over-rides
          the default config to allow the user to load the images directly into
@@ -791,6 +820,7 @@ config TARGET_VEXPRESS64_BASE_FVP_DRAM
 config TARGET_VEXPRESS64_JUNO
        bool "Support Versatile Express Juno Development Platform"
        select ARM64
+       select PL01X_SERIAL
 
 config TARGET_LS2080A_EMU
        bool "Support ls2080a_emu"
@@ -823,6 +853,7 @@ config TARGET_LS1088AQDS
        select ARMV8_MULTIENTRY
        select ARCH_MISC_INIT
        select BOARD_LATE_INIT
+       select SUPPORT_SPL
        help
          Support for NXP LS1088AQDS platform
          The LS1088A Development System (QDS) is a high-performance
@@ -838,6 +869,7 @@ config TARGET_LS2080AQDS
        select SUPPORT_SPL
        select ARCH_MISC_INIT
        imply SCSI
+       imply SCSI_AHCI
        help
          Support for Freescale LS2080AQDS platform
          The LS2080A Development System (QDS) is a high-performance
@@ -853,6 +885,7 @@ config TARGET_LS2080ARDB
        select SUPPORT_SPL
        select ARCH_MISC_INIT
        imply SCSI
+       imply SCSI_AHCI
        help
          Support for Freescale LS2080ARDB platform.
          The LS2080A Reference design board (RDB) is a high-performance
@@ -880,6 +913,7 @@ config TARGET_HIKEY
        select DM_GPIO
        select DM_SERIAL
        select OF_CONTROL
+       select PL01X_SERIAL
          help
          Support for HiKey 96boards platform. It features a HI6220
          SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
@@ -891,6 +925,7 @@ config TARGET_POPLAR
        select OF_CONTROL
        select DM_SERIAL
        select DM_USB
+       select PL01X_SERIAL
          help
          Support for Poplar 96boards EE platform. It features a HI3798cv200
          SoC, with 4xA53 CPU, 1GB RAM and the high performance Mali T720 GPU
@@ -914,12 +949,25 @@ config TARGET_LS1012ARDB
        select ARM64
        select BOARD_LATE_INIT
        imply SCSI
+       imply SCSI_AHCI
        help
          Support for Freescale LS1012ARDB platform.
          The LS1012A Reference design board (RDB) is a high-performance
          development platform that supports the QorIQ LS1012A
          Layerscape Architecture processor.
 
+config TARGET_LS1012A2G5RDB
+       bool "Support ls1012a2g5rdb"
+       select ARCH_LS1012A
+       select ARM64
+       select BOARD_LATE_INIT
+       imply SCSI
+       help
+         Support for Freescale LS1012A2G5RDB platform.
+         The LS1012A 2G5 Reference design board (RDB) is a high-performance
+         development platform that supports the QorIQ LS1012A
+         Layerscape Architecture processor.
+
 config TARGET_LS1012AFRDM
        bool "Support ls1012afrdm"
        select ARCH_LS1012A
@@ -937,6 +985,7 @@ config TARGET_LS1088ARDB
        select ARMV8_MULTIENTRY
        select ARCH_MISC_INIT
        select BOARD_LATE_INIT
+       select SUPPORT_SPL
        help
          Support for NXP LS1088ARDB platform.
          The LS1088A Reference design board (RDB) is a high-performance
@@ -1117,6 +1166,7 @@ config ARCH_ROCKCHIP
        select DM_USB if USB
        select DM_PWM
        select DM_REGULATOR
+       select ENABLE_ARM_SOC_BOOT0_HOOK
        imply CMD_FASTBOOT
        imply FASTBOOT
        imply FAT_WRITE
@@ -1131,6 +1181,7 @@ config TARGET_THUNDERX_88XX
        select ARM64
        select OF_CONTROL
        select SYS_CACHE_SHIFT_7
+       select PL01X_SERIAL
 
 config ARCH_ASPEED
        bool "Support Aspeed SoCs"
@@ -1139,6 +1190,16 @@ config ARCH_ASPEED
 
 endchoice
 
+config TI_SECURE_DEVICE
+       bool "HS Device Type Support"
+       depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS
+       help
+         If a high secure (HS) device type is being used, this config
+         must be set. This option impacts various aspects of the
+         build system (to create signed boot images that can be
+         authenticated) and the code. See the doc/README.ti-secure
+         file for further details.
+
 source "arch/arm/mach-aspeed/Kconfig"
 
 source "arch/arm/mach-at91/Kconfig"
@@ -1161,13 +1222,19 @@ source "arch/arm/mach-mvebu/Kconfig"
 
 source "arch/arm/cpu/armv7/ls102xa/Kconfig"
 
-source "arch/arm/mach-imx/mx7ulp/Kconfig"
+source "arch/arm/mach-imx/mx2/Kconfig"
 
-source "arch/arm/mach-imx/mx7/Kconfig"
+source "arch/arm/mach-imx/mx5/Kconfig"
 
 source "arch/arm/mach-imx/mx6/Kconfig"
 
-source "arch/arm/mach-imx/mx5/Kconfig"
+source "arch/arm/mach-imx/mx7/Kconfig"
+
+source "arch/arm/mach-imx/mx7ulp/Kconfig"
+
+source "arch/arm/mach-imx/mx8m/Kconfig"
+
+source "arch/arm/mach-imx/mxs/Kconfig"
 
 source "arch/arm/mach-omap2/Kconfig"
 
@@ -1211,7 +1278,6 @@ source "arch/arm/cpu/armv8/Kconfig"
 
 source "arch/arm/mach-imx/Kconfig"
 
-source "board/aries/m28evk/Kconfig"
 source "board/bosch/shc/Kconfig"
 source "board/CarMediaLab/flea3/Kconfig"
 source "board/Marvell/aspenite/Kconfig"
@@ -1219,7 +1285,6 @@ source "board/Marvell/gplugd/Kconfig"
 source "board/armadeus/apf27/Kconfig"
 source "board/armltd/vexpress/Kconfig"
 source "board/armltd/vexpress64/Kconfig"
-source "board/bluegiga/apx4devkit/Kconfig"
 source "board/broadcom/bcm23550_w1d/Kconfig"
 source "board/broadcom/bcm28155_ap/Kconfig"
 source "board/broadcom/bcmcygnus/Kconfig"
@@ -1227,7 +1292,7 @@ source "board/broadcom/bcmnsp/Kconfig"
 source "board/broadcom/bcmns2/Kconfig"
 source "board/cavium/thunderx/Kconfig"
 source "board/cirrus/edb93xx/Kconfig"
-source "board/creative/xfi3/Kconfig"
+source "board/eets/pdu001/Kconfig"
 source "board/freescale/ls2080a/Kconfig"
 source "board/freescale/ls2080aqds/Kconfig"
 source "board/freescale/ls2080ardb/Kconfig"
@@ -1242,9 +1307,6 @@ source "board/freescale/ls1046ardb/Kconfig"
 source "board/freescale/ls1012aqds/Kconfig"
 source "board/freescale/ls1012ardb/Kconfig"
 source "board/freescale/ls1012afrdm/Kconfig"
-source "board/freescale/mx23evk/Kconfig"
-source "board/freescale/mx25pdk/Kconfig"
-source "board/freescale/mx28evk/Kconfig"
 source "board/freescale/mx31ads/Kconfig"
 source "board/freescale/mx31pdk/Kconfig"
 source "board/freescale/mx35pdk/Kconfig"
@@ -1257,11 +1319,7 @@ source "board/hisilicon/hikey/Kconfig"
 source "board/hisilicon/poplar/Kconfig"
 source "board/imx31_phycore/Kconfig"
 source "board/isee/igep003x/Kconfig"
-source "board/olimex/mx23_olinuxino/Kconfig"
 source "board/phytec/pcm051/Kconfig"
-source "board/ppcag/bg0900/Kconfig"
-source "board/sandisk/sansa_fuze_plus/Kconfig"
-source "board/schulercontrol/sc_sps_1/Kconfig"
 source "board/silica/pengwyn/Kconfig"
 source "board/spear/spear300/Kconfig"
 source "board/spear/spear310/Kconfig"
@@ -1269,12 +1327,10 @@ source "board/spear/spear320/Kconfig"
 source "board/spear/spear600/Kconfig"
 source "board/spear/x600/Kconfig"
 source "board/st/stv0991/Kconfig"
-source "board/syteco/zmx25/Kconfig"
 source "board/tcl/sl50/Kconfig"
 source "board/birdland/bav335x/Kconfig"
 source "board/timll/devkit3250/Kconfig"
 source "board/toradex/colibri_pxa270/Kconfig"
-source "board/technologic/ts4600/Kconfig"
 source "board/vscom/baltos/Kconfig"
 source "board/woodburn/Kconfig"
 source "board/work-microwave/work_92105/Kconfig"
@@ -1285,7 +1341,7 @@ source "arch/arm/Kconfig.debug"
 endmenu
 
 config SPL_LDSCRIPT
-        default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if TARGET_APX4DEVKIT || TARGET_BG0900 || TARGET_M28EVK || TARGET_MX23_OLINUXINO || TARGET_MX23EVK || TARGET_MX28EVK || TARGET_SANSA_FUZE_PLUS || TARGET_SC_SPS_1 || TARGET_TS4600 || TARGET_XFI3
+        default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if ARCH_MX23 || ARCH_MX28
         default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136
        default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64