| 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' ] } |