xref: /openbmc/libcper/specification/json/sections/cper-arm-ras.json (revision e1cba52dd4aeaeca17ec229251a8afc7be891d00)
1{
2    "$schema": "https://json-schema.org/draft/2020-12/schema",
3    "title": "Arm RAS Node Section Revision 1 (Tables 20 & 21)",
4    "type": "object",
5    "additionalProperties": false,
6    "required": ["revision", "componentType", "errorSyndromes"],
7    "properties": {
8        "revision": {
9            "type": "integer",
10            "const": 1,
11            "description": "Header Revision (must be 1)."
12        },
13        "componentType": {
14            "type": "integer",
15            "minimum": 0,
16            "maximum": 6,
17            "description": "Legacy AEST component type (0..6)."
18        },
19        "userData": {
20            "type": "string",
21            "maxLength": 16,
22            "description": "Null-terminated user data string (<=15 chars)."
23        },
24        "errorSyndromes": {
25            "type": "array",
26            "description": "Array of descriptor entries (Table 21).",
27            "items": {
28                "type": "object",
29                "additionalProperties": false,
30                "required": [
31                    "errorRecordIndex",
32                    "errorRecordFeatureRegister",
33                    "errorRecordControlRegister",
34                    "errorRecordPrimaryStatusRegister",
35                    "errorRecordAddressRegister",
36                    "errorRecordMiscRegister0",
37                    "errorRecordMiscRegister1"
38                ],
39                "properties": {
40                    "errorRecordIndex": {
41                        "type": "integer",
42                        "minimum": 0
43                    },
44                    "rasExtensionRevision": {
45                        "type": "integer",
46                        "minimum": 0,
47                        "maximum": 255,
48                        "description": "ERRDEVARCH nibble encoding (REVISION:ARCHVER). If 0 then MISC2/3 architecturally invalid."
49                    },
50                    "errorRecordFeatureRegister": {
51                        "type": "integer",
52                        "minimum": 0,
53                        "description": "Contents of the Error Record Feature Register (ERR<n>FR)."
54                    },
55                    "errorRecordControlRegister": {
56                        "type": "integer",
57                        "minimum": 0,
58                        "description": "Contents of the Error Record Control Register (ERR<n>CTLR)."
59                    },
60                    "errorRecordPrimaryStatusRegister": {
61                        "type": "integer",
62                        "minimum": 0,
63                        "description": "Contents of the Error Record Primary Status Register (ERR<n>STATUS)."
64                    },
65                    "errorRecordAddressRegister": {
66                        "type": "integer",
67                        "minimum": 0,
68                        "description": "Contents of the Error Record Address Register (ERR<n>ADDR)."
69                    },
70                    "errorRecordMiscRegister0": {
71                        "type": "integer",
72                        "minimum": 0,
73                        "description": "Contents of the Error Record Miscellaneous Register 0 (ERR<n>MISC0)."
74                    },
75                    "errorRecordMiscRegister1": {
76                        "type": "integer",
77                        "minimum": 0,
78                        "description": "Contents of the Error Record Miscellaneous Register 1 (ERR<n>MISC1)."
79                    },
80                    "errorRecordMiscRegister2": {
81                        "type": "integer",
82                        "minimum": 0,
83                        "description": "Contents of the Error Record Miscellaneous Register 2 (ERR<n>MISC2)."
84                    },
85                    "errorRecordMiscRegister3": {
86                        "type": "integer",
87                        "minimum": 0,
88                        "description": "Contents of the Error Record Miscellaneous Register 3 (ERR<n>MISC3)."
89                    }
90                }
91            }
92        },
93        "auxData": {
94            "type": "object",
95            "description": "Decoded auxiliary data per Tables 22–26. Present only if raw auxData blob was successfully parsed.",
96            "additionalProperties": false,
97            "required": ["version", "contexts", "keyValuePairs"],
98            "properties": {
99                "version": {
100                    "type": "integer",
101                    "const": 1,
102                    "description": "Aux data header version (must be 1)."
103                },
104                "contexts": {
105                    "type": "array",
106                    "description": "Address Space Context Array entries (each with register entries).",
107                    "items": {
108                        "type": "object",
109                        "additionalProperties": false,
110                        "required": ["flags", "registers"],
111                        "properties": {
112                            "flags": {
113                                "type": "integer",
114                                "minimum": 0,
115                                "maximum": 255,
116                                "description": "Flags; bit0=1 global/system address space, bit0=0 local/component address space."
117                            },
118                            "registerArrayLength": {
119                                "type": "integer",
120                                "minimum": 0,
121                                "description": "Length in bytes of the register array region (including all registers)."
122                            },
123                            "addressSpaceIdentifier": {
124                                "type": "integer",
125                                "description": "Optional identifier (present only when global/system address space)."
126                            },
127                            "registers": {
128                                "type": "array",
129                                "items": {
130                                    "type": "object",
131                                    "additionalProperties": false,
132                                    "required": ["address", "value"],
133                                    "properties": {
134                                        "address": {
135                                            "type": "string",
136                                            "pattern": "^[0-9a-fA-F]{16}$",
137                                            "description": "Register address (up to 64-bit)."
138                                        },
139                                        "value": {
140                                            "type": "string",
141                                            "pattern": "^[0-9a-fA-F]{16}$",
142                                            "description": "Register value (up to 64-bit)."
143                                        }
144                                    }
145                                }
146                            }
147                        }
148                    }
149                },
150                "keyValuePairs": {
151                    "type": "array",
152                    "description": "Decoded Key-Value Pair Array (UUID + 64-bit value).",
153                    "items": {
154                        "type": "object",
155                        "additionalProperties": false,
156                        "properties": {
157                            "uuid": {
158                                "type": "string",
159                                "pattern": "^[0-9a-fA-F]{32}$",
160                                "description": "16-byte UUID encoded as 32 hex characters (big-endian)."
161                            },
162                            "value": {
163                                "type": "integer",
164                                "minimum": 0,
165                                "description": "Associated 64-bit value for UUID."
166                            },
167                            "mpamPartId": {
168                                "type": "integer",
169                                "minimum": 0,
170                                "description": "Convenience decoding when UUID matches MPAM PartID UUID."
171                            }
172                        }
173                    }
174                }
175            }
176        }
177    }
178}
179