xref: /openbmc/qemu/qapi/acpi.json (revision 0d70c5aa1bbfb0f5099d53d6e084337a8246cc0c)
1# -*- Mode: Python -*-
2# vim: filetype=python
3#
4# This work is licensed under the terms of the GNU GPL, version 2 or later.
5# See the COPYING file in the top-level directory.
6# SPDX-License-Identifier: GPL-2.0-or-later
7
8##
9# ****
10# ACPI
11# ****
12##
13
14##
15# @AcpiTableOptions:
16#
17# Specify an ACPI table on the command line to load.
18#
19# At most one of @file and @data can be specified.  The list of files
20# specified by any one of them is loaded and concatenated in order.
21# If both are omitted, @data is implied.
22#
23# Other fields / optargs can be used to override fields of the generic
24# ACPI table header; refer to the ACPI specification 5.0, section
25# 5.2.6 System Description Table Header.  If a header field is not
26# overridden, then the corresponding value from the concatenated blob
27# is used (in case of @file), or it is filled in with a hard-coded
28# value (in case of @data).
29#
30# String fields are copied into the matching ACPI member from lowest
31# address upwards, and silently truncated / NUL-padded to length.
32#
33# @sig: table signature / identifier (4 bytes)
34#
35# @rev: table revision number (dependent on signature, 1 byte)
36#
37# @oem_id: OEM identifier (6 bytes)
38#
39# @oem_table_id: OEM table identifier (8 bytes)
40#
41# @oem_rev: OEM-supplied revision number (4 bytes)
42#
43# @asl_compiler_id: identifier of the utility that created the table
44#     (4 bytes)
45#
46# @asl_compiler_rev: revision number of the utility that created the
47#     table (4 bytes)
48#
49# @file: colon (:) separated list of pathnames to load and concatenate
50#     as table data.  The resultant binary blob is expected to have an
51#     ACPI table header.  At least one file is required.  This field
52#     excludes @data.
53#
54# @data: colon (:) separated list of pathnames to load and concatenate
55#     as table data.  The resultant binary blob must not have an ACPI
56#     table header.  At least one file is required.  This field
57#     excludes @file.
58#
59# Since: 1.5
60##
61{ 'struct': 'AcpiTableOptions',
62  'data': {
63    '*sig':               'str',
64    '*rev':               'uint8',
65    '*oem_id':            'str',
66    '*oem_table_id':      'str',
67    '*oem_rev':           'uint32',
68    '*asl_compiler_id':   'str',
69    '*asl_compiler_rev':  'uint32',
70    '*file':              'str',
71    '*data':              'str' }}
72
73##
74# @ACPISlotType:
75#
76# @DIMM: memory slot
77#
78# @CPU: logical CPU slot (since 2.7)
79##
80{ 'enum': 'ACPISlotType', 'data': [ 'DIMM', 'CPU' ] }
81
82##
83# @ACPIOSTInfo:
84#
85# OSPM Status Indication for a device.  For description of possible
86# values of @source and @status fields see "_OST (OSPM Status
87# Indication)" chapter of ACPI5.0 spec.
88#
89# @device: device ID associated with slot
90#
91# @slot: slot ID, unique per slot of a given @slot-type
92#
93# @slot-type: type of the slot
94#
95# @source: an integer containing the source event
96#
97# @status: an integer containing the status code
98#
99# Since: 2.1
100##
101{ 'struct': 'ACPIOSTInfo',
102  'data'  : { '*device': 'str',
103              'slot': 'str',
104              'slot-type': 'ACPISlotType',
105              'source': 'int',
106              'status': 'int' } }
107
108##
109# @query-acpi-ospm-status:
110#
111# Return a list of `ACPIOSTInfo` for devices that support status
112# reporting via ACPI _OST method.
113#
114# Since: 2.1
115#
116# .. qmp-example::
117#
118#     -> { "execute": "query-acpi-ospm-status" }
119#     <- { "return": [ { "device": "d1", "slot": "0", "slot-type": "DIMM", "source": 1, "status": 0},
120#                      { "slot": "1", "slot-type": "DIMM", "source": 0, "status": 0},
121#                      { "slot": "2", "slot-type": "DIMM", "source": 0, "status": 0},
122#                      { "slot": "3", "slot-type": "DIMM", "source": 0, "status": 0}
123#        ]}
124##
125{ 'command': 'query-acpi-ospm-status', 'returns': ['ACPIOSTInfo'] }
126
127##
128# @ACPI_DEVICE_OST:
129#
130# Emitted when guest executes ACPI _OST method.
131#
132# @info: OSPM Status Indication
133#
134# Since: 2.1
135#
136# .. qmp-example::
137#
138#     <- { "event": "ACPI_DEVICE_OST",
139#          "data": { "info": { "device": "d1", "slot": "0",
140#                              "slot-type": "DIMM", "source": 1, "status": 0 } },
141#          "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
142##
143{ 'event': 'ACPI_DEVICE_OST',
144     'data': { 'info': 'ACPIOSTInfo' } }
145