Merge tag 'pull-target-arm-20220812' of https://git.linaro.org/people/pmaydell/qemu...
[qemu.git] / docs / specs / acpi_pci_hotplug.rst
1 QEMU<->ACPI BIOS PCI hotplug interface
2 ======================================
3
4 QEMU supports PCI hotplug via ACPI, for PCI bus 0. This document
5 describes the interface between QEMU and the ACPI BIOS.
6
7 ACPI GPE block (IO ports 0xafe0-0xafe3, byte access)
8 ----------------------------------------------------
9
10 Generic ACPI GPE block. Bit 1 (GPE.1) used to notify PCI hotplug/eject
11 event to ACPI BIOS, via SCI interrupt.
12
13 PCI slot injection notification pending (IO port 0xae00-0xae03, 4-byte access)
14 ------------------------------------------------------------------------------
15
16 Slot injection notification pending. One bit per slot.
17
18 Read by ACPI BIOS GPE.1 handler to notify OS of injection
19 events.  Read-only.
20
21 PCI slot removal notification (IO port 0xae04-0xae07, 4-byte access)
22 --------------------------------------------------------------------
23
24 Slot removal notification pending. One bit per slot.
25
26 Read by ACPI BIOS GPE.1 handler to notify OS of removal
27 events.  Read-only.
28
29 PCI device eject (IO port 0xae08-0xae0b, 4-byte access)
30 -------------------------------------------------------
31
32 Write: Used by ACPI BIOS _EJ0 method to request device removal.
33 One bit per slot.
34
35 Read: Hotplug features register.  Used by platform to identify features
36 available.  Current base feature set (no bits set):
37
38 - Read-only "up" register @0xae00, 4-byte access, bit per slot
39 - Read-only "down" register @0xae04, 4-byte access, bit per slot
40 - Read/write "eject" register @0xae08, 4-byte access,
41   write: bit per slot eject, read: hotplug feature set
42 - Read-only hotplug capable register @0xae0c, 4-byte access, bit per slot
43
44 PCI removability status (IO port 0xae0c-0xae0f, 4-byte access)
45 --------------------------------------------------------------
46
47 Used by ACPI BIOS _RMV method to indicate removability status to OS. One
48 bit per slot.  Read-only.