blob: 4dc66d00e5c39429786b92f785ebd5463e744fca [file]
# -*- Mode: Python -*-
# vim: filetype=python
#
# SPDX-License-Identifier: GPL-2.0-or-later
##
# @GICCapability:
#
# The struct describes capability for a specific GIC (Generic
# Interrupt Controller) version. These bits are not only decided by
# QEMU/KVM software version, but also decided by the hardware that the
# program is running upon.
#
# @version: version of GIC to be described. Currently, only 2 and 3
# are supported.
#
# @emulated: whether current QEMU/hardware supports emulated GIC
# device in user space.
#
# @kernel: whether current QEMU/hardware supports hardware accelerated
# GIC device in kernel.
#
# Since: 2.6
##
{ 'struct': 'GICCapability',
'data': { 'version': 'int',
'emulated': 'bool',
'kernel': 'bool' } }
##
# @query-gic-capabilities:
#
# It will return a list of `GICCapability` objects that describe its
# capability bits.
#
# On non-ARM targets this command will report an error as the GIC
# technology is not applicable.
#
# Since: 2.6
#
# .. qmp-example::
#
# -> { "execute": "query-gic-capabilities" }
# <- { "return": [{ "version": 2, "emulated": true, "kernel": false },
# { "version": 3, "emulated": false, "kernel": true } ] }
##
{ 'command': 'query-gic-capabilities', 'returns': ['GICCapability'] }
##
# @SsidSizeMode:
#
# SMMUv3 SubstreamID size configuration mode.
#
# @auto: derive from host IOMMU capabilities
#
# Values 0-20: SSIDSIZE value in bits. 0 disables SubstreamID.
#
# Since: 11.0
##
{ 'enum': 'SsidSizeMode',
'data': [ 'auto', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'10', '11', '12', '13', '14', '15', '16', '17', '18',
'19', '20' ] } # order matters, see ssidsize_mode_to_value()
##
# @OasMode:
#
# SMMUv3 Output Address Size configuration mode.
#
# @auto: derive from host IOMMU capabilities
#
# @32: 32-bit output address size
#
# @36: 36-bit output address size
#
# @40: 40-bit output address size
#
# @42: 42-bit output address size
#
# @44: 44-bit output address size
#
# @48: 48-bit output address size
#
# @52: 52-bit output address size
#
# @56: 56-bit output address size
#
# Since: 11.0
##
{ 'enum': 'OasMode',
'data': [ 'auto', '32', '36', '40', '42', '44', '48', '52', '56' ] }