summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2011-03-06 19:22:46 -0500
committerKevin O'Connor <kevin@koconnor.net>2011-03-06 19:22:46 -0500
commitcc975646af69f279396d4d5e1379ac6af80ee637 (patch)
treec4b8f983fe8d82b0d201a19037fe91092d2b8245
parent424f217fe01ed7e2398d9e56a2803f86856cdc06 (diff)
Add config option to permit running option roms with bad checksums.HEADmaster
Based on a patch by: Stefan Reinauer <reinauer@google.com>
-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;
}