xref: /qemu/qapi/misc-arm.json (revision d2e9b78162e31b1eaf20f3a4f563da82da56908d)
1*30fbb258SDaniel P. Berrangé# -*- Mode: Python -*-
2*30fbb258SDaniel P. Berrangé# vim: filetype=python
3*30fbb258SDaniel P. Berrangé#
4*30fbb258SDaniel P. Berrangé# SPDX-License-Identifier: GPL-2.0-or-later
5*30fbb258SDaniel P. Berrangé
6*30fbb258SDaniel P. Berrangé##
7*30fbb258SDaniel P. Berrangé# @GICCapability:
8*30fbb258SDaniel P. Berrangé#
9*30fbb258SDaniel P. Berrangé# The struct describes capability for a specific GIC (Generic
10*30fbb258SDaniel P. Berrangé# Interrupt Controller) version.  These bits are not only decided by
11*30fbb258SDaniel P. Berrangé# QEMU/KVM software version, but also decided by the hardware that the
12*30fbb258SDaniel P. Berrangé# program is running upon.
13*30fbb258SDaniel P. Berrangé#
14*30fbb258SDaniel P. Berrangé# @version: version of GIC to be described.  Currently, only 2 and 3
15*30fbb258SDaniel P. Berrangé#     are supported.
16*30fbb258SDaniel P. Berrangé#
17*30fbb258SDaniel P. Berrangé# @emulated: whether current QEMU/hardware supports emulated GIC
18*30fbb258SDaniel P. Berrangé#     device in user space.
19*30fbb258SDaniel P. Berrangé#
20*30fbb258SDaniel P. Berrangé# @kernel: whether current QEMU/hardware supports hardware accelerated
21*30fbb258SDaniel P. Berrangé#     GIC device in kernel.
22*30fbb258SDaniel P. Berrangé#
23*30fbb258SDaniel P. Berrangé# Since: 2.6
24*30fbb258SDaniel P. Berrangé##
25*30fbb258SDaniel P. Berrangé{ 'struct': 'GICCapability',
26*30fbb258SDaniel P. Berrangé  'data': { 'version': 'int',
27*30fbb258SDaniel P. Berrangé            'emulated': 'bool',
28*30fbb258SDaniel P. Berrangé            'kernel': 'bool' } }
29*30fbb258SDaniel P. Berrangé
30*30fbb258SDaniel P. Berrangé##
31*30fbb258SDaniel P. Berrangé# @query-gic-capabilities:
32*30fbb258SDaniel P. Berrangé#
33*30fbb258SDaniel P. Berrangé# It will return a list of GICCapability objects that describe its
34*30fbb258SDaniel P. Berrangé# capability bits.
35*30fbb258SDaniel P. Berrangé#
36*30fbb258SDaniel P. Berrangé# On non-ARM targets this command will report an error as the GIC
37*30fbb258SDaniel P. Berrangé# technology is not applicable.
38*30fbb258SDaniel P. Berrangé#
39*30fbb258SDaniel P. Berrangé# Returns: a list of GICCapability objects.
40*30fbb258SDaniel P. Berrangé#
41*30fbb258SDaniel P. Berrangé# Since: 2.6
42*30fbb258SDaniel P. Berrangé#
43*30fbb258SDaniel P. Berrangé# .. qmp-example::
44*30fbb258SDaniel P. Berrangé#
45*30fbb258SDaniel P. Berrangé#     -> { "execute": "query-gic-capabilities" }
46*30fbb258SDaniel P. Berrangé#     <- { "return": [{ "version": 2, "emulated": true, "kernel": false },
47*30fbb258SDaniel P. Berrangé#                     { "version": 3, "emulated": false, "kernel": true } ] }
48*30fbb258SDaniel P. Berrangé##
49*30fbb258SDaniel P. Berrangé{ 'command': 'query-gic-capabilities', 'returns': ['GICCapability'] }
50