HV: refine pt_dev.c for partition mode
Use MACROs in pt_dev.c to replace straight-forward BDF numbers. The pt devices for each VM will be chosen from Board specific PCI devices list which defined in pci_devices.h; 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
46e7fa8cf2
commit
564c9dcb79
|
@ -35,7 +35,7 @@
|
|||
console=ttyS2 no_timer_check ignore_loglevel log_buf_len=16M \
|
||||
consoleblank=0 tsc=reliable xapic_phys"
|
||||
|
||||
#define VM0_CONFIG_PCI_PTDEV_NUM 2U
|
||||
#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];
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef PCI_DEVICES_H_
|
||||
#define PCI_DEVICES_H_
|
||||
|
||||
#define HOST_BRIDGE .pbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x00U}
|
||||
#define SATA_CONTROLLER .pbdf.bits = {.b = 0x00U, .d = 0x12U, .f = 0x00U}
|
||||
#define USB_CONTROLLER .pbdf.bits = {.b = 0x00U, .d = 0x15U, .f = 0x00U}
|
||||
|
||||
#define STORAGE_CONTROLLER_0 SATA_CONTROLLER
|
||||
#define STORAGE_CONTROLLER_1 USB_CONTROLLER
|
||||
|
||||
#define ETHERNET_CONTROLLER_0 .pbdf.bits = {.b = 0x02U, .d = 0x00U, .f = 0x00U}
|
||||
#define ETHERNET_CONTROLLER_1
|
||||
|
||||
#endif /* PCI_DEVICES_H_ */
|
|
@ -4,31 +4,36 @@
|
|||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include <vm.h>
|
||||
#include <vm_config.h>
|
||||
#include <partition_config.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},
|
||||
.pbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x00U},
|
||||
HOST_BRIDGE
|
||||
},
|
||||
{
|
||||
.vbdf.bits = {.b = 0x00U, .d = 0x01U, .f = 0x00U},
|
||||
.pbdf.bits = {.b = 0x00U, .d = 0x12U, .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},
|
||||
.pbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x00U},
|
||||
HOST_BRIDGE
|
||||
},
|
||||
{
|
||||
.vbdf.bits = {.b = 0x00U, .d = 0x01U, .f = 0x00U},
|
||||
.pbdf.bits = {.b = 0x00U, .d = 0x15U, .f = 0x00U},
|
||||
STORAGE_CONTROLLER_1
|
||||
},
|
||||
{
|
||||
.vbdf.bits = {.b = 0x00U, .d = 0x02U, .f = 0x00U},
|
||||
.pbdf.bits = {.b = 0x02U, .d = 0x00U, .f = 0x00U},
|
||||
ETHERNET_CONTROLLER_1
|
||||
},
|
||||
};
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef PCI_DEVICES_H_
|
||||
#define PCI_DEVICES_H_
|
||||
|
||||
#define HOST_BRIDGE .pbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x00U}
|
||||
#define SATA_CONTROLLER .pbdf.bits = {.b = 0x00U, .d = 0x14U, .f = 0x00U}
|
||||
#define USB_CONTROLLER .pbdf.bits = {.b = 0x00U, .d = 0x15U, .f = 0x00U}
|
||||
|
||||
#define STORAGE_CONTROLLER_0 SATA_CONTROLLER
|
||||
#define STORAGE_CONTROLLER_1 USB_CONTROLLER
|
||||
|
||||
#define ETHERNET_CONTROLLER_0 .pbdf.bits = {.b = 0x03U, .d = 0x00U, .f = 0x00U}
|
||||
#define ETHERNET_CONTROLLER_1 .pbdf.bits = {.b = 0x03U, .d = 0x00U, .f = 0x01U}
|
||||
|
||||
#endif /* PCI_DEVICES_H_ */
|
|
@ -4,35 +4,36 @@
|
|||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include <vm.h>
|
||||
#include <vm_config.h>
|
||||
#include <partition_config.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},
|
||||
.pbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x00U},
|
||||
HOST_BRIDGE
|
||||
},
|
||||
{
|
||||
.vbdf.bits = {.b = 0x00U, .d = 0x01U, .f = 0x00U},
|
||||
.pbdf.bits = {.b = 0x03U, .d = 0x00U, .f = 0x01U},
|
||||
STORAGE_CONTROLLER_0
|
||||
},
|
||||
{
|
||||
.vbdf.bits = {.b = 0x00U, .d = 0x02U, .f = 0x00U},
|
||||
.pbdf.bits = {.b = 0x00U, .d = 0x15U, .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},
|
||||
.pbdf.bits = {.b = 0x00U, .d = 0x00U, .f = 0x00U},
|
||||
HOST_BRIDGE
|
||||
},
|
||||
{
|
||||
.vbdf.bits = {.b = 0x00U, .d = 0x01U, .f = 0x00U},
|
||||
.pbdf.bits = {.b = 0x00U, .d = 0x14U, .f = 0x00U},
|
||||
STORAGE_CONTROLLER_1
|
||||
},
|
||||
{
|
||||
.vbdf.bits = {.b = 0x00U, .d = 0x02U, .f = 0x00U},
|
||||
.pbdf.bits = {.b = 0x03U, .d = 0x00U, .f = 0x00U},
|
||||
ETHERNET_CONTROLLER_1
|
||||
},
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue