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