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 | focaccia-qemu-c6e052f0809b56a657b2afcd728e07ffddb28f06.tar.gz focaccia-qemu-c6e052f0809b56a657b2afcd728e07ffddb28f06.zip | |
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 index f74a6e142f..7b3c1745a4 100644 --- a/pc-bios/multiboot.bin +++ b/pc-bios/multiboot.bin Binary files differdiff --git a/pc-bios/optionrom/multiboot.S b/pc-bios/optionrom/multiboot.S index f08222a3c6..003bcfb49f 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 |