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

[Xen-changelog] [qemu-upstream-unstable] multiboot: fix e801 memory map



commit c6e052f0809b56a657b2afcd728e07ffddb28f06
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date:   Thu Nov 29 18:11:50 2012 +0100

    multiboot: fix e801 memory map
    
    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 <agraf@xxxxxxx>
    Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
    Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
    Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx>
---
 pc-bios/multiboot.bin         |  Bin 1024 -> 1024 bytes
 pc-bios/optionrom/multiboot.S |    7 +++++++
 2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/pc-bios/multiboot.bin b/pc-bios/multiboot.bin
index f74a6e1..7b3c174 100644
Binary files a/pc-bios/multiboot.bin and b/pc-bios/multiboot.bin differ
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
--
generated by git-patchbot for /home/xen/git/qemu-upstream-unstable.git

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.