test-cutils: Avoid g_assert in unit tests
[qemu/kevin.git] / qapi / cxl.json
blobb21c9b4c1c443273aa7304eb12457ecf2191b8ef
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
12 # reported via an AER uncorrectable internal error with additional
13 # information logged at the CXL device.
15 # @cache-data-parity: Data error such as data parity or data ECC error
16 #     CXL.cache
18 # @cache-address-parity: Address parity or other errors associated
19 #     with the address field on CXL.cache
21 # @cache-be-parity: Byte enable parity or other byte enable errors on
22 #     CXL.cache
24 # @cache-data-ecc: ECC error on CXL.cache
26 # @mem-data-parity: Data error such as data parity or data ECC error
27 #     on CXL.mem
29 # @mem-address-parity: Address parity or other errors associated with
30 #     the address field on CXL.mem
32 # @mem-be-parity: Byte enable parity or other byte enable errors on
33 #     CXL.mem.
35 # @mem-data-ecc: Data ECC error on CXL.mem.
37 # @reinit-threshold: REINIT threshold hit.
39 # @rsvd-encoding: Received unrecognized encoding.
41 # @poison-received: Received poison from the peer.
43 # @receiver-overflow: Buffer overflows (first 3 bits of header log
44 #     indicate which)
46 # @internal: Component specific error
48 # @cxl-ide-tx: Integrity and data encryption tx error.
50 # @cxl-ide-rx: Integrity and data encryption rx error.
52 # Since: 8.0
55 { 'enum': 'CxlUncorErrorType',
56   'data': ['cache-data-parity',
57            'cache-address-parity',
58            'cache-be-parity',
59            'cache-data-ecc',
60            'mem-data-parity',
61            'mem-address-parity',
62            'mem-be-parity',
63            'mem-data-ecc',
64            'reinit-threshold',
65            'rsvd-encoding',
66            'poison-received',
67            'receiver-overflow',
68            'internal',
69            'cxl-ide-tx',
70            'cxl-ide-rx'
71            ]
72  }
75 # @CXLUncorErrorRecord:
77 # Record of a single error including header log.
79 # @type: Type of error
81 # @header: 16 DWORD of header.
83 # Since: 8.0
85 { 'struct': 'CXLUncorErrorRecord',
86   'data': {
87       'type': 'CxlUncorErrorType',
88       'header': [ 'uint32' ]
89   }
93 # @cxl-inject-uncorrectable-errors:
95 # Command to allow injection of multiple errors in one go.  This
96 # allows testing of multiple header log handling in the OS.
98 # @path: CXL Type 3 device canonical QOM path
100 # @errors: Errors to inject
102 # Since: 8.0
104 { 'command': 'cxl-inject-uncorrectable-errors',
105   'data': { 'path': 'str',
106              'errors': [ 'CXLUncorErrorRecord' ] }}
109 # @CxlCorErrorType:
111 # Type of CXL correctable error to inject
113 # @cache-data-ecc: Data ECC error on CXL.cache
115 # @mem-data-ecc: Data ECC error on CXL.mem
117 # @crc-threshold: Component specific and applicable to 68 byte Flit
118 #     mode only.
120 # @cache-poison-received: Received poison from a peer on CXL.cache.
122 # @mem-poison-received: Received poison from a peer on CXL.mem
124 # @physical: Received error indication from the physical layer.
126 # Since: 8.0
128 { 'enum': 'CxlCorErrorType',
129   'data': ['cache-data-ecc',
130            'mem-data-ecc',
131            'crc-threshold',
132            'retry-threshold',
133            'cache-poison-received',
134            'mem-poison-received',
135            'physical']
139 # @cxl-inject-correctable-error:
141 # Command to inject a single correctable error.  Multiple error
142 # injection of this error type is not interesting as there is no
143 # associated header log.  These errors are reported via AER as a
144 # correctable internal error, with additional detail available from
145 # the CXL device.
147 # @path: CXL Type 3 device canonical QOM path
149 # @type: Type of error.
151 # Since: 8.0
153 {'command': 'cxl-inject-correctable-error',
154  'data': {'path': 'str', 'type': 'CxlCorErrorType'}}