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