mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2026-01-05 15:45:05 +00:00
HV: pci-vuart: pci based vuart emulation
Add emulation for pci based vuart device mcs9900 at hv land.
add struct pci_vdev_ops vuart_pci_ops, the vdev callbalks for vuart.
How to use
In misc/vm_configs/scenarios/<SCENARIO>/<BOARD>/pci_dev.c, add pci
vuart config to vm_pci_devs[] array. For example:
struct acrn_vm_pci_dev_config vm0_pci_devs[] = {
/* console vuart setting*/
{
.emu_type = PCI_DEV_TYPE_HVEMUL,
.vbdf.bits = {.b = 0x00U, .d = 0x04U, .f = 0x00U},
.vdev_ops = &vmcs_ops,
.vbar_base[0] = 0x80001000, /* mmio bar */
.vbar_base[1] = 0x80002000, /* msix bar */
.vuart_idx = 0,
},
/* communication vuart setting */
{
.emu_type = PCI_DEV_TYPE_HVEMUL,
.vbdf.bits = {.b = 0x00U, .d = 0x05U, .f = 0x00U},
.vdev_ops = &vmcs_ops,
.vbar_base[0] = 0x80003000,
.vbar_base[1] = 0x80004000,
.vuart_idx = 1,
.t_vuart.vm_id = 1U,
.t_vuart.vuart_id = 1U,
},
}
Tracked-On: #5394
Signed-off-by: Tao Yuhong <yuhong.tao@intel.com>
Reviewed-by: Wang, Yu1 <yu1.wang@intel.com>
Acked-by: Eddie Dong <eddie.dong@Intel.com>
This commit is contained in:
15
hypervisor/include/dm/vmcs9900.h
Normal file
15
hypervisor/include/dm/vmcs9900.h
Normal file
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright (C) 2020 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef VMCS9900_H
|
||||
#define VMCS9900_H
|
||||
|
||||
#define MCS9900_VENDOR 0x9710U
|
||||
#define MCS9900_DEV 0x9900U
|
||||
|
||||
extern const struct pci_vdev_ops vmcs9900_ops;
|
||||
|
||||
#endif
|
||||
@@ -74,6 +74,7 @@
|
||||
#define PCIR_STATUS 0x06U
|
||||
#define PCIM_STATUS_CAPPRESENT 0x0010U
|
||||
#define PCIR_REVID 0x08U
|
||||
#define PCIR_CLASS_CODE 0x09U
|
||||
#define PCIR_SUBCLASS 0x0AU
|
||||
#define PCIR_CLASS 0x0BU
|
||||
#define PCIR_HDRTYPE 0x0EU
|
||||
@@ -91,6 +92,7 @@
|
||||
#define PCIM_BAR_MEM_64 0x04U
|
||||
#define PCIM_BAR_MEM_BASE 0xFFFFFFF0U
|
||||
#define PCIV_SUB_VENDOR_ID 0x2CU
|
||||
#define PCIV_SUB_SYSTEM_ID 0x2EU
|
||||
#define PCIR_CAP_PTR 0x34U
|
||||
#define PCIR_CAP_PTR_CARDBUS 0x14U
|
||||
#define PCI_BASE_ADDRESS_MEM_MASK (~0x0fUL)
|
||||
@@ -98,6 +100,7 @@
|
||||
#define PCIR_INTERRUPT_LINE 0x3cU
|
||||
#define PCIR_INTERRUPT_PIN 0x3dU
|
||||
|
||||
#define PCIC_SIMPLECOMM 0x07U
|
||||
/* config registers for header type 1 (PCI-to-PCI bridge) devices */
|
||||
#define PCIR_PRIBUS_1 0x18U
|
||||
#define PCIR_SECBUS_1 0x19U
|
||||
|
||||
Reference in New Issue
Block a user