HV: add scenario for logical partition
In this scenario, hypervisor will run two logical partition VMs. Please note that the Kconfig of Hypervisor mode will be removed gradually. In current Kconfig setting, the CONFIG_PARTITION_MODE is still kept for now for back-compatibility. Tracked-On: #2291 Signed-off-by: Victor Sun <victor.sun@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
parent
56c193851a
commit
7580cddf9f
|
@ -42,6 +42,8 @@ include scripts/kconfig/kconfig.mk
|
|||
#initialize scenarios name
|
||||
ifeq ($(CONFIG_SDC),y)
|
||||
SCENARIO_NAME := sdc
|
||||
else ifeq ($(CONFIG_LOGICAL_PARTITION),y)
|
||||
SCENARIO_NAME := logical_partition
|
||||
endif
|
||||
|
||||
LD_IN_TOOL = scripts/genld.sh
|
||||
|
@ -144,13 +146,8 @@ C_SRCS += arch/x86/seed/seed_sbl.c
|
|||
# configuration component
|
||||
C_SRCS += arch/x86/configs/vm_config.c
|
||||
C_SRCS += arch/x86/configs/$(CONFIG_BOARD)/ve820.c
|
||||
ifeq ($(CONFIG_PARTITION_MODE),y)
|
||||
C_SRCS += arch/x86/configs/$(CONFIG_BOARD)/pt_dev.c
|
||||
else
|
||||
C_SRCS += scenarios/$(SCENARIO_NAME)/pt_dev.c
|
||||
endif
|
||||
|
||||
C_SRCS += arch/x86/configs/$(CONFIG_BOARD)/board.c
|
||||
C_SRCS += scenarios/$(SCENARIO_NAME)/pt_dev.c
|
||||
|
||||
C_SRCS += boot/acpi.c
|
||||
C_SRCS += boot/dmar_parse.c
|
||||
|
|
|
@ -10,6 +10,11 @@ config SDC
|
|||
SDC (Software Defined Cockpit) is a typical scenario that ACRN supported.
|
||||
SDC will have one pre-launched SOS VM and one post-launched NORMAL VM.
|
||||
|
||||
config LOGICAL_PARTITION
|
||||
bool "Logical Partition VMs"
|
||||
help
|
||||
This scenario will run two pre-launched VMs.
|
||||
|
||||
endchoice
|
||||
|
||||
choice
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef PARTITION_CONFIG_H
|
||||
#define PARTITION_CONFIG_H
|
||||
|
||||
#define VM0_CONFIGURED
|
||||
|
||||
#define VM0_CONFIG_NAME "PRE-LAUNCHED VM1 for APL-MRB"
|
||||
#define VM0_CONFIG_TYPE PRE_LAUNCHED_VM
|
||||
#define VM0_CONFIG_PCPU_BITMAP (PLUG_CPU(0) | PLUG_CPU(2))
|
||||
#define VM0_CONFIG_FLAGS GUEST_FLAG_IO_COMPLETION_POLLING
|
||||
#define VM0_CONFIG_MEM_START_HPA 0x100000000UL
|
||||
#define VM0_CONFIG_MEM_SIZE 0x20000000UL
|
||||
|
||||
#define VM0_CONFIG_OS_NAME "ClearLinux 26600"
|
||||
#define VM0_CONFIG_OS_BOOTARGS "root=/dev/sda3 rw rootwait noxsave maxcpus=2 nohpet console=hvc0 \
|
||||
console=ttyS2 no_timer_check ignore_loglevel log_buf_len=16M \
|
||||
consoleblank=0 tsc=reliable xapic_phys"
|
||||
|
||||
#define VM1_CONFIGURED
|
||||
|
||||
#define VM1_CONFIG_NAME "PRE-LAUNCHED VM2 for APL-MRB"
|
||||
#define VM1_CONFIG_TYPE PRE_LAUNCHED_VM
|
||||
#define VM1_CONFIG_PCPU_BITMAP (PLUG_CPU(1) | PLUG_CPU(3))
|
||||
#define VM1_CONFIG_FLAGS GUEST_FLAG_IO_COMPLETION_POLLING
|
||||
#define VM1_CONFIG_MEM_START_HPA 0x120000000UL
|
||||
#define VM1_CONFIG_MEM_SIZE 0x20000000UL
|
||||
|
||||
#define VM1_CONFIG_OS_NAME "ClearLinux 26600"
|
||||
#define VM1_CONFIG_OS_BOOTARGS "root=/dev/sda3 rw rootwait noxsave maxcpus=2 nohpet console=hvc0 \
|
||||
console=ttyS2 no_timer_check ignore_loglevel log_buf_len=16M \
|
||||
consoleblank=0 tsc=reliable xapic_phys"
|
||||
|
||||
#define VM0_CONFIG_PCI_PTDEV_NUM 3U
|
||||
#define VM1_CONFIG_PCI_PTDEV_NUM 3U
|
||||
|
||||
extern struct acrn_vm_pci_ptdev_config vm0_pci_ptdevs[VM0_CONFIG_PCI_PTDEV_NUM];
|
||||
extern struct acrn_vm_pci_ptdev_config vm1_pci_ptdevs[VM1_CONFIG_PCI_PTDEV_NUM];
|
||||
|
||||
#endif /* PARTITION_CONFIG_H */
|
|
@ -1,46 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef PARTITION_CONFIG_H
|
||||
#define PARTITION_CONFIG_H
|
||||
|
||||
#define VM0_CONFIGURED
|
||||
|
||||
#define VM0_CONFIG_NAME "PRE-LAUNCHED VM1 for DNV-CB2"
|
||||
#define VM0_CONFIG_TYPE PRE_LAUNCHED_VM
|
||||
#define VM0_CONFIG_PCPU_BITMAP (PLUG_CPU(0) | PLUG_CPU(2) | PLUG_CPU(4) | PLUG_CPU(6))
|
||||
#define VM0_CONFIG_FLAGS (GUEST_FLAG_LAPIC_PASSTHROUGH | GUEST_FLAG_IO_COMPLETION_POLLING | \
|
||||
GUEST_FLAG_RT)
|
||||
#define VM0_CONFIG_MEM_START_HPA 0x100000000UL
|
||||
#define VM0_CONFIG_MEM_SIZE 0x80000000UL
|
||||
|
||||
#define VM0_CONFIG_OS_NAME "ClearLinux 26600"
|
||||
#define VM0_CONFIG_OS_BOOTARGS "root=/dev/sda rw rootwait noxsave maxcpus=4 nohpet console=hvc0 " \
|
||||
"console=ttyS0 no_timer_check ignore_loglevel log_buf_len=16M "\
|
||||
"consoleblank=0 tsc=reliable xapic_phys apic_debug"
|
||||
|
||||
#define VM1_CONFIGURED
|
||||
|
||||
#define VM1_CONFIG_NAME "PRE-LAUNCHED VM2 for DNV-CB2"
|
||||
#define VM1_CONFIG_TYPE PRE_LAUNCHED_VM
|
||||
#define VM1_CONFIG_PCPU_BITMAP (PLUG_CPU(1) | PLUG_CPU(3) | PLUG_CPU(5) | PLUG_CPU(7))
|
||||
#define VM1_CONFIG_FLAGS (GUEST_FLAG_LAPIC_PASSTHROUGH | GUEST_FLAG_IO_COMPLETION_POLLING | \
|
||||
GUEST_FLAG_RT)
|
||||
#define VM1_CONFIG_MEM_START_HPA 0x180000000UL
|
||||
#define VM1_CONFIG_MEM_SIZE 0x80000000UL
|
||||
|
||||
#define VM1_CONFIG_OS_NAME "ClearLinux 26600"
|
||||
#define VM1_CONFIG_OS_BOOTARGS "root=/dev/sda2 rw rootwait noxsave maxcpus=4 nohpet console=hvc0 "\
|
||||
"console=ttyS0 no_timer_check ignore_loglevel log_buf_len=16M "\
|
||||
"consoleblank=0 tsc=reliable xapic_phys apic_debug"
|
||||
|
||||
#define VM0_CONFIG_PCI_PTDEV_NUM 3U
|
||||
#define VM1_CONFIG_PCI_PTDEV_NUM 3U
|
||||
|
||||
extern struct acrn_vm_pci_ptdev_config vm0_pci_ptdevs[VM0_CONFIG_PCI_PTDEV_NUM];
|
||||
extern struct acrn_vm_pci_ptdev_config vm1_pci_ptdevs[VM1_CONFIG_PCI_PTDEV_NUM];
|
||||
|
||||
#endif /* PARTITION_CONFIG_H */
|
|
@ -11,11 +11,7 @@
|
|||
#include <page.h>
|
||||
#include <logmsg.h>
|
||||
#include <cat.h>
|
||||
#ifndef CONFIG_PARTITION_MODE
|
||||
#include <vm_configurations.h>
|
||||
#else
|
||||
#include <partition_config.h>
|
||||
#endif
|
||||
|
||||
#define INIT_VM_CONFIG(idx) \
|
||||
{ \
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include <vm_config.h>
|
||||
#include <vm_configurations.h>
|
||||
#include <pci_devices.h>
|
||||
|
||||
struct acrn_vm_pci_ptdev_config vm0_pci_ptdevs[VM0_CONFIG_PCI_PTDEV_NUM] = {
|
||||
{
|
||||
.vbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x00U},
|
||||
HOST_BRIDGE
|
||||
},
|
||||
{
|
||||
.vbdf.bits = {.b = 0x00U, .d = 0x01U, .f = 0x00U},
|
||||
STORAGE_CONTROLLER_0
|
||||
},
|
||||
{
|
||||
.vbdf.bits = {.b = 0x00U, .d = 0x02U, .f = 0x00U},
|
||||
ETHERNET_CONTROLLER_0
|
||||
},
|
||||
};
|
||||
|
||||
struct acrn_vm_pci_ptdev_config vm1_pci_ptdevs[VM1_CONFIG_PCI_PTDEV_NUM] = {
|
||||
{
|
||||
.vbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x00U},
|
||||
HOST_BRIDGE
|
||||
},
|
||||
{
|
||||
.vbdf.bits = {.b = 0x00U, .d = 0x01U, .f = 0x00U},
|
||||
STORAGE_CONTROLLER_1
|
||||
},
|
||||
{
|
||||
.vbdf.bits = {.b = 0x00U, .d = 0x02U, .f = 0x00U},
|
||||
ETHERNET_CONTROLLER_1
|
||||
},
|
||||
};
|
|
@ -0,0 +1,69 @@
|
|||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef VM_CONFIGURATIONS_H
|
||||
#define VM_CONFIGURATIONS_H
|
||||
|
||||
#include <pci_devices.h>
|
||||
|
||||
/* The VM CONFIGs like:
|
||||
* VMX_CONFIG_PCPU_BITMAP
|
||||
* VMX_CONFIG_MEM_START_HPA
|
||||
* VMX_CONFIG_MEM_SIZE
|
||||
* VMX_CONFIG_OS_BOOTARG_ROOT
|
||||
* VMX_CONFIG_OS_BOOTARG_MAX_CPUS
|
||||
* VMX_CONFIG_OS_BOOTARG_CONSOLE
|
||||
* might be different on your board, please modify them per your needs.
|
||||
*/
|
||||
|
||||
#define VM0_CONFIGURED
|
||||
|
||||
#define VM0_CONFIG_NAME "ACRN PRE-LAUNCHED VM0"
|
||||
#define VM0_CONFIG_TYPE PRE_LAUNCHED_VM
|
||||
#define VM0_CONFIG_PCPU_BITMAP (PLUG_CPU(0) | PLUG_CPU(2))
|
||||
#define VM0_CONFIG_FLAGS GUEST_FLAG_IO_COMPLETION_POLLING
|
||||
#define VM0_CONFIG_MEM_START_HPA 0x100000000UL
|
||||
#define VM0_CONFIG_MEM_SIZE 0x20000000UL
|
||||
|
||||
#define VM0_CONFIG_OS_NAME "ClearLinux"
|
||||
#define VM0_CONFIG_OS_BOOTARG_ROOT "root=/dev/sda3 "
|
||||
#define VM0_CONFIG_OS_BOOTARG_MAX_CPUS "max_cpus=2 "
|
||||
#define VM0_CONFIG_OS_BOOTARG_CONSOLE "console=ttyS2 "
|
||||
#define VM0_CONFIG_OS_BOOTARGS VM0_CONFIG_OS_BOOTARG_CONSOLE \
|
||||
VM0_CONFIG_OS_BOOTARG_ROOT \
|
||||
VM0_CONFIG_OS_BOOTARG_MAX_CPUS \
|
||||
"rw rootwait noxsave nohpet console=hvc0 \
|
||||
no_timer_check ignore_loglevel log_buf_len=16M \
|
||||
consoleblank=0 tsc=reliable xapic_phys"
|
||||
|
||||
#define VM1_CONFIGURED
|
||||
|
||||
#define VM1_CONFIG_NAME "ACRN PRE-LAUNCHED VM1"
|
||||
#define VM1_CONFIG_TYPE PRE_LAUNCHED_VM
|
||||
#define VM1_CONFIG_PCPU_BITMAP (PLUG_CPU(1) | PLUG_CPU(3))
|
||||
#define VM1_CONFIG_FLAGS GUEST_FLAG_IO_COMPLETION_POLLING
|
||||
#define VM1_CONFIG_MEM_START_HPA 0x120000000UL
|
||||
#define VM1_CONFIG_MEM_SIZE 0x20000000UL
|
||||
|
||||
#define VM1_CONFIG_OS_NAME "ClearLinux"
|
||||
#define VM1_CONFIG_OS_BOOTARG_ROOT "root=/dev/sda3 "
|
||||
#define VM1_CONFIG_OS_BOOTARG_MAX_CPUS "max_cpus=2 "
|
||||
#define VM1_CONFIG_OS_BOOTARG_CONSOLE "console=ttyS2 "
|
||||
#define VM1_CONFIG_OS_BOOTARGS VM1_CONFIG_OS_BOOTARG_CONSOLE \
|
||||
VM1_CONFIG_OS_BOOTARG_ROOT \
|
||||
VM1_CONFIG_OS_BOOTARG_MAX_CPUS \
|
||||
"rw rootwait noxsave nohpet console=hvc0 \
|
||||
no_timer_check ignore_loglevel log_buf_len=16M \
|
||||
consoleblank=0 tsc=reliable xapic_phys"
|
||||
|
||||
|
||||
#define VM0_CONFIG_PCI_PTDEV_NUM 3U
|
||||
extern struct acrn_vm_pci_ptdev_config vm0_pci_ptdevs[VM0_CONFIG_PCI_PTDEV_NUM];
|
||||
|
||||
#define VM1_CONFIG_PCI_PTDEV_NUM 3U
|
||||
extern struct acrn_vm_pci_ptdev_config vm1_pci_ptdevs[VM0_CONFIG_PCI_PTDEV_NUM];
|
||||
|
||||
#endif /* VM_CONFIGURATIONS_H */
|
Loading…
Reference in New Issue