From a3073175a6b8a184cdfeec4c032d869a0b427c6e Mon Sep 17 00:00:00 2001 From: Binbin Wu Date: Wed, 22 May 2019 15:36:28 +0800 Subject: [PATCH] dm: e820: reserve memory range for EPC resource Reserved 128MB memory range for EPC resource in E820 table, starting from 0x80000000. Need to align the base address b/t DM and HV. For hypervisor, the base address will be specified in epc field in vm_configurations.c Tracked-On: #3179 Signed-off-by: Binbin Wu Acked-by: Eddie Dong --- devicemodel/core/sw_load_common.c | 14 +++++++++++--- devicemodel/include/sw_load.h | 4 ++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/devicemodel/core/sw_load_common.c b/devicemodel/core/sw_load_common.c index 0a2a5d7b8..d06fbd43b 100644 --- a/devicemodel/core/sw_load_common.c +++ b/devicemodel/core/sw_load_common.c @@ -55,9 +55,10 @@ static char bootargs[BOOT_ARG_LEN]; * 1: 0xA0000 - 0x100000 (reserved) 0x60000 * 2: 0x100000 - lowmem RAM lowmem - 1MB * 3: lowmem - 0x80000000 (reserved) 2GB - lowmem - * 4: 0xE0000000 - 0x100000000 MCFG, MMIO 512MB - * 5: 0x100000000 - 0x140000000 64-bit PCI hole 1GB - * 6: 0x140000000 - highmem RAM highmem - 5GB + * 4: 0x80000000 - 0x88000000 (reserved) 128MB + * 5: 0xE0000000 - 0x100000000 MCFG, MMIO 512MB + * 6: 0x100000000 - 0x140000000 64-bit PCI hole 1GB + * 7: 0x140000000 - highmem RAM highmem - 5GB */ const struct e820_entry e820_default_entries[NUM_E820_ENTRIES] = { { /* 0 to video memory */ @@ -84,6 +85,13 @@ const struct e820_entry e820_default_entries[NUM_E820_ENTRIES] = { .type = E820_TYPE_RESERVED }, + { + /* reserve for PRM resource */ + .baseaddr = 0x80000000, + .length = 0x8000000, + .type = E820_TYPE_RESERVED + }, + { /* ECFG_BASE to 4GB */ .baseaddr = PCI_EMUL_ECFG_BASE, .length = (4 * GB) - PCI_EMUL_ECFG_BASE, diff --git a/devicemodel/include/sw_load.h b/devicemodel/include/sw_load.h index a19f4bc91..74424edf8 100644 --- a/devicemodel/include/sw_load.h +++ b/devicemodel/include/sw_load.h @@ -39,9 +39,9 @@ #define E820_TYPE_ACPI_NVS 4 /* EFI 10 */ #define E820_TYPE_UNUSABLE 5 /* EFI 8 */ -#define NUM_E820_ENTRIES 7 +#define NUM_E820_ENTRIES 8 #define LOWRAM_E820_ENTRY 2 -#define HIGHRAM_E820_ENTRY 6 +#define HIGHRAM_E820_ENTRY 7 /* Defines a single entry in an E820 memory map. */ struct e820_entry {