acrn-hypervisor/hypervisor
Wu Zhou 262a48f346 dm: vm_event: add support for RTC change event
When a guest OS performs an RTC change action, we wish this event be
captured by developers, and then they can decide what to do with it.
(e.g., whether to change physical RTC)

There are some facts that makes RTC change event a bit complicated:
- There are 7 RTC date/time regs (year, month…). They can only be
  updated one by one.
- RTC time is not reliable before date/time update is finished.
- Guests can update RTC date/time regs in any order.
- Guests may update RTC date/time regs during either RTC halted or not
  halted.

A single date/time update event is not reliable. We have to wait for
the guest to finish the update process. So the DM's event handler
sets up a timer, and wait for some time (1 second). If no more change
happens befor the timer expires, we can conclude that the RTC
change has been done. Then the rtc change event is emitted.

This logic of event handler can be used to process HV vrtc time change
event too.

Tracked-On: #8547
Signed-off-by: Wu Zhou <wu.zhou@intel.com>
Reviewed-by: Jian Jun Chen <jian.jun.chen@intel.com>
2024-02-01 17:01:31 +08:00
..
acpi_parser Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
arch/x86 hv: vm_event: create vm_event support 2024-02-01 17:01:31 +08:00
boot hv: tsc: calibrate TSC by HPET 2022-07-17 16:48:47 +08:00
bsp/ld HV: fix MISRA violation of _ld_ram_xxx 2021-11-26 16:45:17 +08:00
common hv: vm_event: create vm_event support 2024-02-01 17:01:31 +08:00
debug hv: support for pci uart with high mmio 2022-11-21 16:50:05 +08:00
dm hv: support multi function ivshmem device 2023-09-27 16:46:20 +08:00
hw hv: pci: use mmio_read/write directly 2022-10-26 01:02:20 +08:00
include dm: vm_event: add support for RTC change event 2024-02-01 17:01:31 +08:00
lib Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
quirks Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
release hv: fix compile issue in release mode 2022-10-21 14:24:02 +08:00
scripts Makefile: do not try to figure out BOARD and SCENARIO for cleanup 2022-10-26 14:09:44 +08:00
Makefile hv: vm_event: create vm_event support 2024-02-01 17:01:31 +08:00
README.rst doc: fix utf-8 punctuation, branding, spelling 2019-03-14 09:13:58 -07:00

ACRN Hypervisor
###############

The open source `Project ACRN`_ defines a device hypervisor reference stack and
an architecture for running multiple software subsystems, managed securely, on
a consolidated system by means of a virtual machine manager. It also defines a
reference framework implementation for virtual device emulation, called the
"ACRN Device Model".

The ACRN Hypervisor is a Type 1 reference hypervisor stack, running directly on
the bare-metal hardware, and is suitable for a variety of IoT and embedded
device solutions. The ACRN hypervisor addresses the gap that currently exists
between datacenter hypervisors, and hard partitioning hypervisors. The ACRN
hypervisor architecture partitions the system into different functional
domains, with carefully selected guest OS sharing optimizations for IoT and
embedded devices.

You can find out more about Project ACRN on the `Project ACRN documentation`_
website.

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