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>
This commit is contained in:
parent
fe512d65e0
commit
c6e052f080
Binary file not shown.
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user