[SeaBIOS] [PATCH] vgabios: Fetch _rom_header_size from the global segment when computing the ROM's checksum

Julian Pidancet julian.pidancet at gmail.com
Mon Mar 5 15:20:45 CET 2012


Otherwise, checksum_far is getting called with zero as the length
parameter, and the ROM checksum in the header end up beeing zero
after vga_post() is called.

Signed-off-by: Julian Pidancet <julian.pidancet at gmail.com>
---
 vgasrc/vgabios.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/vgasrc/vgabios.c b/vgasrc/vgabios.c
index 58e467d..c1b10c1 100644
--- a/vgasrc/vgabios.c
+++ b/vgasrc/vgabios.c
@@ -1255,6 +1255,7 @@ vga_post(struct bregs *regs)
     // Fixup checksum
     extern u8 _rom_header_size, _rom_header_checksum;
     SET_VGA(_rom_header_checksum, 0);
-    u8 sum = -checksum_far(get_global_seg(), 0, _rom_header_size * 512);
+    u8 sum = -checksum_far(get_global_seg(), 0,
+                           GET_GLOBAL(_rom_header_size) * 512);
     SET_VGA(_rom_header_checksum, sum);
 }
-- 
Julian Pidancet




More information about the SeaBIOS mailing list