summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Rhodes <sean@starlabs.systems>2022-02-13 21:19:19 +0000
committerFelix Held <felix-coreboot@felixheld.de>2022-02-25 20:44:42 +0000
commit4a9be9f32120794e7ea16d7dd5f4490f17dad623 (patch)
treee538327c7802d4e76a86980423743f88731209c4
parent3ecee3cdd92e799072eb47262a1be29d62de927b (diff)
downloadcoreboot-4a9be9f32120794e7ea16d7dd5f4490f17dad623.tar.gz
coreboot-4a9be9f32120794e7ea16d7dd5f4490f17dad623.tar.bz2
coreboot-4a9be9f32120794e7ea16d7dd5f4490f17dad623.zip
payloads/tianocore: Pass SD_MMC_TIMEOUT build option
By default, edk2 allows 1000000μs for SD Card Readers and eMMC to initialize which is excessive and causes a boot delay. This makes the value configurable and uses a default of 1000μs which is sufficient for the majority of readers. The value of 1000μs was hardcoded in MrChromeBox's fork for around 2 years with no reported issues. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I873bcddf6f37a9eaae5c84991b3996d51fb460d3 Reviewed-on: https://review.coreboot.org/c/coreboot/+/61902 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
-rw-r--r--payloads/external/Makefile.inc1
-rw-r--r--payloads/external/tianocore/Kconfig7
-rw-r--r--payloads/external/tianocore/Makefile4
3 files changed, 12 insertions, 0 deletions
diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc
index 049fcd9ce8ee..e805a07b0ac6 100644
--- a/payloads/external/Makefile.inc
+++ b/payloads/external/Makefile.inc
@@ -156,6 +156,7 @@ $(obj)/UEFIPAYLOAD.fd tianocore: $(DOTCONFIG)
CONFIG_TIANOCORE_HAVE_EFI_SHELL=$(CONFIG_TIANOCORE_HAVE_EFI_SHELL) \
CONFIG_TIANOCORE_PRIORITIZE_INTERNAL=$(CONFIG_TIANOCORE_PRIORITIZE_INTERNAL) \
CONFIG_TIANOCORE_PS2_SUPPORT=$(CONFIG_TIANOCORE_PS2_SUPPORT) \
+ CONFIG_TIANOCORE_SD_MMC_TIMEOUT=$(CONFIG_TIANOCORE_SD_MMC_TIMEOUT) \
CONFIG_TIANOCORE_USE_8254_TIMER=$(CONFIG_TIANOCORE_USE_8254_TIMER) \
CONFIG_ECAM_MMCONF_BASE_ADDRESS=$(CONFIG_ECAM_MMCONF_BASE_ADDRESS) \
GCC_CC_x86_32=$(GCC_CC_x86_32) \
diff --git a/payloads/external/tianocore/Kconfig b/payloads/external/tianocore/Kconfig
index 4d52994dd5a0..4194290747b4 100644
--- a/payloads/external/tianocore/Kconfig
+++ b/payloads/external/tianocore/Kconfig
@@ -168,6 +168,13 @@ config TIANOCORE_PS2_SUPPORT
help
Include support for PS/2 keyboards
+config TIANOCORE_SD_MMC_TIMEOUT
+ int "Timeout in μs for initializing SD Card reader"
+ default 1000
+ help
+ The amount of time allowed to initialize the SD Card reader and/or eMMC drive.
+ Most only require 1000μs, but certain readers can take 1000000μs.
+
endif
if TIANOCORE_COREBOOTPAYLOAD
diff --git a/payloads/external/tianocore/Makefile b/payloads/external/tianocore/Makefile
index c6247cdefc22..437e706d5587 100644
--- a/payloads/external/tianocore/Makefile
+++ b/payloads/external/tianocore/Makefile
@@ -64,6 +64,10 @@ endif
ifeq ($(CONFIG_TIANOCORE_CBMEM_LOGGING),y)
BUILD_STR += -D USE_CBMEM_FOR_CONSOLE=TRUE
endif
+# SD_MMC_TIMEOUT = 1000000
+ifneq ($(CONFIG_TIANOCORE_SD_MMC_TIMEOUT),)
+BUILD_STR += -D SD_MMC_TIMEOUT=$(CONFIG_TIANOCORE_SD_MMC_TIMEOUT)
+endif
#
# The below are legacy options only available in CorebootPayloadPkg:
#