summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Kconfig11
-rw-r--r--src/optionroms.c3
2 files changed, 13 insertions, 1 deletions
diff --git a/src/Kconfig b/src/Kconfig
index f064b27..6d55b23 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -250,6 +250,17 @@ menu "BIOS interfaces"
Select this if option ROMs are already copied to
0xc0000-0xf0000. This must only be selected when using
Bochs or QEMU versions older than 0.12.
+ config OPTIONROMS_CHECKSUM
+ depends on OPTIONROMS
+ bool "Require correct checksum on option ROMs"
+ default y
+ help
+ Option ROMs are required to have correct checksums.
+ However, some option ROMs in the wild don't correctly
+ follow the specifications and have bad checksums.
+ Say N here to allow SeaBIOS to execute them anyways.
+
+ If unsure, say Y.
config PMM
depends on OPTIONROMS
bool "PMM interface"
diff --git a/src/optionroms.c b/src/optionroms.c
index a94b46c..37a4e6c 100644
--- a/src/optionroms.c
+++ b/src/optionroms.c
@@ -131,7 +131,8 @@ is_valid_rom(struct rom_header *rom)
if (sum != 0) {
dprintf(1, "Found option rom with bad checksum: loc=%p len=%d sum=%x\n"
, rom, len, sum);
- return 0;
+ if (CONFIG_OPTIONROMS_CHECKSUM)
+ return 0;
}
return 1;
}