| Prachotan Bathi | e1cba52 | 2025-09-18 14:21:54 -0500 | [diff] [blame] | 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 | } |