qapi: Split up check_type()
[qemu/armbru.git] / qapi / cxl.json
blob4be7d4604153a5571589ad6e1ee53e53db53fa86
1 # -*- Mode: Python -*-
2 # vim: filetype=python
4 ##
5 # = CXL devices
6 ##
8 ##
9 # @CxlUncorErrorType:
11 # Type of uncorrectable CXL error to inject. These errors are reported via
12 # an AER uncorrectable internal error with additional information logged at
13 # the CXL device.
15 # @cache-data-parity: Data error such as data parity or data ECC error CXL.cache
16 # @cache-address-parity: Address parity or other errors associated with the
17 #                        address field on CXL.cache
18 # @cache-be-parity: Byte enable parity or other byte enable errors on CXL.cache
19 # @cache-data-ecc: ECC error on CXL.cache
20 # @mem-data-parity: Data error such as data parity or data ECC error on CXL.mem
21 # @mem-address-parity: Address parity or other errors associated with the
22 #                      address field on CXL.mem
23 # @mem-be-parity: Byte enable parity or other byte enable errors on CXL.mem.
24 # @mem-data-ecc: Data ECC error on CXL.mem.
25 # @reinit-threshold: REINIT threshold hit.
26 # @rsvd-encoding: Received unrecognized encoding.
27 # @poison-received: Received poison from the peer.
28 # @receiver-overflow: Buffer overflows (first 3 bits of header log indicate which)
29 # @internal: Component specific error
30 # @cxl-ide-tx: Integrity and data encryption tx error.
31 # @cxl-ide-rx: Integrity and data encryption rx error.
33 # Since: 8.0
36 { 'enum': 'CxlUncorErrorType',
37   'data': ['cache-data-parity',
38            'cache-address-parity',
39            'cache-be-parity',
40            'cache-data-ecc',
41            'mem-data-parity',
42            'mem-address-parity',
43            'mem-be-parity',
44            'mem-data-ecc',
45            'reinit-threshold',
46            'rsvd-encoding',
47            'poison-received',
48            'receiver-overflow',
49            'internal',
50            'cxl-ide-tx',
51            'cxl-ide-rx'
52            ]
53  }
56 # @CXLUncorErrorRecord:
58 # Record of a single error including header log.
60 # @type: Type of error
61 # @header: 16 DWORD of header.
63 # Since: 8.0
65 { 'struct': 'CXLUncorErrorRecord',
66   'data': {
67       'type': 'CxlUncorErrorType',
68       'header': [ 'uint32' ]
69   }
73 # @cxl-inject-uncorrectable-errors:
75 # Command to allow injection of multiple errors in one go. This allows testing
76 # of multiple header log handling in the OS.
78 # @path: CXL Type 3 device canonical QOM path
79 # @errors: Errors to inject
81 # Since: 8.0
83 { 'command': 'cxl-inject-uncorrectable-errors',
84   'data': { 'path': 'str',
85              'errors': [ 'CXLUncorErrorRecord' ] }}
88 # @CxlCorErrorType:
90 # Type of CXL correctable error to inject
92 # @cache-data-ecc: Data ECC error on CXL.cache
93 # @mem-data-ecc: Data ECC error on CXL.mem
94 # @crc-threshold: Component specific and applicable to 68 byte Flit mode only.
95 # @cache-poison-received: Received poison from a peer on CXL.cache.
96 # @mem-poison-received: Received poison from a peer on CXL.mem
97 # @physical: Received error indication from the physical layer.
99 # Since: 8.0
101 { 'enum': 'CxlCorErrorType',
102   'data': ['cache-data-ecc',
103            'mem-data-ecc',
104            'crc-threshold',
105            'retry-threshold',
106            'cache-poison-received',
107            'mem-poison-received',
108            'physical']
112 # @cxl-inject-correctable-error:
114 # Command to inject a single correctable error.  Multiple error injection
115 # of this error type is not interesting as there is no associated header log.
116 # These errors are reported via AER as a correctable internal error, with
117 # additional detail available from the CXL device.
119 # @path: CXL Type 3 device canonical QOM path
120 # @type: Type of error.
122 # Since: 8.0
124 { 'command': 'cxl-inject-correctable-error',
125   'data': { 'path': 'str',
126             'type': 'CxlCorErrorType'
127   }