cxl.json (674acdd17808052519aafcbee1583ad89b66181a) cxl.json (a937b6aa739f65f2cae2ad9a7eb65a309ad2a359)
1# -*- Mode: Python -*-
2# vim: filetype=python
3
4##
5# = CXL devices
6##
7
8##
9# @CxlUncorErrorType:
10#
1# -*- Mode: Python -*-
2# vim: filetype=python
3
4##
5# = CXL devices
6##
7
8##
9# @CxlUncorErrorType:
10#
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.
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.
14#
14#
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
15# @cache-data-parity: Data error such as data parity or data ECC error
16# CXL.cache
17#
18# @cache-address-parity: Address parity or other errors associated
19# with the address field on CXL.cache
20#
21# @cache-be-parity: Byte enable parity or other byte enable errors on
22# CXL.cache
23#
19# @cache-data-ecc: ECC error on CXL.cache
24# @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.
25#
26# @mem-data-parity: Data error such as data parity or data ECC error
27# on CXL.mem
28#
29# @mem-address-parity: Address parity or other errors associated with
30# the address field on CXL.mem
31#
32# @mem-be-parity: Byte enable parity or other byte enable errors on
33# CXL.mem.
34#
24# @mem-data-ecc: Data ECC error on CXL.mem.
35# @mem-data-ecc: Data ECC error on CXL.mem.
36#
25# @reinit-threshold: REINIT threshold hit.
37# @reinit-threshold: REINIT threshold hit.
38#
26# @rsvd-encoding: Received unrecognized encoding.
39# @rsvd-encoding: Received unrecognized encoding.
40#
27# @poison-received: Received poison from the peer.
41# @poison-received: Received poison from the peer.
28# @receiver-overflow: Buffer overflows (first 3 bits of header log indicate which)
42#
43# @receiver-overflow: Buffer overflows (first 3 bits of header log
44# indicate which)
45#
29# @internal: Component specific error
46# @internal: Component specific error
47#
30# @cxl-ide-tx: Integrity and data encryption tx error.
48# @cxl-ide-tx: Integrity and data encryption tx error.
49#
31# @cxl-ide-rx: Integrity and data encryption rx error.
32#
33# Since: 8.0
34##
35
36{ 'enum': 'CxlUncorErrorType',
37 'data': ['cache-data-parity',
38 'cache-address-parity',

--- 14 unchanged lines hidden (view full) ---

53 }
54
55##
56# @CXLUncorErrorRecord:
57#
58# Record of a single error including header log.
59#
60# @type: Type of error
50# @cxl-ide-rx: Integrity and data encryption rx error.
51#
52# Since: 8.0
53##
54
55{ 'enum': 'CxlUncorErrorType',
56 'data': ['cache-data-parity',
57 'cache-address-parity',

--- 14 unchanged lines hidden (view full) ---

72 }
73
74##
75# @CXLUncorErrorRecord:
76#
77# Record of a single error including header log.
78#
79# @type: Type of error
80#
61# @header: 16 DWORD of header.
62#
63# Since: 8.0
64##
65{ 'struct': 'CXLUncorErrorRecord',
66 'data': {
67 'type': 'CxlUncorErrorType',
68 'header': [ 'uint32' ]
69 }
70}
71
72##
73# @cxl-inject-uncorrectable-errors:
74#
81# @header: 16 DWORD of header.
82#
83# Since: 8.0
84##
85{ 'struct': 'CXLUncorErrorRecord',
86 'data': {
87 'type': 'CxlUncorErrorType',
88 'header': [ 'uint32' ]
89 }
90}
91
92##
93# @cxl-inject-uncorrectable-errors:
94#
75# Command to allow injection of multiple errors in one go. This allows testing
76# of multiple header log handling in the OS.
95# Command to allow injection of multiple errors in one go. This
96# allows testing of multiple header log handling in the OS.
77#
78# @path: CXL Type 3 device canonical QOM path
97#
98# @path: CXL Type 3 device canonical QOM path
99#
79# @errors: Errors to inject
80#
81# Since: 8.0
82##
83{ 'command': 'cxl-inject-uncorrectable-errors',
84 'data': { 'path': 'str',
85 'errors': [ 'CXLUncorErrorRecord' ] }}
86
87##
88# @CxlCorErrorType:
89#
90# Type of CXL correctable error to inject
91#
92# @cache-data-ecc: Data ECC error on CXL.cache
100# @errors: Errors to inject
101#
102# Since: 8.0
103##
104{ 'command': 'cxl-inject-uncorrectable-errors',
105 'data': { 'path': 'str',
106 'errors': [ 'CXLUncorErrorRecord' ] }}
107
108##
109# @CxlCorErrorType:
110#
111# Type of CXL correctable error to inject
112#
113# @cache-data-ecc: Data ECC error on CXL.cache
114#
93# @mem-data-ecc: Data ECC error on CXL.mem
115# @mem-data-ecc: Data ECC error on CXL.mem
94# @crc-threshold: Component specific and applicable to 68 byte Flit mode only.
116#
117# @crc-threshold: Component specific and applicable to 68 byte Flit
118# mode only.
119#
95# @cache-poison-received: Received poison from a peer on CXL.cache.
120# @cache-poison-received: Received poison from a peer on CXL.cache.
121#
96# @mem-poison-received: Received poison from a peer on CXL.mem
122# @mem-poison-received: Received poison from a peer on CXL.mem
123#
97# @physical: Received error indication from the physical layer.
98#
99# Since: 8.0
100##
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']
109}
110
111##
112# @cxl-inject-correctable-error:
113#
124# @physical: Received error indication from the physical layer.
125#
126# Since: 8.0
127##
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']
136}
137
138##
139# @cxl-inject-correctable-error:
140#
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.
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.
118#
119# @path: CXL Type 3 device canonical QOM path
146#
147# @path: CXL Type 3 device canonical QOM path
148#
120# @type: Type of error.
121#
122# Since: 8.0
123##
149# @type: Type of error.
150#
151# Since: 8.0
152##
124{ 'command': 'cxl-inject-correctable-error',
125 'data': { 'path': 'str',
126 'type': 'CxlCorErrorType'
127 }
128}
153{'command': 'cxl-inject-correctable-error',
154 'data': {'path': 'str', 'type': 'CxlCorErrorType'}}