mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-19 20:22:46 +00:00
DM: Update the default e820 table to reserve 0xF0000~0x100000
The region of MPtable/ACPI table/SMBios resides in 0xF0000 ~ 0x100000. They should be marked as RESERVED instead of RAM type in e820 table. Signed-off-by: Yin Fengwei <fengwei.yin@intel.com> Reviewed-by: Zhao Yakui <yakui.zhao@intel.com> Acked-by: Anthony Xu <anthony.xu@intel.com>
This commit is contained in:
parent
c33e1d5cc6
commit
e2eaf56ea2
@ -52,16 +52,30 @@ static char bootargs[STR_LEN];
|
||||
* ctx->highmem = request_memory_size - ctx->lowmem_limit
|
||||
*
|
||||
* Begin End Type Length
|
||||
* 0: 0 - lowmem RAM lowmem
|
||||
* 1: lowmem - bff_fffff (reserved) 0xc00_00000-lowmem
|
||||
* 2: 0xc00_00000 - dff_fffff PCI hole 512MB
|
||||
* 3: 0xe00_00000 - fff_fffff (reserved) 512MB
|
||||
* 2: 1_000_00000 - highmem RAM highmem-4G
|
||||
* 0: 0 - 0xF0000 RAM 0xF0000
|
||||
* 1 0xf0000 - 0x100000 (reserved) 0x10000
|
||||
* 2 0x100000 - lowmem RAM lowmem - 0x100000
|
||||
* 3: lowmem - bff_fffff (reserved) 0xc00_00000-lowmem
|
||||
* 4: 0xc00_00000 - dff_fffff PCI hole 512MB
|
||||
* 5: 0xe00_00000 - fff_fffff (reserved) 512MB
|
||||
* 6: 1_000_00000 - highmem RAM highmem-4G
|
||||
*/
|
||||
const struct e820_entry e820_default_entries[NUM_E820_ENTRIES] = {
|
||||
{ /* 0 to lowmem */
|
||||
{ /* 0 to mptable/smbios/acpi */
|
||||
.baseaddr = 0x00000000,
|
||||
.length = 0x49000000,
|
||||
.length = 0xF0000,
|
||||
.type = E820_TYPE_RAM
|
||||
},
|
||||
|
||||
{ /* mptable/smbios/acpi to lowmem */
|
||||
.baseaddr = 0xF0000,
|
||||
.length = 0x10000,
|
||||
.type = E820_TYPE_RESERVED
|
||||
},
|
||||
|
||||
{ /* lowmem to lowmem_limit*/
|
||||
.baseaddr = 0x100000,
|
||||
.length = 0x48f00000,
|
||||
.type = E820_TYPE_RAM
|
||||
},
|
||||
|
||||
@ -126,7 +140,8 @@ acrn_create_e820_table(struct vmctx *ctx, struct e820_entry *e820)
|
||||
memcpy(e820, e820_default_entries, sizeof(e820_default_entries));
|
||||
|
||||
if (ctx->lowmem > 0) {
|
||||
e820[LOWRAM_E820_ENTRIES].length = ctx->lowmem;
|
||||
e820[LOWRAM_E820_ENTRIES].length = ctx->lowmem -
|
||||
e820[LOWRAM_E820_ENTRIES].baseaddr;
|
||||
e820[LOWRAM_E820_ENTRIES+1].baseaddr = ctx->lowmem;
|
||||
e820[LOWRAM_E820_ENTRIES+1].length =
|
||||
ctx->lowmem_limit - ctx->lowmem;
|
||||
|
@ -42,9 +42,9 @@
|
||||
#define E820_TYPE_ACPI_NVS 4 /* EFI 10 */
|
||||
#define E820_TYPE_UNUSABLE 5 /* EFI 8 */
|
||||
|
||||
#define NUM_E820_ENTRIES 4
|
||||
#define LOWRAM_E820_ENTRIES 0
|
||||
#define HIGHRAM_E820_ENTRIES 3
|
||||
#define NUM_E820_ENTRIES 6
|
||||
#define LOWRAM_E820_ENTRIES 2
|
||||
#define HIGHRAM_E820_ENTRIES 5
|
||||
|
||||
/* Defines a single entry in an E820 memory map. */
|
||||
struct e820_entry {
|
||||
|
Loading…
Reference in New Issue
Block a user