127c9188fSPhilippe Mathieu-Daudé# -*- Mode: Python -*- 227c9188fSPhilippe Mathieu-Daudé# vim: filetype=python 327c9188fSPhilippe Mathieu-Daudé# 427c9188fSPhilippe Mathieu-Daudé# This work is licensed under the terms of the GNU GPL, version 2 or later. 527c9188fSPhilippe Mathieu-Daudé# See the COPYING file in the top-level directory. 627c9188fSPhilippe Mathieu-Daudé# SPDX-License-Identifier: GPL-2.0-or-later 727c9188fSPhilippe Mathieu-Daudé 827c9188fSPhilippe Mathieu-Daudé## 927c9188fSPhilippe Mathieu-Daudé# = ACPI 1027c9188fSPhilippe Mathieu-Daudé## 1127c9188fSPhilippe Mathieu-Daudé 1227c9188fSPhilippe Mathieu-Daudé## 1327c9188fSPhilippe Mathieu-Daudé# @AcpiTableOptions: 1427c9188fSPhilippe Mathieu-Daudé# 1527c9188fSPhilippe Mathieu-Daudé# Specify an ACPI table on the command line to load. 1627c9188fSPhilippe Mathieu-Daudé# 17a937b6aaSMarkus Armbruster# At most one of @file and @data can be specified. The list of files 18a937b6aaSMarkus Armbruster# specified by any one of them is loaded and concatenated in order. 19a937b6aaSMarkus Armbruster# If both are omitted, @data is implied. 2027c9188fSPhilippe Mathieu-Daudé# 21a937b6aaSMarkus Armbruster# Other fields / optargs can be used to override fields of the generic 22a937b6aaSMarkus Armbruster# ACPI table header; refer to the ACPI specification 5.0, section 23a937b6aaSMarkus Armbruster# 5.2.6 System Description Table Header. If a header field is not 24a937b6aaSMarkus Armbruster# overridden, then the corresponding value from the concatenated blob 25a937b6aaSMarkus Armbruster# is used (in case of @file), or it is filled in with a hard-coded 26a937b6aaSMarkus Armbruster# value (in case of @data). 2727c9188fSPhilippe Mathieu-Daudé# 28a937b6aaSMarkus Armbruster# String fields are copied into the matching ACPI member from lowest 29a937b6aaSMarkus Armbruster# address upwards, and silently truncated / NUL-padded to length. 3027c9188fSPhilippe Mathieu-Daudé# 3127c9188fSPhilippe Mathieu-Daudé# @sig: table signature / identifier (4 bytes) 3227c9188fSPhilippe Mathieu-Daudé# 3327c9188fSPhilippe Mathieu-Daudé# @rev: table revision number (dependent on signature, 1 byte) 3427c9188fSPhilippe Mathieu-Daudé# 3527c9188fSPhilippe Mathieu-Daudé# @oem_id: OEM identifier (6 bytes) 3627c9188fSPhilippe Mathieu-Daudé# 3727c9188fSPhilippe Mathieu-Daudé# @oem_table_id: OEM table identifier (8 bytes) 3827c9188fSPhilippe Mathieu-Daudé# 3927c9188fSPhilippe Mathieu-Daudé# @oem_rev: OEM-supplied revision number (4 bytes) 4027c9188fSPhilippe Mathieu-Daudé# 4127c9188fSPhilippe Mathieu-Daudé# @asl_compiler_id: identifier of the utility that created the table 4227c9188fSPhilippe Mathieu-Daudé# (4 bytes) 4327c9188fSPhilippe Mathieu-Daudé# 4427c9188fSPhilippe Mathieu-Daudé# @asl_compiler_rev: revision number of the utility that created the 4527c9188fSPhilippe Mathieu-Daudé# table (4 bytes) 4627c9188fSPhilippe Mathieu-Daudé# 47a937b6aaSMarkus Armbruster# @file: colon (:) separated list of pathnames to load and concatenate 48a937b6aaSMarkus Armbruster# as table data. The resultant binary blob is expected to have an 49a937b6aaSMarkus Armbruster# ACPI table header. At least one file is required. This field 5027c9188fSPhilippe Mathieu-Daudé# excludes @data. 5127c9188fSPhilippe Mathieu-Daudé# 52a937b6aaSMarkus Armbruster# @data: colon (:) separated list of pathnames to load and concatenate 53a937b6aaSMarkus Armbruster# as table data. The resultant binary blob must not have an ACPI 54a937b6aaSMarkus Armbruster# table header. At least one file is required. This field 55a937b6aaSMarkus Armbruster# excludes @file. 5627c9188fSPhilippe Mathieu-Daudé# 5727c9188fSPhilippe Mathieu-Daudé# Since: 1.5 5827c9188fSPhilippe Mathieu-Daudé## 5927c9188fSPhilippe Mathieu-Daudé{ 'struct': 'AcpiTableOptions', 6027c9188fSPhilippe Mathieu-Daudé 'data': { 6127c9188fSPhilippe Mathieu-Daudé '*sig': 'str', 6227c9188fSPhilippe Mathieu-Daudé '*rev': 'uint8', 6327c9188fSPhilippe Mathieu-Daudé '*oem_id': 'str', 6427c9188fSPhilippe Mathieu-Daudé '*oem_table_id': 'str', 6527c9188fSPhilippe Mathieu-Daudé '*oem_rev': 'uint32', 6627c9188fSPhilippe Mathieu-Daudé '*asl_compiler_id': 'str', 6727c9188fSPhilippe Mathieu-Daudé '*asl_compiler_rev': 'uint32', 6827c9188fSPhilippe Mathieu-Daudé '*file': 'str', 6927c9188fSPhilippe Mathieu-Daudé '*data': 'str' }} 7027c9188fSPhilippe Mathieu-Daudé 7127c9188fSPhilippe Mathieu-Daudé## 7227c9188fSPhilippe Mathieu-Daudé# @ACPISlotType: 7327c9188fSPhilippe Mathieu-Daudé# 7427c9188fSPhilippe Mathieu-Daudé# @DIMM: memory slot 75a937b6aaSMarkus Armbruster# 7627c9188fSPhilippe Mathieu-Daudé# @CPU: logical CPU slot (since 2.7) 7727c9188fSPhilippe Mathieu-Daudé## 7827c9188fSPhilippe Mathieu-Daudé{ 'enum': 'ACPISlotType', 'data': [ 'DIMM', 'CPU' ] } 7927c9188fSPhilippe Mathieu-Daudé 8027c9188fSPhilippe Mathieu-Daudé## 8127c9188fSPhilippe Mathieu-Daudé# @ACPIOSTInfo: 8227c9188fSPhilippe Mathieu-Daudé# 83a937b6aaSMarkus Armbruster# OSPM Status Indication for a device For description of possible 84a937b6aaSMarkus Armbruster# values of @source and @status fields see "_OST (OSPM Status 85a937b6aaSMarkus Armbruster# Indication)" chapter of ACPI5.0 spec. 8627c9188fSPhilippe Mathieu-Daudé# 8727c9188fSPhilippe Mathieu-Daudé# @device: device ID associated with slot 8827c9188fSPhilippe Mathieu-Daudé# 8927c9188fSPhilippe Mathieu-Daudé# @slot: slot ID, unique per slot of a given @slot-type 9027c9188fSPhilippe Mathieu-Daudé# 9127c9188fSPhilippe Mathieu-Daudé# @slot-type: type of the slot 9227c9188fSPhilippe Mathieu-Daudé# 9327c9188fSPhilippe Mathieu-Daudé# @source: an integer containing the source event 9427c9188fSPhilippe Mathieu-Daudé# 9527c9188fSPhilippe Mathieu-Daudé# @status: an integer containing the status code 9627c9188fSPhilippe Mathieu-Daudé# 9727c9188fSPhilippe Mathieu-Daudé# Since: 2.1 9827c9188fSPhilippe Mathieu-Daudé## 9927c9188fSPhilippe Mathieu-Daudé{ 'struct': 'ACPIOSTInfo', 10027c9188fSPhilippe Mathieu-Daudé 'data' : { '*device': 'str', 10127c9188fSPhilippe Mathieu-Daudé 'slot': 'str', 10227c9188fSPhilippe Mathieu-Daudé 'slot-type': 'ACPISlotType', 10327c9188fSPhilippe Mathieu-Daudé 'source': 'int', 10427c9188fSPhilippe Mathieu-Daudé 'status': 'int' } } 10527c9188fSPhilippe Mathieu-Daudé 10627c9188fSPhilippe Mathieu-Daudé## 10727c9188fSPhilippe Mathieu-Daudé# @query-acpi-ospm-status: 10827c9188fSPhilippe Mathieu-Daudé# 10927c9188fSPhilippe Mathieu-Daudé# Return a list of ACPIOSTInfo for devices that support status 11027c9188fSPhilippe Mathieu-Daudé# reporting via ACPI _OST method. 11127c9188fSPhilippe Mathieu-Daudé# 11227c9188fSPhilippe Mathieu-Daudé# Since: 2.1 11327c9188fSPhilippe Mathieu-Daudé# 114*14b48aaaSJohn Snow# .. qmp-example:: 11527c9188fSPhilippe Mathieu-Daudé# 11627c9188fSPhilippe Mathieu-Daudé# -> { "execute": "query-acpi-ospm-status" } 11727c9188fSPhilippe Mathieu-Daudé# <- { "return": [ { "device": "d1", "slot": "0", "slot-type": "DIMM", "source": 1, "status": 0}, 11827c9188fSPhilippe Mathieu-Daudé# { "slot": "1", "slot-type": "DIMM", "source": 0, "status": 0}, 11927c9188fSPhilippe Mathieu-Daudé# { "slot": "2", "slot-type": "DIMM", "source": 0, "status": 0}, 12027c9188fSPhilippe Mathieu-Daudé# { "slot": "3", "slot-type": "DIMM", "source": 0, "status": 0} 12127c9188fSPhilippe Mathieu-Daudé# ]} 12227c9188fSPhilippe Mathieu-Daudé## 12327c9188fSPhilippe Mathieu-Daudé{ 'command': 'query-acpi-ospm-status', 'returns': ['ACPIOSTInfo'] } 12427c9188fSPhilippe Mathieu-Daudé 12527c9188fSPhilippe Mathieu-Daudé## 12627c9188fSPhilippe Mathieu-Daudé# @ACPI_DEVICE_OST: 12727c9188fSPhilippe Mathieu-Daudé# 12827c9188fSPhilippe Mathieu-Daudé# Emitted when guest executes ACPI _OST method. 12927c9188fSPhilippe Mathieu-Daudé# 13027c9188fSPhilippe Mathieu-Daudé# @info: OSPM Status Indication 13127c9188fSPhilippe Mathieu-Daudé# 13227c9188fSPhilippe Mathieu-Daudé# Since: 2.1 13327c9188fSPhilippe Mathieu-Daudé# 134*14b48aaaSJohn Snow# .. qmp-example:: 13527c9188fSPhilippe Mathieu-Daudé# 13627c9188fSPhilippe Mathieu-Daudé# <- { "event": "ACPI_DEVICE_OST", 13769bd6cb8SVictor Toso# "data": { "info": { "device": "d1", "slot": "0", 13869bd6cb8SVictor Toso# "slot-type": "DIMM", "source": 1, "status": 0 } }, 13969bd6cb8SVictor Toso# "timestamp": { "seconds": 1265044230, "microseconds": 450486 } } 14027c9188fSPhilippe Mathieu-Daudé## 14127c9188fSPhilippe Mathieu-Daudé{ 'event': 'ACPI_DEVICE_OST', 14227c9188fSPhilippe Mathieu-Daudé 'data': { 'info': 'ACPIOSTInfo' } } 143