From 4a9be9f32120794e7ea16d7dd5f4490f17dad623 Mon Sep 17 00:00:00 2001 From: Sean Rhodes Date: Sun, 13 Feb 2022 21:19:19 +0000 Subject: [PATCH] payloads/tianocore: Pass SD_MMC_TIMEOUT build option MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Change-Id: I873bcddf6f37a9eaae5c84991b3996d51fb460d3 Reviewed-on: https://review.coreboot.org/c/coreboot/+/61902 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer Reviewed-by: Nico Huber --- payloads/external/Makefile.inc | 1 + payloads/external/tianocore/Kconfig | 7 +++++++ payloads/external/tianocore/Makefile | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc index 049fcd9ce8..e805a07b0a 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 4d52994dd5..4194290747 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 c6247cdefc..437e706d55 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: #