blob: e2bd78760f9ec7a5247cebce1f0f54dd291cedd7 [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 "extended",
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 "moduleRank",
16 "device",
17 "row",
18 "column",
19 "bitPosition",
20 "requestorID",
21 "responderID",
22 "targetID",
23 "rankNumber",
24 "cardSmbiosHandle",
25 "moduleSmbiosHandle"
26 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010027 "additionalProperties": false,
28 "properties": {
29 "validationBits": {
30 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -080031 "description": "Indicates which fields in the section are valid.",
John Chung044afd02024-05-03 19:58:02 +080032 "required": [
33 "errorStatusValid",
34 "physicalAddressValid",
35 "physicalAddressMaskValid",
36 "nodeValid",
37 "cardValid",
38 "moduleValid",
39 "bankValid",
40 "deviceValid",
41 "rowValid",
42 "columnValid",
43 "bitPositionValid",
44 "platformRequestorIDValid",
45 "platformResponderIDValid",
46 "memoryPlatformTargetValid",
47 "memoryErrorTypeValid",
48 "rankNumberValid",
49 "cardHandleValid",
50 "moduleHandleValid",
51 "extendedRowBitsValid",
52 "bankGroupValid",
53 "bankAddressValid",
54 "chipIdentificationValid"
55 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010056 "properties": {
57 "errorStatusValid": {
58 "type": "boolean"
59 },
60 "physicalAddressValid": {
61 "type": "boolean"
62 },
63 "physicalAddressMaskValid": {
64 "type": "boolean"
65 },
66 "nodeValid": {
67 "type": "boolean"
68 },
69 "cardValid": {
70 "type": "boolean"
71 },
72 "moduleValid": {
73 "type": "boolean"
74 },
75 "bankValid": {
76 "type": "boolean"
77 },
78 "deviceValid": {
79 "type": "boolean"
80 },
81 "rowValid": {
82 "type": "boolean"
83 },
Lawrence Tang42375842022-07-19 16:25:47 +010084 "columnValid": {
85 "type": "boolean"
86 },
87 "bitPositionValid": {
88 "type": "boolean"
89 },
90 "platformRequestorIDValid": {
91 "type": "boolean"
92 },
93 "platformResponderIDValid": {
94 "type": "boolean"
95 },
Lawrence Tang079d5812022-07-12 14:15:32 +010096 "memoryPlatformTargetValid": {
97 "type": "boolean"
98 },
99 "memoryErrorTypeValid": {
100 "type": "boolean"
101 },
102 "rankNumberValid": {
103 "type": "boolean"
104 },
105 "cardHandleValid": {
106 "type": "boolean"
107 },
108 "moduleHandleValid": {
109 "type": "boolean"
110 },
111 "extendedRowBitsValid": {
112 "type": "boolean"
113 },
114 "bankGroupValid": {
115 "type": "boolean"
116 },
117 "bankAddressValid": {
118 "type": "boolean"
119 },
120 "chipIdentificationValid": {
121 "type": "boolean"
122 }
123 }
124 },
125 "errorStatus": {
126 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -0800127 "description": "Memory error status information.",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100128 "$ref": "./common/cper-json-error-status.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100129 },
130 "bank": {
131 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -0800132 "description": "The bank number of the memory associated with the error.",
Lawrence Tang079d5812022-07-12 14:15:32 +0100133 "oneOf": [
134 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -0700135 "$id": "cper-json-bank0",
Lawrence Tang079d5812022-07-12 14:15:32 +0100136 "type": "object",
137 "required": ["value"],
138 "properties": {
139 "value": {
140 "type": "integer"
141 }
142 }
143 },
144 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -0700145 "$id": "cper-json-bank1",
Lawrence Tang079d5812022-07-12 14:15:32 +0100146 "type": "object",
147 "required": ["address", "group"],
148 "properties": {
149 "address": {
150 "type": "integer"
151 },
152 "group": {
153 "type": "integer"
154 }
155 }
156 }
157 ]
158 },
159 "memoryErrorType": {
160 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -0800161 "description": "Identifies the type of error that occurred",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100162 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100163 },
164 "extended": {
165 "type": "object",
166 "required": ["rowBit16", "rowBit17", "chipIdentification"],
167 "properties": {
168 "rowBit16": {
169 "type": "boolean"
170 },
171 "rowBit17": {
172 "type": "boolean"
173 },
174 "chipIdentification": {
175 "type": "integer"
176 }
177 }
178 },
179 "physicalAddress": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800180 "type": "integer",
181 "description": "The physical address at which the memory error occurred."
Lawrence Tang079d5812022-07-12 14:15:32 +0100182 },
Aushim Nagarkatticc367012024-12-05 18:17:27 -0800183 "physicalAddressHex": {
184 "type": "string"
185 },
Lawrence Tang079d5812022-07-12 14:15:32 +0100186 "physicalAddressMask": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800187 "type": "integer",
188 "description": "Defines the valid address bits in the Physical Address field. The mask specifies the granularity of the physical address."
Lawrence Tang079d5812022-07-12 14:15:32 +0100189 },
190 "node": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800191 "type": "integer",
192 "description": "In a multi-node system, this value identifies the node containing the memory in error."
Lawrence Tang079d5812022-07-12 14:15:32 +0100193 },
194 "card": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800195 "type": "integer",
196 "description": "The card number of the memory error location."
Lawrence Tang079d5812022-07-12 14:15:32 +0100197 },
198 "moduleRank": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800199 "type": "integer",
200 "description": "The module or rank number of the memory error location."
Lawrence Tang079d5812022-07-12 14:15:32 +0100201 },
202 "device": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800203 "type": "integer",
204 "description": "The device number of the memory associated with the error."
Lawrence Tang079d5812022-07-12 14:15:32 +0100205 },
206 "row": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800207 "type": "integer",
208 "description": "The row number of the memory error location."
Lawrence Tang079d5812022-07-12 14:15:32 +0100209 },
210 "column": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800211 "type": "integer",
212 "description": "The column number of the memory error location."
Lawrence Tang079d5812022-07-12 14:15:32 +0100213 },
214 "bitPosition": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800215 "type": "integer",
216 "description": "The bit position at which the memory error occurred."
Lawrence Tang079d5812022-07-12 14:15:32 +0100217 },
218 "requestorID": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800219 "type": "integer",
220 "description": "Hardware address of the device that initiated the transaction that took the error."
Lawrence Tang079d5812022-07-12 14:15:32 +0100221 },
222 "responderID": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800223 "type": "integer",
224 "description": "Hardware address of the device that responded to the transaction."
Lawrence Tang079d5812022-07-12 14:15:32 +0100225 },
226 "targetID": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800227 "type": "integer",
228 "description": "Hardware address of the intended target of the transaction."
Lawrence Tang079d5812022-07-12 14:15:32 +0100229 },
230 "rankNumber": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800231 "type": "integer",
232 "description": "The Rank number of the memory error location."
Lawrence Tang079d5812022-07-12 14:15:32 +0100233 },
234 "cardSmbiosHandle": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800235 "type": "integer",
236 "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 +0100237 },
238 "moduleSmbiosHandle": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800239 "type": "integer",
240 "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 +0100241 }
242 }
John Chung044afd02024-05-03 19:58:02 +0800243}