From 49198fe3d11817462f48ce3d3d567b2d8cd95462 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 30 Oct 2021 21:22:27 +0100 Subject: [PATCH] Disable PIKE2008 option ROM loading on KGPE-D16/KCMA-D8 These option ROMs are known to cause a system hang. If you insert an empty option ROM into CBFS, it disables any option ROM loading for those devices when using SeaBIOS. --- resources/coreboot/kcma-d8-rdimm_16mb/board.cfg | 2 +- resources/coreboot/kcma-d8-rdimm_2mb/board.cfg | 2 +- resources/coreboot/kcma-d8-rdimm_4mb/board.cfg | 2 +- resources/coreboot/kcma-d8-rdimm_8mb/board.cfg | 2 +- resources/coreboot/kcma-d8-udimm_16mb/board.cfg | 2 +- resources/coreboot/kcma-d8-udimm_2mb/board.cfg | 2 +- resources/coreboot/kcma-d8-udimm_4mb/board.cfg | 2 +- resources/coreboot/kcma-d8-udimm_8mb/board.cfg | 2 +- resources/coreboot/kgpe-d16-rdimm_16mb/board.cfg | 2 +- resources/coreboot/kgpe-d16-rdimm_2mb/board.cfg | 2 +- resources/coreboot/kgpe-d16-rdimm_4mb/board.cfg | 2 +- resources/coreboot/kgpe-d16-rdimm_8mb/board.cfg | 2 +- resources/coreboot/kgpe-d16-udimm_16mb/board.cfg | 2 +- resources/coreboot/kgpe-d16-udimm_2mb/board.cfg | 2 +- resources/coreboot/kgpe-d16-udimm_4mb/board.cfg | 2 +- resources/coreboot/kgpe-d16-udimm_8mb/board.cfg | 2 +- resources/scripts/build/boot/roms_helper | 12 ++++++++++++ 17 files changed, 28 insertions(+), 16 deletions(-) diff --git a/resources/coreboot/kcma-d8-rdimm_16mb/board.cfg b/resources/coreboot/kcma-d8-rdimm_16mb/board.cfg index 22f9974..44cfbe4 100644 --- a/resources/coreboot/kcma-d8-rdimm_16mb/board.cfg +++ b/resources/coreboot/kcma-d8-rdimm_16mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_rdimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/coreboot/kcma-d8-rdimm_2mb/board.cfg b/resources/coreboot/kcma-d8-rdimm_2mb/board.cfg index 22f9974..44cfbe4 100644 --- a/resources/coreboot/kcma-d8-rdimm_2mb/board.cfg +++ b/resources/coreboot/kcma-d8-rdimm_2mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_rdimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/coreboot/kcma-d8-rdimm_4mb/board.cfg b/resources/coreboot/kcma-d8-rdimm_4mb/board.cfg index 22f9974..44cfbe4 100644 --- a/resources/coreboot/kcma-d8-rdimm_4mb/board.cfg +++ b/resources/coreboot/kcma-d8-rdimm_4mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_rdimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/coreboot/kcma-d8-rdimm_8mb/board.cfg b/resources/coreboot/kcma-d8-rdimm_8mb/board.cfg index 22f9974..44cfbe4 100644 --- a/resources/coreboot/kcma-d8-rdimm_8mb/board.cfg +++ b/resources/coreboot/kcma-d8-rdimm_8mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_rdimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/coreboot/kcma-d8-udimm_16mb/board.cfg b/resources/coreboot/kcma-d8-udimm_16mb/board.cfg index 1361700..1de38d6 100644 --- a/resources/coreboot/kcma-d8-udimm_16mb/board.cfg +++ b/resources/coreboot/kcma-d8-udimm_16mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_udimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/coreboot/kcma-d8-udimm_2mb/board.cfg b/resources/coreboot/kcma-d8-udimm_2mb/board.cfg index 1361700..1de38d6 100644 --- a/resources/coreboot/kcma-d8-udimm_2mb/board.cfg +++ b/resources/coreboot/kcma-d8-udimm_2mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_udimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/coreboot/kcma-d8-udimm_4mb/board.cfg b/resources/coreboot/kcma-d8-udimm_4mb/board.cfg index 1361700..1de38d6 100644 --- a/resources/coreboot/kcma-d8-udimm_4mb/board.cfg +++ b/resources/coreboot/kcma-d8-udimm_4mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_udimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/coreboot/kcma-d8-udimm_8mb/board.cfg b/resources/coreboot/kcma-d8-udimm_8mb/board.cfg index 1361700..1de38d6 100644 --- a/resources/coreboot/kcma-d8-udimm_8mb/board.cfg +++ b/resources/coreboot/kcma-d8-udimm_8mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_udimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/coreboot/kgpe-d16-rdimm_16mb/board.cfg b/resources/coreboot/kgpe-d16-rdimm_16mb/board.cfg index 22f9974..44cfbe4 100644 --- a/resources/coreboot/kgpe-d16-rdimm_16mb/board.cfg +++ b/resources/coreboot/kgpe-d16-rdimm_16mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_rdimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/coreboot/kgpe-d16-rdimm_2mb/board.cfg b/resources/coreboot/kgpe-d16-rdimm_2mb/board.cfg index 22f9974..44cfbe4 100644 --- a/resources/coreboot/kgpe-d16-rdimm_2mb/board.cfg +++ b/resources/coreboot/kgpe-d16-rdimm_2mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_rdimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/coreboot/kgpe-d16-rdimm_4mb/board.cfg b/resources/coreboot/kgpe-d16-rdimm_4mb/board.cfg index 22f9974..44cfbe4 100644 --- a/resources/coreboot/kgpe-d16-rdimm_4mb/board.cfg +++ b/resources/coreboot/kgpe-d16-rdimm_4mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_rdimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/coreboot/kgpe-d16-rdimm_8mb/board.cfg b/resources/coreboot/kgpe-d16-rdimm_8mb/board.cfg index 22f9974..44cfbe4 100644 --- a/resources/coreboot/kgpe-d16-rdimm_8mb/board.cfg +++ b/resources/coreboot/kgpe-d16-rdimm_8mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_rdimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/coreboot/kgpe-d16-udimm_16mb/board.cfg b/resources/coreboot/kgpe-d16-udimm_16mb/board.cfg index 1361700..1de38d6 100644 --- a/resources/coreboot/kgpe-d16-udimm_16mb/board.cfg +++ b/resources/coreboot/kgpe-d16-udimm_16mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_udimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/coreboot/kgpe-d16-udimm_2mb/board.cfg b/resources/coreboot/kgpe-d16-udimm_2mb/board.cfg index 1361700..1de38d6 100644 --- a/resources/coreboot/kgpe-d16-udimm_2mb/board.cfg +++ b/resources/coreboot/kgpe-d16-udimm_2mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_udimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/coreboot/kgpe-d16-udimm_4mb/board.cfg b/resources/coreboot/kgpe-d16-udimm_4mb/board.cfg index 1361700..1de38d6 100644 --- a/resources/coreboot/kgpe-d16-udimm_4mb/board.cfg +++ b/resources/coreboot/kgpe-d16-udimm_4mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_udimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/coreboot/kgpe-d16-udimm_8mb/board.cfg b/resources/coreboot/kgpe-d16-udimm_8mb/board.cfg index 1361700..1de38d6 100644 --- a/resources/coreboot/kgpe-d16-udimm_8mb/board.cfg +++ b/resources/coreboot/kgpe-d16-udimm_8mb/board.cfg @@ -1,5 +1,5 @@ cbtree="fam15h_udimm" -romtype="normal" +romtype="d8d16sas" arch="x86_64" payload_grub="y" payload_grub_withseabios="y" diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index 471f475..77cc9f1 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -221,6 +221,18 @@ moverom() { cp ${rompath} ${newrompath} fi + # pike2008 cards cause a system hang when loading the option rom in seabios + # if there is an empty option rom in cbfs, no option rom will be loaded + if [ "${cuttype}" = "d8d16sas" ]; then + emptyrom=$(mktemp -t coreboot_rom.XXXXXXXXXX) + rm -f "${emptyrom}" + touch "${emptyrom}" + for deviceID in "0072" "3050"; do + "${cbfstool}" "${newrompath}" add -f "${emptyrom}" -n pci1000,${deviceID} -t raw + done + rm -f "${emptyrom}" + fi + for romsize in 4 8 16; do if [ "${cuttype}" = "${romsize}MiB ICH9 IFD NOR flash" ]; then if [ ! -f "descriptors/ich9m/ich9fdgbe_${romsize}m.bin" ]; then