From 277ec9e263a78a4ef8ca85f99a7e6ca03a27431a Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Wed, 3 May 2023 15:05:36 -0700 Subject: [PATCH] src/platform/kgpe/default.nix: set USE_OPTION_TABLE=no Upstream describes this option as "Enable this option if coreboot shall read options from the CMOS NVRAM instead of using hard-coded values." The RTC_BOOT_BYTE (which controls normal/fallback) indicator is always taken from CMOS NVRAM, regardless of how this option is set. When set to `no`, no other parts of the CMOS NVRAM are read or written. On KGPE-D16 I have found that USE_OPTION_TABLE=yes is frustratingly flaky and unstable; about 1 in 20 boots will hang in the PNP device enumeration. Apparently during SMP boot, multiple cores attempt to access the (single) CMOS NVRAM concurrently, causing massive headaches. Please don't turn this option on unless you are willing to deal with extreme frustration. --- src/platform/kgpe/default.nix | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/platform/kgpe/default.nix b/src/platform/kgpe/default.nix index 2aab9b9..f30f4a9 100644 --- a/src/platform/kgpe/default.nix +++ b/src/platform/kgpe/default.nix @@ -50,9 +50,24 @@ config = with lib.kernel; { CBFS_PREFIX = lib.mkForce (freeform "prefix"); - # (freeform "Enable this option if coreboot shall read options from the "CMOS" - # NVRAM instead of using hard-coded values." - USE_OPTION_TABLE = lib.mkForce yes; + # Upstream describes this option as "Enable this option if + # coreboot shall read options from the CMOS NVRAM instead of + # using hard-coded values." + # + # The RTC_BOOT_BYTE (which controls normal/fallback) + # indicator is always taken from CMOS NVRAM, regardless of + # how this option is set. When set to `no`, no other parts + # of the CMOS NVRAM are read or written. + # + # On KGPE-D16 I have found that USE_OPTION_TABLE=yes is + # frustratingly flaky and unstable; about 1 in 20 boots will + # hang in the PNP device enumeration. Apparently during SMP + # boot, multiple cores attempt to access the (single) CMOS + # NVRAM concurrently, causing massive headaches. Please + # don't turn this option on unless you are willing to deal + # with extreme frustration. + # + USE_OPTION_TABLE = lib.mkForce no; BOARD_ASUS_KGPE_D16 = lib.mkForce yes; VENDOR_ASUS = lib.mkForce yes;