diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2012-11-29 18:11:50 +0100 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2012-11-30 08:27:47 -0600 |
commit | c6e052f0809b56a657b2afcd728e07ffddb28f06 (patch) | |
tree | 9264399c00d2c4e3fe79b1b60f5af98a1f7a7720 | |
parent | fe512d65e0b752dfa7af6cfb374a0820d35040d0 (diff) | |
download | qemu-c6e052f0809b56a657b2afcd728e07ffddb28f06.zip qemu-c6e052f0809b56a657b2afcd728e07ffddb28f06.tar.gz qemu-c6e052f0809b56a657b2afcd728e07ffddb28f06.tar.bz2 |
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@suse.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r-- | pc-bios/multiboot.bin | bin | 1024 -> 1024 bytes | |||
-rw-r--r-- | 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 Binary files differindex f74a6e1..7b3c174 100644 --- a/pc-bios/multiboot.bin +++ b/pc-bios/multiboot.bin 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 |