acrn-hypervisor/devicemodel
Yuan Liu 38e8059ce9 dm: uart_core: fix uart dm cause interrupt storm issue
For Linux kernel, the UART driver will disable IER.THRE. But for Windows, it
will keep IER.THRE turn on then cause interrupt storm.

From pc16550d UART spec, INTR PIN description:

"Interrupt. This pin goes high whenever any one of the following interrupt types
has an active high condition and is enabled through the IER Receiver Error Flag;
Received Data Available timeout (FIFO Mode only); Transmitter Holding Register
Empty; and MODEM Status. The INTR signal is reset low upon the appropriate
interrupt service or a Master Reset operation."

And Interrupt Reset Control of Transmitter Holding Register Empty Interrupt
description:

"Reading the IIR Register (if source of interrupt) or Writing into
the Transmitter Holding Register"

The datasheet hasn't describe very clear if the THRE interrupt will be
re-generate after "Reading the IIR Register". We assume it will not do
that, so the THRE interrupt only generate when THR turn to empty.

This patch follows above assumption to resolve the interrupt storm cause WaaG
boot failed issue.

Tracked-On: #2713
Signed-off-by: Yuan Liu <yuan1.liu@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
2019-05-01 10:52:14 +08:00
..
arch/x86 dm: pm: mask the higher bits of parameter of smi_cmd handler 2019-04-16 15:03:04 +08:00
bios OVMF release v0.8 2019-04-01 12:39:42 +08:00
core acrn-dm: Pass vbdf and pbdf info to vm_reset_ptdev_intx_info 2019-04-29 17:04:02 +08:00
hw dm: uart_core: fix uart dm cause interrupt storm issue 2019-05-01 10:52:14 +08:00
include acrn-dm: Pass vbdf and pbdf info to vm_reset_ptdev_intx_info 2019-04-29 17:04:02 +08:00
lib dm: Fix some issues from string operations 2018-12-25 18:40:04 +08:00
samples DM USB: fix SWWDT_UNHANDLED issue 2019-04-11 13:21:30 +08:00
vmcfg dm: remove "acrn_" prefix from tap name 2019-04-09 10:59:45 +08:00
MAINTAINERS update home page information 2018-05-15 17:19:39 +08:00
Makefile Makefile: add gcc option to workaround build issue with latest gcc 2019-04-25 21:28:32 +08:00
README.rst Documentation: clean-up of isolated README.rst files 2018-11-20 11:09:53 -08:00

README.rst

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

Introduction
============
The ACRN Device Model provides **device sharing** capabilities between the
Service OS and Guest OSs. It is a component that is used in conjunction with
the `ACRN Hypervisor`_ and this is installed within the Service OS. You can
find out more about Project ACRN on the `Project ACRN documentation`_ website.

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