mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-07-31 15:30:56 +00:00
HV: add vm config files for partition mode
Add VM configure files for Intel apl-mrb and dnv-cb2 platforms. The board specific config header is named as partition_config.h and the PCI passthrough device list is named as pt_dev.c under hypervisor/arch/x86/configs/$CONFIG_BOARD folder. 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
f4adb109de
commit
9e33178998
@ -146,6 +146,7 @@ C_SRCS += arch/x86/configs/sharing_config.c
|
|||||||
else ifeq ($(CONFIG_PARTITION_MODE),y)
|
else ifeq ($(CONFIG_PARTITION_MODE),y)
|
||||||
C_SRCS += arch/x86/configs/partition_config.c
|
C_SRCS += arch/x86/configs/partition_config.c
|
||||||
C_SRCS += arch/x86/configs/$(CONFIG_BOARD)/ve820.c
|
C_SRCS += arch/x86/configs/$(CONFIG_BOARD)/ve820.c
|
||||||
|
C_SRCS += arch/x86/configs/$(CONFIG_BOARD)/pt_dev.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
C_SRCS += boot/acpi.c
|
C_SRCS += boot/acpi.c
|
||||||
|
42
hypervisor/arch/x86/configs/apl-mrb/partition_config.h
Normal file
42
hypervisor/arch/x86/configs/apl-mrb/partition_config.h
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PARTITION_CONFIG_H
|
||||||
|
#define PARTITION_CONFIG_H
|
||||||
|
|
||||||
|
#define PRE_LAUNCH_VM_NUM 2
|
||||||
|
|
||||||
|
#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 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 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"
|
||||||
|
|
||||||
|
extern struct vpci_vdev_array vpci_vdev_array0, vpci_vdev_array1;
|
||||||
|
|
||||||
|
#endif /* PARTITION_CONFIG_H */
|
44
hypervisor/arch/x86/configs/apl-mrb/pt_dev.c
Normal file
44
hypervisor/arch/x86/configs/apl-mrb/pt_dev.c
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <hypervisor.h>
|
||||||
|
|
||||||
|
struct vpci_vdev_array vpci_vdev_array0 = {
|
||||||
|
.num_pci_vdev = 2,
|
||||||
|
|
||||||
|
.vpci_vdev_list = {
|
||||||
|
{/*vdev 0: hostbridge */
|
||||||
|
.vbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U},
|
||||||
|
.pbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U},
|
||||||
|
},
|
||||||
|
|
||||||
|
{/*vdev 1: SATA controller*/
|
||||||
|
.vbdf.bits = {.b = 0x00U, .d = 0x01U, .f = 0x0U},
|
||||||
|
.pbdf.bits = {.b = 0x00U, .d = 0x12U, .f = 0x0U},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct vpci_vdev_array vpci_vdev_array1 = {
|
||||||
|
.num_pci_vdev = 3,
|
||||||
|
|
||||||
|
.vpci_vdev_list = {
|
||||||
|
{/*vdev 0: hostbridge*/
|
||||||
|
.vbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U},
|
||||||
|
.pbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U},
|
||||||
|
},
|
||||||
|
|
||||||
|
{/*vdev 1: USB controller*/
|
||||||
|
.vbdf.bits = {.b = 0x00U, .d = 0x01U, .f = 0x0U},
|
||||||
|
.pbdf.bits = {.b = 0x00U, .d = 0x15U, .f = 0x0U},
|
||||||
|
},
|
||||||
|
|
||||||
|
{/*vdev 2: Ethernet*/
|
||||||
|
.vbdf.bits = {.b = 0x00U, .d = 0x02U, .f = 0x0U},
|
||||||
|
.pbdf.bits = {.b = 0x02U, .d = 0x00U, .f = 0x0U},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
42
hypervisor/arch/x86/configs/dnv-cb2/partition_config.h
Normal file
42
hypervisor/arch/x86/configs/dnv-cb2/partition_config.h
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PARTITION_CONFIG_H
|
||||||
|
#define PARTITION_CONFIG_H
|
||||||
|
|
||||||
|
#define PRE_LAUNCH_VM_NUM 2
|
||||||
|
|
||||||
|
#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 LAPIC_PASSTHROUGH | IO_COMPLETION_POLLING
|
||||||
|
#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 LAPIC_PASSTHROUGH | IO_COMPLETION_POLLING
|
||||||
|
#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"
|
||||||
|
|
||||||
|
extern struct vpci_vdev_array vpci_vdev_array0, vpci_vdev_array1;
|
||||||
|
|
||||||
|
#endif /* PARTITION_CONFIG_H */
|
49
hypervisor/arch/x86/configs/dnv-cb2/pt_dev.c
Normal file
49
hypervisor/arch/x86/configs/dnv-cb2/pt_dev.c
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <hypervisor.h>
|
||||||
|
|
||||||
|
struct vpci_vdev_array vpci_vdev_array0 = {
|
||||||
|
.num_pci_vdev = 3,
|
||||||
|
|
||||||
|
.vpci_vdev_list = {
|
||||||
|
{/*vdev 0: hostbridge */
|
||||||
|
.vbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U},
|
||||||
|
.pbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U},
|
||||||
|
},
|
||||||
|
|
||||||
|
{/*vdev 1: Ethernet*/
|
||||||
|
.vbdf.bits = {.b = 0x00U, .d = 0x01U, .f = 0x0U},
|
||||||
|
.pbdf.bits = {.b = 0x03U, .d = 0x00U, .f = 0x1U},
|
||||||
|
},
|
||||||
|
|
||||||
|
{/*vdev 2: USB*/
|
||||||
|
.vbdf.bits = {.b = 0x00U, .d = 0x02U, .f = 0x0U},
|
||||||
|
.pbdf.bits = {.b = 0x00U, .d = 0x15U, .f = 0x0U},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct vpci_vdev_array vpci_vdev_array1 = {
|
||||||
|
.num_pci_vdev = 3,
|
||||||
|
|
||||||
|
.vpci_vdev_list = {
|
||||||
|
{/*vdev 0: hostbridge*/
|
||||||
|
.vbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U},
|
||||||
|
.pbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x0U},
|
||||||
|
},
|
||||||
|
|
||||||
|
{/*vdev 1: SATA controller*/
|
||||||
|
.vbdf.bits = {.b = 0x00U, .d = 0x05U, .f = 0x0U},
|
||||||
|
.pbdf.bits = {.b = 0x00U, .d = 0x14U, .f = 0x0U},
|
||||||
|
},
|
||||||
|
|
||||||
|
{/*vdev 2: Ethernet*/
|
||||||
|
.vbdf.bits = {.b = 0x00U, .d = 0x06U, .f = 0x0U},
|
||||||
|
.pbdf.bits = {.b = 0x03U, .d = 0x00U, .f = 0x0U},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
@ -1,10 +1,44 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 Intel Corporation. All rights reserved.
|
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <hypervisor.h>
|
#include <hypervisor.h>
|
||||||
|
#include <partition_config.h>
|
||||||
|
|
||||||
|
#define INIT_VM_CONFIG(idx) \
|
||||||
|
{ \
|
||||||
|
.type = VM##idx##_CONFIG_TYPE, \
|
||||||
|
.name = VM##idx##_CONFIG_NAME, \
|
||||||
|
.pcpu_bitmap = VM##idx##_CONFIG_PCPU_BITMAP, \
|
||||||
|
.guest_flags = VM##idx##_CONFIG_FLAGS, \
|
||||||
|
.memory = { \
|
||||||
|
.start_hpa = VM##idx##_CONFIG_MEM_START_HPA, \
|
||||||
|
.size = VM##idx##_CONFIG_MEM_SIZE, \
|
||||||
|
}, \
|
||||||
|
.os_config = { \
|
||||||
|
.name = VM##idx##_CONFIG_OS_NAME, \
|
||||||
|
.bootargs = VM##idx##_CONFIG_OS_BOOTARGS, \
|
||||||
|
}, \
|
||||||
|
.vm_vuart = true, \
|
||||||
|
.vpci_vdev_array = &vpci_vdev_array##idx, \
|
||||||
|
},
|
||||||
|
|
||||||
struct acrn_vm_config vm_configs[CONFIG_MAX_VM_NUM] __aligned(PAGE_SIZE) = {
|
struct acrn_vm_config vm_configs[CONFIG_MAX_VM_NUM] __aligned(PAGE_SIZE) = {
|
||||||
|
#ifdef VM0_CONFIGURED
|
||||||
|
INIT_VM_CONFIG(0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef VM1_CONFIGURED
|
||||||
|
INIT_VM_CONFIG(1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef VM2_CONFIGURED
|
||||||
|
INIT_VM_CONFIG(2)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef VM3_CONFIGURED
|
||||||
|
INIT_VM_CONFIG(3)
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user