acrn-hypervisor/devicemodel
Zhao Yakui eb9a58c70e ACRN:DM: Set the desired state to inject PCI legacy intx
When the virtio-XXX pci devices fall back to legacy PCI intx,
the pci_irq_assert is called to inject the interrupt and then
the pci_irq_deassert is used to mark the completion of PCI interrupt.
Currently the HV vIOAPIC uses the pin_state for the interrupt injection
of legacy PCI intx. In such case it will fail to inject the PCI legacy
intx and the guest system fails to be booted when adding the boot option
of "pci=nomsi".

PCI legacy INTx usually use active low level trigger mode as it is Open-Drain
state and allows multitple interrupt signals to share a single line.
https://wiki.osdev.org/PCI_Local_Bus_Signals
In such case DM needs to set the correct state for the PCI device so that the
HV vIOAPIC can help to inject the PCI legacy intx.

BTW: When the MSI/MSIX is used for PCI device, it uses another mechanism
to inject the interrupt. It is harmless to configure the initial state.

Tracked-On: #7124
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
2022-02-21 15:34:01 +08:00
..
arch/x86 ACRN: misc: Unify terminology for sos/uos rin macro 2021-11-02 10:00:55 +08:00
bios OVMF release v2.7 2021-11-02 15:11:42 +08:00
core dm: fix mevent mutex deadlock issue 2022-02-21 14:23:03 +08:00
hw ACRN:DM: Set the desired state to inject PCI legacy intx 2022-02-21 15:34:01 +08:00
include dm: add checks of ioctl return value for ACRN userspace 2022-02-21 09:25:50 +08:00
lib dm: Fix some issues from string operations 2018-12-25 18:40:04 +08:00
log dm: fix memory leakage issue in disk_logger.c 2022-02-10 15:26:22 +08:00
MAINTAINERS
Makefile DM: add new monitor module 2022-02-18 18:33:52 +08:00
README.rst doc: terminology cleanup in DM readme 2021-11-24 06:29:25 -08:00
samples acrn-config: Reorg config tool folder 2021-01-27 11:08:28 +08:00

README.rst

ACRN Device Model
#################

Introduction
============

The ACRN Device Model provides **device sharing** capabilities between the
Service VM and post-launched User VMs. It is a component that is used in
conjunction with the `ACRN Hypervisor`_ and is installed within the Service
VM.

.. _`ACRN Hypervisor`: https://github.com/projectacrn/acrn-hypervisor