mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2026-06-06 17:21:22 +00:00
In the current design, logic partition scenario is supported on KBL NUC i7 since there is no related configuration and no the cooresponding boot loader supporting. The boot loader supporting is done in the previous patch. Add some configurations such physical PCI devices information, virtual e820 table etc for KBL NUC i7 to enable logical partition scenario. In the logical partition of KBL NUC i7, there are two pre-launched VM, this pre-launched VM doesn't support local APIC passthrough now. The hypervisor is booted through GRUB. TODO: In future, Local APIC passthrough and some real time fetures are needed for the logic partition scenario of KBL NUC i7. V5-->V6: Update "Tracked-On" Tracked-On: #2944 Signed-off-by: Xiangyang Wu <xiangyang.wu@linux.intel.com> Reviewed-by: Eddie Dong <eddie.dong@intel.com>
50 lines
1.1 KiB
C
50 lines
1.1 KiB
C
/*
|
|
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#include <e820.h>
|
|
#include <vm.h>
|
|
|
|
#define VE820_ENTRIES_KBL_NUC_i7 5U
|
|
static const struct e820_entry ve820_entry[VE820_ENTRIES_KBL_NUC_i7] = {
|
|
{ /* usable RAM under 1MB */
|
|
.baseaddr = 0x0UL,
|
|
.length = 0xF0000UL, /* 960KB */
|
|
.type = E820_TYPE_RAM
|
|
},
|
|
|
|
{ /* mptable */
|
|
.baseaddr = 0xF0000UL, /* 960KB */
|
|
.length = 0x10000UL, /* 16KB */
|
|
.type = E820_TYPE_RESERVED
|
|
},
|
|
|
|
{ /* lowmem */
|
|
.baseaddr = 0x200000UL, /* 2MB */
|
|
.length = 0x1FE00000UL, /* 510MB */
|
|
.type = E820_TYPE_RAM
|
|
},
|
|
|
|
{ /* between lowmem and PCI hole */
|
|
.baseaddr = 0x20000000UL, /* 512MB */
|
|
.length = 0xA0000000UL, /* 2560MB */
|
|
.type = E820_TYPE_RESERVED
|
|
},
|
|
|
|
{ /* between PCI hole and 4GB */
|
|
.baseaddr = 0xe0000000UL, /* 3.5GB */
|
|
.length = 0x20000000UL, /* 512MB */
|
|
.type = E820_TYPE_RESERVED
|
|
},
|
|
};
|
|
/**
|
|
* @pre vm != NULL
|
|
*/
|
|
void create_prelaunched_vm_e820(struct acrn_vm *vm)
|
|
{
|
|
vm->e820_entry_num = VE820_ENTRIES_KBL_NUC_i7;
|
|
vm->e820_entries = (struct e820_entry *)ve820_entry;
|
|
}
|