qdev: Avoid type assertion in qdev_build_hotpluggable_device_list()
[qemu.git] / docs / specs / acpi_mem_hotplug.txt
blob12909940ccded731e96b283d8fb5a65c40eb7be4
1 QEMU<->ACPI BIOS memory hotplug interface
2 --------------------------------------
4 ACPI BIOS GPE.3 handler is dedicated for notifying OS about memory hot-add
5 events.
7 Memory hot-plug interface (IO port 0xa00-0xa17, 1-4 byte access):
8 ---------------------------------------------------------------
9 0xa00:
10   read access:
11       [0x0-0x3] Lo part of memory device phys address
12       [0x4-0x7] Hi part of memory device phys address
13       [0x8-0xb] Lo part of memory device size in bytes
14       [0xc-0xf] Hi part of memory device size in bytes
15       [0x10-0x13] Memory device proximity domain
16       [0x14] Memory device status fields
17           bits:
18               0: Device is enabled and may be used by guest
19               1: Device insert event, used to distinguish device for which
20                  no device check event to OSPM was issued.
21                  It's valid only when bit 1 is set.
22               2-7: reserved and should be ignored by OSPM
23       [0x15-0x17] reserved
25   write access:
26       [0x0-0x3] Memory device slot selector, selects active memory device.
27                 All following accesses to other registers in 0xa00-0xa17
28                 region will read/store data from/to selected memory device.
29       [0x4-0x7] OST event code reported by OSPM
30       [0x8-0xb] OST status code reported by OSPM
31       [0xc-0x13] reserved, writes into it are ignored
32       [0x14] Memory device control fields
33           bits:
34               0: reserved, OSPM must clear it before writing to register
35               1: if set to 1 clears device insert event, set by OSPM
36                  after it has emitted device check event for the
37                  selected memory device
38               2-7: reserved, OSPM must clear them before writing to register
40 Selecting memory device slot beyond present range has no effect on platform:
41    - write accesses to memory hot-plug registers not documented above are
42      ignored
43    - read accesses to memory hot-plug registers not documented above return
44      all bits set to 1.