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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 F{tqsKZtnm9 delta 11866 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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 -- 2.39.5