diff --git a/arch/Kconfig b/arch/Kconfig index bb1a818e10cfa8d46bb4a6d7a48186e0f2350ec7..0b64e1d36f74706b681ac478b2e3ec7b04c7ccb3 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -12,6 +12,7 @@ config ARC bool "ARC architecture" select HAVE_PRIVATE_LIBGCC select SUPPORT_OF_CONTROL + select ARCH_EARLY_INIT_R config ARM bool "ARM architecture" diff --git a/arch/arc/include/asm/config.h b/arch/arc/include/asm/config.h index d2d791988e2abbbfef49ff8595792297f311210a..7aaa5c2912762011568e53ae38fb1b817d474bd7 100644 --- a/arch/arc/include/asm/config.h +++ b/arch/arc/include/asm/config.h @@ -8,7 +8,6 @@ #define __ASM_ARC_CONFIG_H_ #define CONFIG_SYS_BOOT_RAMDISK_HIGH -#define CONFIG_ARCH_EARLY_INIT_R #define CONFIG_LMB diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 30f092530834fd8ec4e5e25fb497e1d4d9639fbf..e2078d6a13942f7b86374024ca865ba62cfdcba4 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -607,6 +607,7 @@ config ARCH_SOCFPGA select DM_SPI_FLASH select DM_SPI select ENABLE_ARM_SOC_BOOT0_HOOK + select ARCH_EARLY_INIT_R config TARGET_CM_T43 bool "Support cm_t43" diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig index ba411e2af85296bd3e54fc7c479bd2fd9936d6c5..d93a61d00f7ca9d93b8b5d8b06fa627021d7f036 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig @@ -5,6 +5,7 @@ config ARCH_LS1012A select SYS_FSL_DDR_BE select SYS_FSL_MMDC select SYS_FSL_ERRATUM_A010315 + select ARCH_EARLY_INIT_R config ARCH_LS1043A bool @@ -22,6 +23,7 @@ config ARCH_LS1043A select SYS_FSL_ERRATUM_A010539 select SYS_FSL_HAS_DDR3 select SYS_FSL_HAS_DDR4 + select ARCH_EARLY_INIT_R config ARCH_LS1046A bool @@ -38,6 +40,7 @@ config ARCH_LS1046A select SYS_FSL_ERRATUM_A010539 select SYS_FSL_HAS_DDR4 select SYS_FSL_SRDS_2 + select ARCH_EARLY_INIT_R config ARCH_LS2080A bool @@ -62,6 +65,7 @@ config ARCH_LS2080A select SYS_FSL_ERRATUM_A009803 select SYS_FSL_ERRATUM_A009942 select SYS_FSL_ERRATUM_A010165 + select ARCH_EARLY_INIT_R config FSL_LSCH2 bool diff --git a/common/Kconfig b/common/Kconfig index f045a166b21d00888a7c23a0f653b119f026f1ad..8d1156cb6e84e1da42a289fef2678132a4bedc5c 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -399,4 +399,17 @@ config DISPLAY_BOARDINFO when U-Boot starts up. The board function checkboard() is called to do this. +menu "Start-up hooks" + +config ARCH_EARLY_INIT_R + bool "Call arch-specific init soon after relocation" + default y if X86 + help + With this option U-Boot will call arch_early_init_r() soon after + relocation. Driver model is running by this point, and the cache + is on. Note that board_early_init_r() is called first, if + enabled. This can be used to set up architecture-specific devices. + +endmenu + source "common/spl/Kconfig" diff --git a/configs/bayleybay_defconfig b/configs/bayleybay_defconfig index 63d17b19f0b7981ca12e23deba21db9701b4998a..b8b237423c5e52f9215be29c5771ccf64f34d1ec 100644 --- a/configs/bayleybay_defconfig +++ b/configs/bayleybay_defconfig @@ -17,6 +17,7 @@ CONFIG_FIT=y CONFIG_BOOTSTAGE=y CONFIG_BOOTSTAGE_REPORT=y CONFIG_SYS_CONSOLE_INFO_QUIET=y +# CONFIG_ARCH_EARLY_INIT_R is not set CONFIG_HUSH_PARSER=y CONFIG_CMD_CPU=y # CONFIG_CMD_IMLS is not set diff --git a/configs/cougarcanyon2_defconfig b/configs/cougarcanyon2_defconfig index 233fe09a8ebd735624f3c50f7e66b3727746ce2b..ddd33a44f36f65c6a7275443806ab8d995444bdf 100644 --- a/configs/cougarcanyon2_defconfig +++ b/configs/cougarcanyon2_defconfig @@ -4,6 +4,7 @@ CONFIG_DEFAULT_DEVICE_TREE="cougarcanyon2" CONFIG_TARGET_COUGARCANYON2=y CONFIG_CONSOLE_MUX=y CONFIG_SYS_CONSOLE_INFO_QUIET=y +# CONFIG_ARCH_EARLY_INIT_R is not set CONFIG_HUSH_PARSER=y # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set diff --git a/configs/dfi-bt700-q7x-151_defconfig b/configs/dfi-bt700-q7x-151_defconfig index b7eb0061da77cbc99bd6a0f980b39d3fce2735f0..26371132c7587c1c8a13a034f56b403f5681f4b8 100644 --- a/configs/dfi-bt700-q7x-151_defconfig +++ b/configs/dfi-bt700-q7x-151_defconfig @@ -16,6 +16,7 @@ CONFIG_FIT_SIGNATURE=y CONFIG_BOOTSTAGE=y CONFIG_BOOTSTAGE_REPORT=y CONFIG_SYS_CONSOLE_INFO_QUIET=y +# CONFIG_ARCH_EARLY_INIT_R is not set CONFIG_HUSH_PARSER=y CONFIG_CMD_CPU=y # CONFIG_CMD_IMLS is not set diff --git a/configs/efi-x86_defconfig b/configs/efi-x86_defconfig index 1fe61428644f52bbb9cc89b5dd7f08c63cc14859..79f4df2a623928e677f7d34c411be85e91aa9489 100644 --- a/configs/efi-x86_defconfig +++ b/configs/efi-x86_defconfig @@ -5,6 +5,7 @@ CONFIG_TARGET_EFI=y CONFIG_FIT=y CONFIG_CONSOLE_MUX=y CONFIG_SYS_CONSOLE_INFO_QUIET=y +# CONFIG_ARCH_EARLY_INIT_R is not set CONFIG_HUSH_PARSER=y # CONFIG_CMD_BOOTM is not set # CONFIG_CMD_IMLS is not set diff --git a/configs/minnowmax_defconfig b/configs/minnowmax_defconfig index f7ac94d389faffaa884c68e3ee0b22f527aa3d08..88da65be577142e327b62d2de3bb3937ce641856 100644 --- a/configs/minnowmax_defconfig +++ b/configs/minnowmax_defconfig @@ -17,6 +17,7 @@ CONFIG_FIT_SIGNATURE=y CONFIG_BOOTSTAGE=y CONFIG_BOOTSTAGE_REPORT=y CONFIG_SYS_CONSOLE_INFO_QUIET=y +CONFIG_ARCH_EARLY_INIT_R=y CONFIG_HUSH_PARSER=y CONFIG_CMD_CPU=y # CONFIG_CMD_IMLS is not set diff --git a/configs/mvebu_db-88f3720_defconfig b/configs/mvebu_db-88f3720_defconfig index 060517402622115a0108a788740ba7f7b12b087c..7f4569de059f326df5473abfc07f621b1969c006 100644 --- a/configs/mvebu_db-88f3720_defconfig +++ b/configs/mvebu_db-88f3720_defconfig @@ -9,6 +9,7 @@ CONFIG_AHCI=y CONFIG_SYS_CONSOLE_INFO_QUIET=y # CONFIG_DISPLAY_CPUINFO is not set # CONFIG_DISPLAY_BOARDINFO is not set +CONFIG_ARCH_EARLY_INIT_R=y # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set CONFIG_CMD_SF=y diff --git a/configs/mvebu_db-88f7040_defconfig b/configs/mvebu_db-88f7040_defconfig index 5af64860b341d23681aa86547e9ff64ee18555ba..4930665125e0c321e0e20426c8c7d6999321d5f4 100644 --- a/configs/mvebu_db-88f7040_defconfig +++ b/configs/mvebu_db-88f7040_defconfig @@ -9,6 +9,7 @@ CONFIG_AHCI=y CONFIG_SYS_CONSOLE_INFO_QUIET=y # CONFIG_DISPLAY_CPUINFO is not set # CONFIG_DISPLAY_BOARDINFO is not set +CONFIG_ARCH_EARLY_INIT_R=y CONFIG_HUSH_PARSER=y # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set diff --git a/configs/mvebu_db-88f8040_defconfig b/configs/mvebu_db-88f8040_defconfig index 74bcc89f54f085a2717d5da19df16e396ac3fb81..8e99afc18005cb2ed749df129c8c0cbbe5a8b7e1 100644 --- a/configs/mvebu_db-88f8040_defconfig +++ b/configs/mvebu_db-88f8040_defconfig @@ -9,6 +9,7 @@ CONFIG_AHCI=y CONFIG_SYS_CONSOLE_INFO_QUIET=y # CONFIG_DISPLAY_CPUINFO is not set # CONFIG_DISPLAY_BOARDINFO is not set +CONFIG_ARCH_EARLY_INIT_R=y CONFIG_HUSH_PARSER=y # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set diff --git a/configs/qemu-x86_efi_payload32_defconfig b/configs/qemu-x86_efi_payload32_defconfig index f580d4518df5da8c34b75d82bad6714bd2208a23..0968689302f0e47c34411d98a22ab305c7ce050a 100644 --- a/configs/qemu-x86_efi_payload32_defconfig +++ b/configs/qemu-x86_efi_payload32_defconfig @@ -6,6 +6,7 @@ CONFIG_FIT=y CONFIG_BOOTSTAGE=y CONFIG_BOOTSTAGE_REPORT=y CONFIG_SYS_CONSOLE_INFO_QUIET=y +CONFIG_ARCH_EARLY_INIT_R=y CONFIG_HUSH_PARSER=y CONFIG_CMD_CPU=y # CONFIG_CMD_IMLS is not set diff --git a/configs/qemu-x86_efi_payload64_defconfig b/configs/qemu-x86_efi_payload64_defconfig index 975714b2fb655b4b9bbfa9d38a19231a91535227..399bbdf6eedcf047be5c66e45ab9c3662224c2f2 100644 --- a/configs/qemu-x86_efi_payload64_defconfig +++ b/configs/qemu-x86_efi_payload64_defconfig @@ -6,6 +6,7 @@ CONFIG_FIT=y CONFIG_BOOTSTAGE=y CONFIG_BOOTSTAGE_REPORT=y CONFIG_SYS_CONSOLE_INFO_QUIET=y +CONFIG_ARCH_EARLY_INIT_R=y CONFIG_HUSH_PARSER=y CONFIG_CMD_CPU=y # CONFIG_CMD_BOOTEFI_HELLO_COMPILE is not set diff --git a/configs/rut_defconfig b/configs/rut_defconfig index 3354f08debde5ce087cdcac6dbec8763d3470441..09f76b7c720d536329b7a4e4159a334c6967f20c 100644 --- a/configs/rut_defconfig +++ b/configs/rut_defconfig @@ -22,6 +22,7 @@ CONFIG_BOOTDELAY=3 CONFIG_SYS_CONSOLE_INFO_QUIET=y # CONFIG_DISPLAY_CPUINFO is not set # CONFIG_DISPLAY_BOARDINFO is not set +CONFIG_ARCH_EARLY_INIT_R=y CONFIG_SPL=y CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x300 diff --git a/configs/theadorable-x86-dfi-bt700_defconfig b/configs/theadorable-x86-dfi-bt700_defconfig index f3c2c86367ec9b4de5dc0154f2ea476ac2ac31a6..7641df92c9832acccafcb7a454bd408f172376d5 100644 --- a/configs/theadorable-x86-dfi-bt700_defconfig +++ b/configs/theadorable-x86-dfi-bt700_defconfig @@ -16,6 +16,7 @@ CONFIG_FIT_SIGNATURE=y CONFIG_BOOTSTAGE=y CONFIG_BOOTSTAGE_REPORT=y CONFIG_SYS_CONSOLE_INFO_QUIET=y +# CONFIG_ARCH_EARLY_INIT_R is not set CONFIG_HUSH_PARSER=y CONFIG_CMD_CPU=y # CONFIG_CMD_IMLS is not set diff --git a/include/configs/conga-qeval20-qa3-e3845.h b/include/configs/conga-qeval20-qa3-e3845.h index 309ff4f8c671de5277f0c60fa8944367281a4642..9a71dda54c14c0d1238147df23eedee7a40a652d 100644 --- a/include/configs/conga-qeval20-qa3-e3845.h +++ b/include/configs/conga-qeval20-qa3-e3845.h @@ -15,7 +15,6 @@ #define CONFIG_SYS_MONITOR_LEN (1 << 20) #define CONFIG_BOARD_EARLY_INIT_F -#define CONFIG_ARCH_EARLY_INIT_R #define CONFIG_ARCH_MISC_INIT #define CONFIG_STD_DEVICES_SETTINGS "stdin=serial\0" \ diff --git a/include/configs/crownbay.h b/include/configs/crownbay.h index cef2fd72dbbc4a8f1308e67eafb8a894462d0080..506b22790ec5e12346d9ca5505cb5a915449cfa4 100644 --- a/include/configs/crownbay.h +++ b/include/configs/crownbay.h @@ -15,7 +15,6 @@ #define CONFIG_SYS_MONITOR_LEN (1 << 20) #define CONFIG_BOARD_EARLY_INIT_F -#define CONFIG_ARCH_EARLY_INIT_R #define CONFIG_SMSC_LPC47M diff --git a/include/configs/galileo.h b/include/configs/galileo.h index 26eb12774c3761371bc81a1b5b16f265e318a642..360f3797288f40e376ab1219f5035750f198cdea 100644 --- a/include/configs/galileo.h +++ b/include/configs/galileo.h @@ -15,7 +15,6 @@ #define CONFIG_SYS_MONITOR_LEN (1 << 20) #define CONFIG_BOARD_EARLY_INIT_F -#define CONFIG_ARCH_EARLY_INIT_R #define CONFIG_ARCH_MISC_INIT /* ns16550 UART is memory-mapped in Quark SoC */ diff --git a/include/configs/ls1012a_common.h b/include/configs/ls1012a_common.h index 910835e03f14da8dbddaa0f2511e837ce7d2b5c9..eddfa1493e163263ff7a509425c1bf5fe5c22a80 100644 --- a/include/configs/ls1012a_common.h +++ b/include/configs/ls1012a_common.h @@ -89,8 +89,6 @@ #define CONFIG_CMD_ENV #undef CONFIG_CMD_IMLS -#define CONFIG_ARCH_EARLY_INIT_R - #define CONFIG_SYS_HZ 1000 #define CONFIG_HWCONFIG diff --git a/include/configs/ls1043a_common.h b/include/configs/ls1043a_common.h index 0d744eea920f58445b5ef3b9e2b41923ed146e9b..66805c2d7afd420a9878f2e3b8111bb6b98eeda6 100644 --- a/include/configs/ls1043a_common.h +++ b/include/configs/ls1043a_common.h @@ -185,7 +185,6 @@ /* Miscellaneous configurable options */ #define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_DDR_SDRAM_BASE + 0x10000000) -#define CONFIG_ARCH_EARLY_INIT_R #define CONFIG_HWCONFIG #define HWCONFIG_BUFFER_SIZE 128 diff --git a/include/configs/ls1046a_common.h b/include/configs/ls1046a_common.h index 7c8a2467ce3270fc300a4821f96a59a62477cebb..5ac89380e56bbe28a081c933511b4c7a6794ef7c 100644 --- a/include/configs/ls1046a_common.h +++ b/include/configs/ls1046a_common.h @@ -158,7 +158,6 @@ /* Miscellaneous configurable options */ #define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_DDR_SDRAM_BASE + 0x10000000) -#define CONFIG_ARCH_EARLY_INIT_R #define CONFIG_HWCONFIG #define HWCONFIG_BUFFER_SIZE 128 diff --git a/include/configs/ls2080a_common.h b/include/configs/ls2080a_common.h index 32d56aede232abc3d9d70421ccf2229745979169..99c0661b904b099c7b9f4dc82c4a178e83fced28 100644 --- a/include/configs/ls2080a_common.h +++ b/include/configs/ls2080a_common.h @@ -175,7 +175,6 @@ unsigned long long get_qixis_addr(void); /* Miscellaneous configurable options */ #define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_DDR_SDRAM_BASE + 0x10000000) -#define CONFIG_ARCH_EARLY_INIT_R /* Physical Memory Map */ /* fixme: these need to be checked against the board */ diff --git a/include/configs/minnowmax.h b/include/configs/minnowmax.h index 5b17fd7f2c9eed17ebb15be5409cae00836caed4..3507cc89965df7b61035fd854ad72c155689f436 100644 --- a/include/configs/minnowmax.h +++ b/include/configs/minnowmax.h @@ -14,7 +14,6 @@ #include #define CONFIG_SYS_MONITOR_LEN (1 << 20) -#define CONFIG_ARCH_EARLY_INIT_R #define CONFIG_ARCH_MISC_INIT #define CONFIG_SMSC_LPC47M diff --git a/include/configs/mvebu_armada-8k.h b/include/configs/mvebu_armada-8k.h index 0055cb02d390ba1ed0ee3c186009553d31832fa0..fd185321d16ed1e1ed5706a546ef4d41a32c4ed6 100644 --- a/include/configs/mvebu_armada-8k.h +++ b/include/configs/mvebu_armada-8k.h @@ -13,7 +13,6 @@ #define CONFIG_SYS_TCLK 250000000 /* 250MHz */ #define CONFIG_DISPLAY_BOARDINFO_LATE -#define CONFIG_ARCH_EARLY_INIT_R #define CONFIG_SYS_TEXT_BASE 0x00000000 diff --git a/include/configs/mvebu_db-88f3720.h b/include/configs/mvebu_db-88f3720.h index 7ddde8cb7118382787dabbb83382b2cb0ebb6b90..7fc3dcc790569a138321418c9decd299fdc5c9ae 100644 --- a/include/configs/mvebu_db-88f3720.h +++ b/include/configs/mvebu_db-88f3720.h @@ -11,7 +11,6 @@ * High Level Configuration Options (easy to change) */ #define CONFIG_DISPLAY_BOARDINFO_LATE -#define CONFIG_ARCH_EARLY_INIT_R #define CONFIG_SYS_TEXT_BASE 0x00000000 diff --git a/include/configs/qemu-x86.h b/include/configs/qemu-x86.h index 4783563fc761f06a07d2161c8d44bb4b2f10f107..affe712e046ce80863ec149d4635ca0e6534289a 100644 --- a/include/configs/qemu-x86.h +++ b/include/configs/qemu-x86.h @@ -14,7 +14,6 @@ #include #define CONFIG_SYS_MONITOR_LEN (1 << 20) -#define CONFIG_ARCH_EARLY_INIT_R #define CONFIG_STD_DEVICES_SETTINGS "stdin=serial,i8042-kbd\0" \ "stdout=serial,vidconsole\0" \ diff --git a/include/configs/rut.h b/include/configs/rut.h index e5933b85ee120c41f3e39edf442efe9d7c26b174..36de45453fb4324610c8f9f2417476f562ab6fbb 100644 --- a/include/configs/rut.h +++ b/include/configs/rut.h @@ -130,7 +130,6 @@ #define CONFIG_OMAP3_SPI #define BOARD_LCD_RESET 115 /* Bank 3 pin 19 */ -#define CONFIG_ARCH_EARLY_INIT_R #define CONFIG_FORMIKE #define DISPL_PLL_SPREAD_SPECTRUM #endif diff --git a/include/configs/socfpga_common.h b/include/configs/socfpga_common.h index 6285266a1bbceb469790264dabb6efb3a12ac035..4559138f6003f089957a7de29c99d84dcc5a942c 100644 --- a/include/configs/socfpga_common.h +++ b/include/configs/socfpga_common.h @@ -16,7 +16,6 @@ */ #define CONFIG_DISPLAY_BOARDINFO_LATE #define CONFIG_ARCH_MISC_INIT -#define CONFIG_ARCH_EARLY_INIT_R #define CONFIG_SYS_NO_FLASH #define CONFIG_CLOCKS diff --git a/include/configs/som-6896.h b/include/configs/som-6896.h index b4a4fb01d49b6e4ebeced5fe3c734baa883fdbe2..ba11b2061a09fd40637c76299450a0fb985b1afe 100644 --- a/include/configs/som-6896.h +++ b/include/configs/som-6896.h @@ -23,8 +23,6 @@ #define VIDEO_IO_OFFSET 0 #define CONFIG_X86EMU_RAW_IO -#define CONFIG_ARCH_EARLY_INIT_R - #define CONFIG_STD_DEVICES_SETTINGS "stdin=serial,usbkbd\0" \ "stdout=serial,vidconsole\0" \ "stderr=serial,vidconsole\0" diff --git a/include/configs/som-db5800-som-6867.h b/include/configs/som-db5800-som-6867.h index 6235518bedd17fce75d23b6d2d2560ba45852a3d..e13f3437513d10d9876c174990c3ed3aecb13f89 100644 --- a/include/configs/som-db5800-som-6867.h +++ b/include/configs/som-db5800-som-6867.h @@ -15,7 +15,6 @@ #define CONFIG_SYS_MONITOR_LEN (1 << 20) #define CONFIG_BOARD_EARLY_INIT_F -#define CONFIG_ARCH_EARLY_INIT_R #define CONFIG_ARCH_MISC_INIT #define CONFIG_STD_DEVICES_SETTINGS "stdin=serial,usbkbd\0" \ diff --git a/include/configs/x86-chromebook.h b/include/configs/x86-chromebook.h index 46a11ef7e4e327ab03e41d036c0b35b5342e8fc6..545cffbfaa29f0db4552be44ad4cee5e67203d9a 100644 --- a/include/configs/x86-chromebook.h +++ b/include/configs/x86-chromebook.h @@ -40,8 +40,6 @@ #define VIDEO_IO_OFFSET 0 #define CONFIG_X86EMU_RAW_IO -#define CONFIG_ARCH_EARLY_INIT_R - #undef CONFIG_ENV_IS_NOWHERE #undef CONFIG_ENV_SIZE #define CONFIG_ENV_SIZE 0x1000 diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt index a927e5019cfa28c06ef1dde725364a8630879c24..23ebcc63c43ed28e580424fe2279e9c595f8b597 100644 --- a/scripts/config_whitelist.txt +++ b/scripts/config_whitelist.txt @@ -109,7 +109,6 @@ CONFIG_AP_SH4A_4A CONFIG_ARCH_ADPAG101P CONFIG_ARCH_CPU_INIT CONFIG_ARCH_CSB226 -CONFIG_ARCH_EARLY_INIT_R CONFIG_ARCH_HAS_ILOG2_U32 CONFIG_ARCH_HAS_ILOG2_U64 CONFIG_ARCH_INNOKOM