xref: /openbmc/libcper/specification/json/sections/cper-memory.json (revision cc36701137e8ad0e7a537c624cd486fb72fb66de)
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        "extended",
10        "physicalAddress",
11        "physicalAddressHex",
12        "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    ],
27    "additionalProperties": false,
28    "properties": {
29        "validationBits": {
30            "type": "object",
31            "description": "Indicates which fields in the section are valid.",
32            "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            ],
56            "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                },
84                "columnValid": {
85                    "type": "boolean"
86                },
87                "bitPositionValid": {
88                    "type": "boolean"
89                },
90                "platformRequestorIDValid": {
91                    "type": "boolean"
92                },
93                "platformResponderIDValid": {
94                    "type": "boolean"
95                },
96                "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",
127            "description": "Memory error status information.",
128            "$ref": "./common/cper-json-error-status.json"
129        },
130        "bank": {
131            "type": "object",
132            "description": "The bank number of the memory associated with the error.",
133            "oneOf": [
134                {
135                    "$id": "cper-json-bank0",
136                    "type": "object",
137                    "required": ["value"],
138                    "properties": {
139                        "value": {
140                            "type": "integer"
141                        }
142                    }
143                },
144                {
145                    "$id": "cper-json-bank1",
146                    "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",
161            "description": "Identifies the type of error that occurred",
162            "$ref": "./common/cper-json-nvp.json"
163        },
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": {
180            "type": "integer",
181            "description": "The physical address at which the memory error occurred."
182        },
183        "physicalAddressHex": {
184            "type": "string"
185        },
186        "physicalAddressMask": {
187            "type": "integer",
188            "description": "Defines the valid address bits in the Physical Address field. The mask specifies the granularity of the physical address."
189        },
190        "node": {
191            "type": "integer",
192            "description": "In a multi-node system, this value identifies the node containing the memory in error."
193        },
194        "card": {
195            "type": "integer",
196            "description": "The card number of the memory error location."
197        },
198        "moduleRank": {
199            "type": "integer",
200            "description": "The module or rank number of the memory error location."
201        },
202        "device": {
203            "type": "integer",
204            "description": "The device number of the memory associated with the error."
205        },
206        "row": {
207            "type": "integer",
208            "description": "The row number of the memory error location."
209        },
210        "column": {
211            "type": "integer",
212            "description": "The column number of the memory error location."
213        },
214        "bitPosition": {
215            "type": "integer",
216            "description": "The bit position at which the memory error occurred."
217        },
218        "requestorID": {
219            "type": "integer",
220            "description": "Hardware address of the device that initiated the transaction that took the error."
221        },
222        "responderID": {
223            "type": "integer",
224            "description": "Hardware address of the device that responded to the transaction."
225        },
226        "targetID": {
227            "type": "integer",
228            "description": "Hardware address of the intended target of the transaction."
229        },
230        "rankNumber": {
231            "type": "integer",
232            "description": "The Rank number of the memory error location."
233        },
234        "cardSmbiosHandle": {
235            "type": "integer",
236            "description": "This field contains the SMBIOS handle for the Type 16 Memory Array Structure that represents the memory card."
237        },
238        "moduleSmbiosHandle": {
239            "type": "integer",
240            "description": "This field contains the SMBIOS handle for the Type 17 Memory Device Structure that represents the Memory Module."
241        }
242    }
243}
244