qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] multiboot: fix e801 memory map


From: Paolo Bonzini
Subject: [Qemu-devel] [PATCH] multiboot: fix e801 memory map
Date: Thu, 29 Nov 2012 18:11:51 +0100

The e801 memory sizes in the multiboot structures hard-code the available
low memory to 640.  However, the value should not include the size of the
EBDA.  Fill the value in the option ROM, getting the size of low memory
from the BIOS.

Cc: Alexander Graf <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
 pc-bios/multiboot.bin         | Bin 1024 -> 1024 bytes
 pc-bios/optionrom/multiboot.S |   7 +++++++
 2 files changed, 7 insertions(+)

diff --git a/pc-bios/multiboot.bin b/pc-bios/multiboot.bin
index 
f74a6e142fddc054d7f40ab346a108532afac40f..7b3c1745a430ea5e0e15b9aa817d1cbbaa40db14
 100644
GIT binary patch
delta 81
address@hidden;KdryK*rZVrajPB|8aZaEhwAcKt|ty|7*VtW(k
kS)address@hidden;eVv)P(y2P2~%0BkrF9smFU

delta 72
zcmZqRXyBNj#capqJW<address@hidden;KdryK*rZVrajPB|8aZaE7kAcKt|ty|7&VtdnM
bA;$lVDU(H+3>gJByEE-zoLs=f!*~_|qXQE}

diff --git a/pc-bios/optionrom/multiboot.S b/pc-bios/optionrom/multiboot.S
index f08222a..003bcfb 100644
--- a/pc-bios/optionrom/multiboot.S
+++ b/pc-bios/optionrom/multiboot.S
@@ -75,6 +75,13 @@ run_multiboot:
        shr             $4, %eax
        mov             %ax, %fs
 
+       /* Account for the EBDA in the multiboot structure's e801
+        * map.
+        */
+       int             $0x12
+       cwtl
+       movl            %eax, %fs:4
+
        /* ES = mmap_addr */
        mov             %fs:48, %eax
        shr             $4, %eax
-- 
1.8.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]