acrn-hypervisor/hypervisor
Jason Chen CJ 3b88d3c2ac vioapic: add pin_state bitmap to set irq
a guest may use per-cpu vector allocation mechanism which may lead to
same vector on different vcpu for different vioapic pins.
when we broadcast EOI from vlapic to vioapic, it could trigger
ptdev_intx_ack for incorrect vioapic pin which will lead to incorrect
vioapic irq deassert.

old implementation is recording assert & deassert by acnt, like:
- assert -> acnt++
- deassert -> acnt--
which means an incorrect deassert may descrease acnt from 0 to -1, it leads
to error.

this patch change the recording method for a pin assert/deassert, it
just use pin_state bit set/clear to indicate line state:
- high -> pin_state bitmap set
- low -> pin_state bitmap clear
and the irq assert will be triggered based on polarity setting during line
state changing.

it can avoid the failure of incorrect deassert on old implementation, and for
ptdev sharing irq, the dev hardware could re-trigger interrupt after deassert.
but for emulated device, there is no mechanism to re-trigger interrupt if
there is irq sharing - for DM, we already has constraint to restrict vGSI
sharing, so there is no problem of it.

Tracked-On: #1269
Signed-off-by: Jason Chen CJ <jason.cj.chen@intel.com>
2018-09-30 15:24:59 +08:00
..
arch/x86 hv: fix 'User name starts with underscore' 2018-09-30 14:45:37 +08:00
boot hv: fix 'User name starts with underscore' 2018-09-30 14:45:37 +08:00
bsp hv: fix 'User name starts with underscore' 2018-09-30 14:45:37 +08:00
common hv:clear up the usage of printf data struct 2018-09-28 16:40:07 +08:00
debug hv:clear up the usage of printf data struct 2018-09-28 16:40:07 +08:00
dm vioapic: add pin_state bitmap to set irq 2018-09-30 15:24:59 +08:00
include vioapic: add pin_state bitmap to set irq 2018-09-30 15:24:59 +08:00
lib hv:clear up the usage of printf data struct 2018-09-28 16:40:07 +08:00
partition HV: Updated vm description table for partition mode 2018-09-03 11:26:30 +08:00
scripts/kconfig HV: make: rename minimalconfig to savedefconfig 2018-06-15 15:50:09 +08:00
Kconfig HV: config: add Kconfig and defconfigs for sbl & uefi 2018-06-08 17:21:13 +08:00
MAINTAINERS
Makefile hv: Enable the compiler warning as error for HV 2018-09-27 11:22:44 +08:00
README.rst

Embedded-Hypervisor
###################

This open source embedded hypervisor defines a software architecture for
running multiple software subsystems managed securely on a consolidated
system (by means of a virtual machine manager), and defines a reference
framework Device Model implementation for devices emulation

This embedded hypervisor is type-1 reference hypervisor, running
directly on the system hardware. It can be used for building software
defined cockpit (SDC) or In-Vehicle Experience (IVE) solutions running
on Intel Architecture Apollo Lake platforms. As a reference
implementation, it provides the basis for embedded hypervisor vendors to
build solutions with an open source reference I/O mediation solution,
and provides auto makers a reference software stack for SDC usage.

This embedded hypervisor is able to support both Linux* and Android* as
a Guest OS, managed by the hypervisor, where applications can run.

This embedded hypervisor is a partitioning hypervisor reference stack,
also suitable for non-automotive IoT & embedded device solutions. It
will be addressing the gap that currently exists between datacenter
hypervisors, hard partitioning hypervisors, and select industrial
applications.  Extending the scope of this open source embedded
hypervisor relies on the involvement of community developers like you!