blob: edc62ab1475b5985bb7d9d8029106208265c7a23 [file] [log] [blame]
Lawrence Tang079d5812022-07-12 14:15:32 +01001{
Lawrence Tang079d5812022-07-12 14:15:32 +01002 "$schema": "https://json-schema.org/draft/2020-12/schema",
3 "type": "object",
John Chung044afd02024-05-03 19:58:02 +08004 "required": [
5 "validationBits",
6 "errorStatus",
7 "bank",
8 "memoryErrorType",
9 "status",
10 "physicalAddress",
Aushim Nagarkatticc367012024-12-05 18:17:27 -080011 "physicalAddressHex",
John Chung044afd02024-05-03 19:58:02 +080012 "physicalAddressMask",
13 "node",
14 "card",
15 "module",
16 "device",
17 "row",
18 "column",
19 "bitPosition",
20 "rank",
21 "chipID",
22 "requestorID",
23 "responderID",
24 "targetID",
25 "cardSmbiosHandle",
26 "moduleSmbiosHandle"
27 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010028 "additionalProperties": false,
29 "properties": {
30 "validationBits": {
31 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -080032 "description": "Indicates which fields in this section are valid.",
John Chung044afd02024-05-03 19:58:02 +080033 "required": [
34 "errorStatusValid",
35 "physicalAddressValid",
36 "physicalAddressMaskValid",
37 "nodeValid",
38 "cardValid",
39 "moduleValid",
40 "bankValid",
41 "deviceValid",
42 "rowValid",
43 "columnValid",
44 "rankValid",
45 "bitPositionValid",
46 "chipIDValid",
47 "memoryErrorTypeValid",
48 "statusValid",
49 "requestorIDValid",
50 "responderIDValid",
51 "targetIDValid",
52 "cardHandleValid",
53 "moduleHandleValid",
54 "bankGroupValid",
55 "bankAddressValid"
56 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010057 "properties": {
58 "errorStatusValid": {
59 "type": "boolean"
60 },
61 "physicalAddressValid": {
62 "type": "boolean"
63 },
64 "physicalAddressMaskValid": {
65 "type": "boolean"
66 },
67 "nodeValid": {
68 "type": "boolean"
69 },
70 "cardValid": {
71 "type": "boolean"
72 },
73 "moduleValid": {
74 "type": "boolean"
75 },
76 "bankValid": {
77 "type": "boolean"
78 },
79 "deviceValid": {
80 "type": "boolean"
81 },
82 "rowValid": {
83 "type": "boolean"
84 },
85 "columnValid": {
86 "type": "boolean"
87 },
88 "rankValid": {
89 "type": "boolean"
90 },
91 "bitPositionValid": {
92 "type": "boolean"
93 },
94 "chipIDValid": {
95 "type": "boolean"
96 },
97 "memoryErrorTypeValid": {
98 "type": "boolean"
99 },
100 "statusValid": {
101 "type": "boolean"
102 },
103 "requestorIDValid": {
104 "type": "boolean"
105 },
106 "responderIDValid": {
107 "type": "boolean"
108 },
109 "targetIDValid": {
110 "type": "boolean"
111 },
112 "cardHandleValid": {
113 "type": "boolean"
114 },
115 "moduleHandleValid": {
116 "type": "boolean"
117 },
118 "bankGroupValid": {
119 "type": "boolean"
120 },
121 "bankAddressValid": {
122 "type": "boolean"
123 }
124 }
125 },
126 "errorStatus": {
127 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -0800128 "description": "Memory error status information.",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100129 "$ref": "./common/cper-json-error-status.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100130 },
131 "bank": {
132 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -0800133 "description": "The bank number of the memory associated with the error.",
Lawrence Tang079d5812022-07-12 14:15:32 +0100134 "oneOf": [
135 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -0700136 "$id": "cper-json-bank0",
Lawrence Tang079d5812022-07-12 14:15:32 +0100137 "type": "object",
138 "required": ["value"],
139 "properties": {
140 "value": {
141 "type": "integer"
142 }
143 }
144 },
145 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -0700146 "$id": "cper-json-bank1",
Lawrence Tang079d5812022-07-12 14:15:32 +0100147 "type": "object",
148 "required": ["address", "group"],
149 "properties": {
150 "address": {
151 "type": "integer"
152 },
153 "group": {
154 "type": "integer"
155 }
156 }
157 }
158 ]
159 },
160 "memoryErrorType": {
161 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -0800162 "description": "Identifies the type of error that occurred",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100163 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100164 },
165 "status": {
166 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -0800167 "description": "Memory error status information.",
Lawrence Tang079d5812022-07-12 14:15:32 +0100168 "required": ["value", "state"],
169 "properties": {
170 "value": {
171 "type": "integer"
172 },
173 "state": {
174 "type": "string"
175 }
176 }
177 },
178 "physicalAddress": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800179 "type": "integer",
180 "description": "The physical address at which the memory error occurred."
Lawrence Tang079d5812022-07-12 14:15:32 +0100181 },
Aushim Nagarkatticc367012024-12-05 18:17:27 -0800182 "physicalAddressHex": {
183 "type": "string"
184 },
Lawrence Tang079d5812022-07-12 14:15:32 +0100185 "physicalAddressMask": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800186 "type": "integer",
187 "description": "Defines the valid address bits in the Physical Address field. The mask specifies the granularity of the physical address which is dependent on the hardware implementation factors such as interleaving."
Lawrence Tang079d5812022-07-12 14:15:32 +0100188 },
189 "node": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800190 "type": "integer",
191 "description": "In a multi-node system, this value identifies the node containing the memory in error."
Lawrence Tang079d5812022-07-12 14:15:32 +0100192 },
193 "card": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800194 "type": "integer",
195 "description": "The card number of the memory error location."
Lawrence Tang079d5812022-07-12 14:15:32 +0100196 },
197 "module": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800198 "type": "integer",
199 "description": "The module number of the memory error location."
Lawrence Tang079d5812022-07-12 14:15:32 +0100200 },
201 "device": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800202 "type": "integer",
203 "description": "The device number of the memory associated with the error."
Lawrence Tang079d5812022-07-12 14:15:32 +0100204 },
205 "row": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800206 "type": "integer",
207 "description": "The row number of the memory error location."
Lawrence Tang079d5812022-07-12 14:15:32 +0100208 },
209 "column": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800210 "type": "integer",
211 "description": "The column number of the memory error location."
Lawrence Tang079d5812022-07-12 14:15:32 +0100212 },
213 "bitPosition": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800214 "type": "integer",
215 "description": "The bit position at which the memory error occurred."
Lawrence Tang079d5812022-07-12 14:15:32 +0100216 },
217 "rank": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800218 "type": "integer",
219 "description": "The rank number of the memory error location."
Lawrence Tang079d5812022-07-12 14:15:32 +0100220 },
221 "chipID": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800222 "type": "integer",
223 "description": "The Chip Identification. This is an encoded field used to address the die in 3DS packages."
Lawrence Tang079d5812022-07-12 14:15:32 +0100224 },
225 "requestorID": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800226 "type": "integer",
227 "description": "Hardware address of the device that initiated the transaction that took the error."
Lawrence Tang079d5812022-07-12 14:15:32 +0100228 },
229 "responderID": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800230 "type": "integer",
231 "description": "Hardware address of the device that responded to the transaction."
Lawrence Tang079d5812022-07-12 14:15:32 +0100232 },
233 "targetID": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800234 "type": "integer",
235 "description": "Hardware address of the intended target of the transaction."
Lawrence Tang079d5812022-07-12 14:15:32 +0100236 },
237 "cardSmbiosHandle": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800238 "type": "integer",
239 "description": "This field contains the SMBIOS handle for the Type 16 Memory Array Structure that represents the memory card."
Lawrence Tang079d5812022-07-12 14:15:32 +0100240 },
241 "moduleSmbiosHandle": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800242 "type": "integer",
243 "description": "This field contains the SMBIOS handle for the Type 17 Memory Device Structure that represents the Memory Module."
Lawrence Tang079d5812022-07-12 14:15:32 +0100244 }
245 }
John Chung044afd02024-05-03 19:58:02 +0800246}