aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2020-05-15 21:44:46 -0400
committerTom Rini <trini@konsulko.com>2020-05-15 21:44:46 -0400
commit515f613253cf0a892c3a321770ab927fa3d925cf (patch)
tree8385db76a60ea1ed2c3169b71b28e438557d2725
parent585da32f4cedcad5a86534f45d397f352af7da0a (diff)
parentc60f6d668dd6c439f4a88bdce3398ac05e5f8843 (diff)
downloadu-boot-515f613253cf0a892c3a321770ab927fa3d925cf.zip
u-boot-515f613253cf0a892c3a321770ab927fa3d925cf.tar.gz
u-boot-515f613253cf0a892c3a321770ab927fa3d925cf.tar.bz2
Merge branch '2020-05-15-kconfig-migrations'
- Convert CONFIG_DELAY_ENVIRONMENT to Kconfig and update initr_pci to be Kconfig'd.
-rw-r--r--common/Kconfig10
-rw-r--r--common/board_r.c26
-rw-r--r--configs/qemu-x86_64_defconfig1
-rw-r--r--configs/qemu-x86_defconfig1
-rw-r--r--configs/qemu_arm64_defconfig3
-rw-r--r--configs/qemu_arm_defconfig3
-rw-r--r--env/Kconfig12
-rw-r--r--include/configs/qemu-x86.h2
-rw-r--r--scripts/config_whitelist.txt1
9 files changed, 39 insertions, 20 deletions
diff --git a/common/Kconfig b/common/Kconfig
index 30cba15..2d86dd7 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -932,6 +932,16 @@ config LAST_STAGE_INIT
U-Boot calls last_stage_init() before the command-line interpreter is
started.
+config PCI_INIT_R
+ bool "Enumerate PCI buses during init"
+ depends on PCI
+ default y if !DM_PCI
+ help
+ With this option U-Boot will call pci_init() soon after relocation,
+ which will enumerate PCI buses. This is needed, for instance, in the
+ case of DM PCI-based Ethernet devices, which will not be detected
+ without having the enumeration performed earlier.
+
endmenu
menu "Security support"
diff --git a/common/board_r.c b/common/board_r.c
index d9015cd..96034b8 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -232,9 +232,8 @@ static int initr_unlock_ram_in_cache(void)
#ifdef CONFIG_PCI
static int initr_pci(void)
{
-#ifndef CONFIG_DM_PCI
- pci_init();
-#endif
+ if (IS_ENABLED(CONFIG_PCI_INIT_R))
+ pci_init();
return 0;
}
@@ -464,13 +463,14 @@ static int initr_mmc(void)
*/
static int should_load_env(void)
{
-#ifdef CONFIG_OF_CONTROL
- return fdtdec_get_config_int(gd->fdt_blob, "load-environment", 1);
-#elif defined CONFIG_DELAY_ENVIRONMENT
- return 0;
-#else
+ if (IS_ENABLED(CONFIG_OF_CONTROL))
+ return fdtdec_get_config_int(gd->fdt_blob,
+ "load-environment", 1);
+
+ if (IS_ENABLED(CONFIG_DELAY_ENVIRONMENT))
+ return 0;
+
return 1;
-#endif
}
static int initr_env(void)
@@ -480,10 +480,10 @@ static int initr_env(void)
env_relocate();
else
env_set_default(NULL, 0);
-#ifdef CONFIG_OF_CONTROL
- env_set_hex("fdtcontroladdr",
- (unsigned long)map_to_sysmem(gd->fdt_blob));
-#endif
+
+ if (IS_ENABLED(CONFIG_OF_CONTROL))
+ env_set_hex("fdtcontroladdr",
+ (unsigned long)map_to_sysmem(gd->fdt_blob));
/* Initialize from environment */
image_load_addr = env_get_ulong("loadaddr", 16, image_load_addr);
diff --git a/configs/qemu-x86_64_defconfig b/configs/qemu-x86_64_defconfig
index 0cb123e..6f722c1 100644
--- a/configs/qemu-x86_64_defconfig
+++ b/configs/qemu-x86_64_defconfig
@@ -34,6 +34,7 @@ CONFIG_SPL_NET_SUPPORT=y
CONFIG_SPL_PCI=y
CONFIG_SPL_PCH_SUPPORT=y
CONFIG_SPL_RTC_SUPPORT=y
+CONFIG_PCI_INIT_R=y
CONFIG_CMD_CPU=y
CONFIG_CMD_BOOTEFI_SELFTEST=y
CONFIG_CMD_NVEDIT_EFI=y
diff --git a/configs/qemu-x86_defconfig b/configs/qemu-x86_defconfig
index a562f21..565f232 100644
--- a/configs/qemu-x86_defconfig
+++ b/configs/qemu-x86_defconfig
@@ -18,6 +18,7 @@ CONFIG_BOOTARGS="root=/dev/sdb3 init=/sbin/init rootwait ro"
CONFIG_SYS_CONSOLE_INFO_QUIET=y
CONFIG_DISPLAY_BOARDINFO_LATE=y
CONFIG_LAST_STAGE_INIT=y
+CONFIG_PCI_INIT_R=y
CONFIG_CMD_CPU=y
CONFIG_CMD_BOOTEFI_SELFTEST=y
CONFIG_CMD_NVEDIT_EFI=y
diff --git a/configs/qemu_arm64_defconfig b/configs/qemu_arm64_defconfig
index 80e0ad5..53c653d 100644
--- a/configs/qemu_arm64_defconfig
+++ b/configs/qemu_arm64_defconfig
@@ -10,10 +10,9 @@ CONFIG_FIT_SIGNATURE=y
CONFIG_FIT_VERBOSE=y
CONFIG_FIT_BEST_MATCH=y
CONFIG_LEGACY_IMAGE_FORMAT=y
-CONFIG_USE_PREBOOT=y
-CONFIG_PREBOOT="pci enum"
# CONFIG_DISPLAY_CPUINFO is not set
# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_PCI_INIT_R=y
CONFIG_CMD_BOOTEFI_SELFTEST=y
CONFIG_CMD_NVEDIT_EFI=y
CONFIG_CMD_PCI=y
diff --git a/configs/qemu_arm_defconfig b/configs/qemu_arm_defconfig
index f807dfc..a847398 100644
--- a/configs/qemu_arm_defconfig
+++ b/configs/qemu_arm_defconfig
@@ -12,10 +12,9 @@ CONFIG_FIT_SIGNATURE=y
CONFIG_FIT_VERBOSE=y
CONFIG_FIT_BEST_MATCH=y
CONFIG_LEGACY_IMAGE_FORMAT=y
-CONFIG_USE_PREBOOT=y
-CONFIG_PREBOOT="pci enum"
# CONFIG_DISPLAY_CPUINFO is not set
# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_PCI_INIT_R=y
CONFIG_CMD_BOOTEFI_SELFTEST=y
CONFIG_CMD_NVEDIT_EFI=y
CONFIG_CMD_PCI=y
diff --git a/env/Kconfig b/env/Kconfig
index af63ac5..ed94e83 100644
--- a/env/Kconfig
+++ b/env/Kconfig
@@ -592,6 +592,18 @@ config ENV_VARS_UBOOT_RUNTIME_CONFIG
run-time determined information about the hardware to the
environment. These will be named board_name, board_rev.
+config DELAY_ENVIRONMENT
+ bool "Delay environment loading"
+ depends on !OF_CONTROL
+ help
+ Enable this to inhibit loading the environment during board
+ initialization. This can address the security risk of untrusted data
+ being used during boot. Normally the environment is loaded when the
+ board is initialised so that it is available to U-Boot. This inhibits
+ that so that the environment is not available until explicitly loaded
+ later by U-Boot code. With CONFIG_OF_CONTROL this is instead
+ controlled by the value of /config/load-environment.
+
if SPL_ENV_SUPPORT
config SPL_ENV_IS_NOWHERE
bool "SPL Environment is not stored"
diff --git a/include/configs/qemu-x86.h b/include/configs/qemu-x86.h
index 49e307b..52c3360 100644
--- a/include/configs/qemu-x86.h
+++ b/include/configs/qemu-x86.h
@@ -22,8 +22,6 @@
#include <config_distro_bootcmd.h>
#include <configs/x86-common.h>
-#define CONFIG_PREBOOT "pci enum"
-
#define CONFIG_SYS_MONITOR_LEN (1 << 20)
#define CONFIG_STD_DEVICES_SETTINGS "stdin=serial,i8042-kbd\0" \
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index c57b871..6dde9bc 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -303,7 +303,6 @@ CONFIG_DEFAULT
CONFIG_DEFAULT_CONSOLE
CONFIG_DEFAULT_IMMR
CONFIG_DEF_HWCONFIG
-CONFIG_DELAY_ENVIRONMENT
CONFIG_DESIGNWARE_ETH
CONFIG_DEVELOP
CONFIG_DEVICE_TREE_LIST