[SeaBIOS] [PATCH 5/8] Replace "CONFIG_OPTIONROMS_CHECKSUM" with "etc/optionroms-checksum" file.
Kevin O'Connor
kevin at koconnor.net
Wed Jul 6 03:09:22 CEST 2011
---
src/Kconfig | 11 -----------
src/optionroms.c | 6 +++++-
2 files changed, 5 insertions(+), 12 deletions(-)
diff --git a/src/Kconfig b/src/Kconfig
index 7a4d50a..3f63374 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -248,17 +248,6 @@ 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 b5a4297..3839497 100644
--- a/src/optionroms.c
+++ b/src/optionroms.c
@@ -116,6 +116,8 @@ call_bcv(u16 seg, u16 ip)
__callrom(MAKE_FLATPTR(seg, 0), ip, 0);
}
+static int EnforceChecksum;
+
// Verify that an option rom looks valid
static int
is_valid_rom(struct rom_header *rom)
@@ -131,7 +133,7 @@ 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);
- if (CONFIG_OPTIONROMS_CHECKSUM)
+ if (EnforceChecksum)
return 0;
}
return 1;
@@ -468,6 +470,8 @@ vga_setup(void)
dprintf(1, "Scan for VGA option rom\n");
+ EnforceChecksum = romfile_loadint("etc/optionroms-checksum", 1);
+
if (CONFIG_OPTIONROMS_DEPLOYED) {
// Option roms are already deployed on the system.
init_optionrom((void*)BUILD_ROM_START, 0, 1);
--
1.7.4.4
More information about the SeaBIOS
mailing list