master
json 91 lines 2.21 KB
Raw
1 # -*- Mode: Python -*-
2 # vim: filetype=python
3 #
4 # SPDX-License-Identifier: GPL-2.0-or-later
5
6 ##
7 # @GICCapability:
8 #
9 # The struct describes capability for a specific GIC (Generic
10 # Interrupt Controller) version. These bits are not only decided by
11 # QEMU/KVM software version, but also decided by the hardware that the
12 # program is running upon.
13 #
14 # @version: version of GIC to be described. Currently, only 2 and 3
15 # are supported.
16 #
17 # @emulated: whether current QEMU/hardware supports emulated GIC
18 # device in user space.
19 #
20 # @kernel: whether current QEMU/hardware supports hardware accelerated
21 # GIC device in kernel.
22 #
23 # Since: 2.6
24 ##
25 { 'struct': 'GICCapability',
26 'data': { 'version': 'int',
27 'emulated': 'bool',
28 'kernel': 'bool' } }
29
30 ##
31 # @query-gic-capabilities:
32 #
33 # It will return a list of `GICCapability` objects that describe its
34 # capability bits.
35 #
36 # On non-ARM targets this command will report an error as the GIC
37 # technology is not applicable.
38 #
39 # Since: 2.6
40 #
41 # .. qmp-example::
42 #
43 # -> { "execute": "query-gic-capabilities" }
44 # <- { "return": [{ "version": 2, "emulated": true, "kernel": false },
45 # { "version": 3, "emulated": false, "kernel": true } ] }
46 ##
47 { 'command': 'query-gic-capabilities', 'returns': ['GICCapability'] }
48
49 ##
50 # @SsidSizeMode:
51 #
52 # SMMUv3 SubstreamID size configuration mode.
53 #
54 # @auto: derive from host IOMMU capabilities
55 #
56 # Values 0-20: SSIDSIZE value in bits. 0 disables SubstreamID.
57 #
58 # Since: 11.0
59 ##
60 { 'enum': 'SsidSizeMode',
61 'data': [ 'auto', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
62 '10', '11', '12', '13', '14', '15', '16', '17', '18',
63 '19', '20' ] } # order matters, see ssidsize_mode_to_value()
64
65 ##
66 # @OasMode:
67 #
68 # SMMUv3 Output Address Size configuration mode.
69 #
70 # @auto: derive from host IOMMU capabilities
71 #
72 # @32: 32-bit output address size
73 #
74 # @36: 36-bit output address size
75 #
76 # @40: 40-bit output address size
77 #
78 # @42: 42-bit output address size
79 #
80 # @44: 44-bit output address size
81 #
82 # @48: 48-bit output address size
83 #
84 # @52: 52-bit output address size
85 #
86 # @56: 56-bit output address size
87 #
88 # Since: 11.0
89 ##
90 { 'enum': 'OasMode',
91 'data': [ 'auto', '32', '36', '40', '42', '44', '48', '52', '56' ] }