1{
2    "$schema": "https://json-schema.org/draft/2020-12/schema",
3    "type": "object",
4    "required": [
5        "validationBits",
6        "errorStatus",
7        "bank",
8        "memoryErrorType",
9        "status",
10        "physicalAddress",
11        "physicalAddressHex",
12        "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    ],
28    "additionalProperties": false,
29    "properties": {
30        "validationBits": {
31            "type": "object",
32            "description": "Indicates which fields in this section are valid.",
33            "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            ],
57            "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",
128            "description": "Memory error status information.",
129            "$ref": "./common/cper-json-error-status.json"
130        },
131        "bank": {
132            "type": "object",
133            "description": "The bank number of the memory associated with the error.",
134            "oneOf": [
135                {
136                    "$id": "cper-json-bank0",
137                    "type": "object",
138                    "required": ["value"],
139                    "properties": {
140                        "value": {
141                            "type": "integer"
142                        }
143                    }
144                },
145                {
146                    "$id": "cper-json-bank1",
147                    "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",
162            "description": "Identifies the type of error that occurred",
163            "$ref": "./common/cper-json-nvp.json"
164        },
165        "status": {
166            "type": "object",
167            "description": "Memory error status information.",
168            "required": ["value", "state"],
169            "properties": {
170                "value": {
171                    "type": "integer"
172                },
173                "state": {
174                    "type": "string"
175                }
176            }
177        },
178        "physicalAddress": {
179            "type": "integer",
180            "description": "The physical address at which the memory error occurred."
181        },
182        "physicalAddressHex": {
183            "type": "string"
184        },
185        "physicalAddressMask": {
186            "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."
188        },
189        "node": {
190            "type": "integer",
191            "description": "In a multi-node system, this value identifies the node containing the memory in error."
192        },
193        "card": {
194            "type": "integer",
195            "description": "The card number of the memory error location."
196        },
197        "module": {
198            "type": "integer",
199            "description": "The module number of the memory error location."
200        },
201        "device": {
202            "type": "integer",
203            "description": "The device number of the memory associated with the error."
204        },
205        "row": {
206            "type": "integer",
207            "description": "The row number of the memory error location."
208        },
209        "column": {
210            "type": "integer",
211            "description": "The column number of the memory error location."
212        },
213        "bitPosition": {
214            "type": "integer",
215            "description": "The bit position at which the memory error occurred."
216        },
217        "rank": {
218            "type": "integer",
219            "description": "The rank number of the memory error location."
220        },
221        "chipID": {
222            "type": "integer",
223            "description": "The Chip Identification. This is an encoded field used to address the die in 3DS packages."
224        },
225        "requestorID": {
226            "type": "integer",
227            "description": "Hardware address of the device that initiated the transaction that took the error."
228        },
229        "responderID": {
230            "type": "integer",
231            "description": "Hardware address of the device that responded to the transaction."
232        },
233        "targetID": {
234            "type": "integer",
235            "description": "Hardware address of the intended target of the transaction."
236        },
237        "cardSmbiosHandle": {
238            "type": "integer",
239            "description": "This field contains the SMBIOS handle for the Type 16 Memory Array Structure that represents the memory card."
240        },
241        "moduleSmbiosHandle": {
242            "type": "integer",
243            "description": "This field contains the SMBIOS handle for the Type 17 Memory Device Structure that represents the Memory Module."
244        }
245    }
246}
247