[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 10/19] docs/specs: Add ACPI GED documentation
From: |
Michael S. Tsirkin |
Subject: |
[PULL 10/19] docs/specs: Add ACPI GED documentation |
Date: |
Sat, 5 Oct 2019 17:59:27 -0400 |
From: Shameer Kolothum <address@hidden>
Documents basic concepts of ACPI Generic Event device(GED)
and interface between QEMU and the ACPI BIOS.
Signed-off-by: Shameer Kolothum <address@hidden>
Reviewed-by: Eric Auger <address@hidden>
Message-Id: <address@hidden>
Acked-by: Peter Maydell <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
---
docs/specs/acpi_hw_reduced_hotplug.rst | 70 ++++++++++++++++++++++++++
docs/specs/index.rst | 1 +
2 files changed, 71 insertions(+)
create mode 100644 docs/specs/acpi_hw_reduced_hotplug.rst
diff --git a/docs/specs/acpi_hw_reduced_hotplug.rst
b/docs/specs/acpi_hw_reduced_hotplug.rst
new file mode 100644
index 0000000000..911a98255b
--- /dev/null
+++ b/docs/specs/acpi_hw_reduced_hotplug.rst
@@ -0,0 +1,70 @@
+==================================================
+QEMU and ACPI BIOS Generic Event Device interface
+==================================================
+
+The ACPI *Generic Event Device* (GED) is a HW reduced platform
+specific device introduced in ACPI v6.1 that handles all platform
+events, including the hotplug ones. GED is modelled as a device
+in the namespace with a _HID defined to be ACPI0013. This document
+describes the interface between QEMU and the ACPI BIOS.
+
+GED allows HW reduced platforms to handle interrupts in ACPI ASL
+statements. It follows a very similar approach to the _EVT method
+from GPIO events. All interrupts are listed in _CRS and the handler
+is written in _EVT method. However, the QEMU implementation uses a
+single interrupt for the GED device, relying on an IO memory region
+to communicate the type of device affected by the interrupt. This way,
+we can support up to 32 events with a unique interrupt.
+
+**Here is an example,**
+
+::
+
+ Device (\_SB.GED)
+ {
+ Name (_HID, "ACPI0013")
+ Name (_UID, Zero)
+ Name (_CRS, ResourceTemplate ()
+ {
+ Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
+ {
+ 0x00000029,
+ }
+ })
+ OperationRegion (EREG, SystemMemory, 0x09080000, 0x04)
+ Field (EREG, DWordAcc, NoLock, WriteAsZeros)
+ {
+ ESEL, 32
+ }
+ Method (_EVT, 1, Serialized)
+ {
+ Local0 = ESEL // ESEL = IO memory region which specifies the
+ // device type.
+ If (((Local0 & One) == One))
+ {
+ MethodEvent1()
+ }
+ If ((Local0 & 0x2) == 0x2)
+ {
+ MethodEvent2()
+ }
+ ...
+ }
+ }
+
+GED IO interface (4 byte access)
+--------------------------------
+**read access:**
+
+::
+
+ [0x0-0x3] Event selector bit field (32 bit) set by QEMU.
+
+ bits:
+ 0: Memory hotplug event
+ 1: System power down event
+ 2-31: Reserved
+
+**write_access:**
+
+Nothing is expected to be written into GED IO memory
diff --git a/docs/specs/index.rst b/docs/specs/index.rst
index 40adb97c5e..984ba44029 100644
--- a/docs/specs/index.rst
+++ b/docs/specs/index.rst
@@ -12,3 +12,4 @@ Contents:
ppc-xive
ppc-spapr-xive
+ acpi_hw_reduced_hotplug
--
MST
- [PULL 00/19] virtio, vhost, acpi: features, fixes, tests, Michael S. Tsirkin, 2019/10/05
- [PULL 01/19] vhost-user: save features if the char dev is closed, Michael S. Tsirkin, 2019/10/05
- [PULL 02/19] hw/acpi: Make ACPI IO address space configurable, Michael S. Tsirkin, 2019/10/05
- [PULL 03/19] hw/acpi: Do not create memory hotplug method when handler is not defined, Michael S. Tsirkin, 2019/10/05
- [PULL 04/19] hw/acpi: Add ACPI Generic Event Device Support, Michael S. Tsirkin, 2019/10/05
- [PULL 05/19] hw/arm/virt: Add memory hotplug framework, Michael S. Tsirkin, 2019/10/05
- [PULL 06/19] hw/arm/virt: Enable device memory cold/hot plug with ACPI boot, Michael S. Tsirkin, 2019/10/05
- [PULL 07/19] hw/arm/virt-acpi-build: Add PC-DIMM in SRAT, Michael S. Tsirkin, 2019/10/05
- [PULL 08/19] hw/arm: Factor out powerdown notifier from GPIO, Michael S. Tsirkin, 2019/10/05
- [PULL 09/19] hw/arm: Use GED for system_powerdown event, Michael S. Tsirkin, 2019/10/05
- [PULL 10/19] docs/specs: Add ACPI GED documentation,
Michael S. Tsirkin <=
- [PULL 11/19] tests: Update ACPI tables list for upcoming arm/virt tests, Michael S. Tsirkin, 2019/10/05
- [PULL 12/19] tests/acpi: add empty files, Michael S. Tsirkin, 2019/10/05
- [PULL 13/19] tests: allow empty expected files, Michael S. Tsirkin, 2019/10/05
- [PULL 14/19] tests: Add bios tests to arm/virt, Michael S. Tsirkin, 2019/10/05
- [PULL 15/19] tests: document how to update acpi tables, Michael S. Tsirkin, 2019/10/05
- [PULL 16/19] tests/acpi: add expected tables for arm/virt, Michael S. Tsirkin, 2019/10/05
- [PULL 17/19] virtio: Add virtio_fs linux headers, Michael S. Tsirkin, 2019/10/05
- [PULL 18/19] virtio: add vhost-user-fs base device, Michael S. Tsirkin, 2019/10/05