HV: modify low 1MB area for pre-launched VM e820

The memory range of [0xA0000, 0xFFFFF] is a known reserved area for BIOS,
actually Linux kernel would enforce this area to be reserved during its
boot stage. Set this area to usable would cause potential compatibility
issues.

The patch set the range to reserved type to make it consistent with the
real world.

BTW, There should be a EBDA(Entended BIOS DATA Area) with reserved type
exist right before 0xA0000 in real world for non-EFI boot. But given ACRN
has no legacy BIOS emulation, we simply skipped the EBDA in vE820.

Tracked-On: #5626

Signed-off-by: Victor Sun <victor.sun@intel.com>
Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com>
This commit is contained in:
Victor Sun 2021-05-14 10:18:17 +08:00 committed by wenlingz
parent 9dfac7a7a3
commit 6127c0c5d2

View File

@ -127,12 +127,12 @@ void create_sos_vm_e820(struct acrn_vm *vm)
static const struct e820_entry pre_ve820_template[E820_MAX_ENTRIES] = {
{ /* usable RAM under 1MB */
.baseaddr = 0x0UL,
.length = 0xF0000UL, /* 960KB */
.length = 0xA0000UL, /* 640KB */
.type = E820_TYPE_RAM
},
{ /* mptable/RSDP */
.baseaddr = 0xF0000UL, /* 960KB */
.length = 0x10000UL, /* 64KB */
{ /* Video/BIOS extentions */
.baseaddr = 0xA0000UL,
.length = 0x60000UL, /* 384KB */
.type = E820_TYPE_RESERVED
},
/* Software SRAM segment splits the lowmem into two parts */