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;