From 107654552cb442b8b95c1f3ebc18dd64c6c0f0d5 Mon Sep 17 00:00:00 2001 From: bellard Date: Wed, 3 May 2006 21:24:55 +0000 Subject: [PATCH] more correct e820 ranges for ACPI compatibility git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1901 c046a42c-6fe2-441c-8c8c-71466251a162 --- pc-bios/bios.bin | Bin 65536 -> 65536 bytes pc-bios/bios.diff | 146 +++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 138 insertions(+), 8 deletions(-) diff --git a/pc-bios/bios.bin b/pc-bios/bios.bin index 537851abbd2efdac93913844455002989b16515c..64be517b248ec359e109217b9021517050ec30e3 100644 GIT binary patch delta 11814 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 16); ++ write_word(ES, DI+4, 0x00); ++ write_word(ES, DI+6, 0x00); ++ ++ end -= start; ++ write_word(ES, DI+8, end); ++ write_word(ES, DI+10, end >> 16); ++ write_word(ES, DI+12, 0x0000); ++ write_word(ES, DI+14, 0x0000); ++ ++ write_word(ES, DI+16, type); ++ write_word(ES, DI+18, 0x0); ++} ++ + void + int15_function32(regs, ES, DS, FLAGS) + pushad_regs_t regs; // REGS pushed via pushad +@@ -4063,19 +4090,8 @@ + switch(regs.u.r16.bx) + { + case 0: +- write_word(ES, regs.u.r16.di, 0x00); +- write_word(ES, regs.u.r16.di+2, 0x00); +- write_word(ES, regs.u.r16.di+4, 0x00); +- write_word(ES, regs.u.r16.di+6, 0x00); +- +- write_word(ES, regs.u.r16.di+8, 0xFC00); +- write_word(ES, regs.u.r16.di+10, 0x0009); +- write_word(ES, regs.u.r16.di+12, 0x0000); +- write_word(ES, regs.u.r16.di+14, 0x0000); +- +- write_word(ES, regs.u.r16.di+16, 0x1); +- write_word(ES, regs.u.r16.di+18, 0x0); +- ++ set_e820_range(ES, regs.u.r16.di, ++ 0x0000000L, 0x0009fc00L, 1); + regs.u.r32.ebx = 1; + regs.u.r32.eax = 0x534D4150; + regs.u.r32.ecx = 0x14; +@@ -4083,6 +4099,24 @@ + return; + break; + case 1: ++ set_e820_range(ES, regs.u.r16.di, ++ 0x0009fc00L, 0x000a0000L, 2); ++ regs.u.r32.ebx = 2; ++ regs.u.r32.eax = 0x534D4150; ++ regs.u.r32.ecx = 0x14; ++ CLEAR_CF(); ++ return; ++ break; ++ case 2: ++ set_e820_range(ES, regs.u.r16.di, ++ 0x000e8000L, 0x00100000L, 2); ++ regs.u.r32.ebx = 3; ++ regs.u.r32.eax = 0x534D4150; ++ regs.u.r32.ecx = 0x14; ++ CLEAR_CF(); ++ return; ++ break; ++ case 3: + extended_memory_size = inb_cmos(0x35); + extended_memory_size <<= 8; + extended_memory_size |= inb_cmos(0x34); +@@ -4092,9 +4126,9 @@ + extended_memory_size = 0x3bc000; // everything after this is reserved memory until we get to 0x100000000 + } + extended_memory_size *= 1024; +- extended_memory_size += 15728640; // make up for the 16mb of memory that is chopped off ++ extended_memory_size += (16L * 1024 * 1024); + +- if(extended_memory_size <= 15728640) ++ if(extended_memory_size <= (16L * 1024 * 1024)) + { + extended_memory_size = inb_cmos(0x31); + extended_memory_size <<= 8; +@@ -4102,28 +4136,23 @@ + extended_memory_size *= 1024; + } + +- write_word(ES, regs.u.r16.di, 0x0000); +- write_word(ES, regs.u.r16.di+2, 0x0010); +- write_word(ES, regs.u.r16.di+4, 0x0000); +- write_word(ES, regs.u.r16.di+6, 0x0000); +- +- write_word(ES, regs.u.r16.di+8, extended_memory_size); +- extended_memory_size >>= 16; +- write_word(ES, regs.u.r16.di+10, extended_memory_size); +- extended_memory_size >>= 16; +- write_word(ES, regs.u.r16.di+12, extended_memory_size); +- extended_memory_size >>= 16; +- write_word(ES, regs.u.r16.di+14, extended_memory_size); +- +- write_word(ES, regs.u.r16.di+16, 0x1); +- write_word(ES, regs.u.r16.di+18, 0x0); +- +- regs.u.r32.ebx = 0; ++ set_e820_range(ES, regs.u.r16.di, ++ 0x00100000L, extended_memory_size, 1); ++ regs.u.r32.ebx = 4; + regs.u.r32.eax = 0x534D4150; + regs.u.r32.ecx = 0x14; + CLEAR_CF(); + return; + break; ++ case 4: ++ /* 256KB BIOS area at the end of 4 GB */ ++ set_e820_range(ES, regs.u.r16.di, ++ 0xfffc0000L, 0x00000000L, 2); ++ regs.u.r32.ebx = 0; ++ regs.u.r32.eax = 0x534D4150; ++ regs.u.r32.ecx = 0x14; ++ CLEAR_CF(); ++ return; + default: /* AX=E820, DX=534D4150, BX unrecognized */ + goto int15_unimplemented; + break; +@@ -8713,6 +8742,7 @@ mov al, #0x80 bios32_end: popf @@ -46,7 +176,7 @@ diff -u -w -r1.160 rombios.c retf .align 16 -@@ -8823,17 +8828,17 @@ +@@ -8823,17 +8853,17 @@ pci_pro_fail: pop edi pop esi @@ -66,7 +196,7 @@ diff -u -w -r1.160 rombios.c retf pci_pro_select_reg: -@@ -8971,7 +8976,7 @@ +@@ -8971,7 +9001,7 @@ jmp pci_real_ok pci_real_f0d: ;; write configuration dword cmp al, #0x0d @@ -75,7 +205,7 @@ diff -u -w -r1.160 rombios.c call pci_real_select_reg push dx mov dx, #0x0cfc -@@ -8979,6 +8984,46 @@ +@@ -8979,6 +9009,46 @@ out dx, eax pop dx jmp pci_real_ok @@ -122,7 +252,7 @@ diff -u -w -r1.160 rombios.c pci_real_unknown: mov ah, #0x81 pci_real_fail: -@@ -9019,6 +9064,7 @@ +@@ -9019,6 +9089,7 @@ dw 0,0 ;; Miniport data db 0,0,0,0,0,0,0,0,0,0,0 ;; reserved db 0x07 ;; checksum @@ -130,7 +260,7 @@ diff -u -w -r1.160 rombios.c ;; first slot entry PCI-to-ISA (embedded) db 0 ;; pci bus number db 0x08 ;; pci device number (bit 7-3) -@@ -9097,6 +9143,7 @@ +@@ -9097,6 +9168,7 @@ dw 0xdef8 ;; IRQ bitmap INTD# db 5 ;; physical slot (0 = embedded) db 0 ;; reserved