| { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "title": "Arm RAS Node Section Revision 1 (Tables 20 & 21)", |
| "type": "object", |
| "additionalProperties": false, |
| "required": ["revision", "componentType", "errorSyndromes"], |
| "properties": { |
| "revision": { |
| "type": "integer", |
| "const": 1, |
| "description": "Header Revision (must be 1)." |
| }, |
| "componentType": { |
| "type": "integer", |
| "minimum": 0, |
| "maximum": 6, |
| "description": "Legacy AEST component type (0..6)." |
| }, |
| "userData": { |
| "type": "string", |
| "maxLength": 16, |
| "description": "Null-terminated user data string (<=15 chars)." |
| }, |
| "errorSyndromes": { |
| "type": "array", |
| "description": "Array of descriptor entries (Table 21).", |
| "items": { |
| "type": "object", |
| "additionalProperties": false, |
| "required": [ |
| "errorRecordIndex", |
| "errorRecordFeatureRegister", |
| "errorRecordControlRegister", |
| "errorRecordPrimaryStatusRegister", |
| "errorRecordAddressRegister", |
| "errorRecordMiscRegister0", |
| "errorRecordMiscRegister1" |
| ], |
| "properties": { |
| "errorRecordIndex": { |
| "type": "integer", |
| "minimum": 0 |
| }, |
| "rasExtensionRevision": { |
| "type": "integer", |
| "minimum": 0, |
| "maximum": 255, |
| "description": "ERRDEVARCH nibble encoding (REVISION:ARCHVER). If 0 then MISC2/3 architecturally invalid." |
| }, |
| "errorRecordFeatureRegister": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Contents of the Error Record Feature Register (ERR<n>FR)." |
| }, |
| "errorRecordControlRegister": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Contents of the Error Record Control Register (ERR<n>CTLR)." |
| }, |
| "errorRecordPrimaryStatusRegister": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Contents of the Error Record Primary Status Register (ERR<n>STATUS)." |
| }, |
| "errorRecordAddressRegister": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Contents of the Error Record Address Register (ERR<n>ADDR)." |
| }, |
| "errorRecordMiscRegister0": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Contents of the Error Record Miscellaneous Register 0 (ERR<n>MISC0)." |
| }, |
| "errorRecordMiscRegister1": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Contents of the Error Record Miscellaneous Register 1 (ERR<n>MISC1)." |
| }, |
| "errorRecordMiscRegister2": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Contents of the Error Record Miscellaneous Register 2 (ERR<n>MISC2)." |
| }, |
| "errorRecordMiscRegister3": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Contents of the Error Record Miscellaneous Register 3 (ERR<n>MISC3)." |
| } |
| } |
| } |
| }, |
| "auxData": { |
| "type": "object", |
| "description": "Decoded auxiliary data per Tables 22–26. Present only if raw auxData blob was successfully parsed.", |
| "additionalProperties": false, |
| "required": ["version", "contexts", "keyValuePairs"], |
| "properties": { |
| "version": { |
| "type": "integer", |
| "const": 1, |
| "description": "Aux data header version (must be 1)." |
| }, |
| "contexts": { |
| "type": "array", |
| "description": "Address Space Context Array entries (each with register entries).", |
| "items": { |
| "type": "object", |
| "additionalProperties": false, |
| "required": ["flags", "registers"], |
| "properties": { |
| "flags": { |
| "type": "integer", |
| "minimum": 0, |
| "maximum": 255, |
| "description": "Flags; bit0=1 global/system address space, bit0=0 local/component address space." |
| }, |
| "registerArrayLength": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Length in bytes of the register array region (including all registers)." |
| }, |
| "addressSpaceIdentifier": { |
| "type": "integer", |
| "description": "Optional identifier (present only when global/system address space)." |
| }, |
| "registers": { |
| "type": "array", |
| "items": { |
| "type": "object", |
| "additionalProperties": false, |
| "required": ["address", "value"], |
| "properties": { |
| "address": { |
| "type": "string", |
| "pattern": "^[0-9a-fA-F]{16}$", |
| "description": "Register address (up to 64-bit)." |
| }, |
| "value": { |
| "type": "string", |
| "pattern": "^[0-9a-fA-F]{16}$", |
| "description": "Register value (up to 64-bit)." |
| } |
| } |
| } |
| } |
| } |
| } |
| }, |
| "keyValuePairs": { |
| "type": "array", |
| "description": "Decoded Key-Value Pair Array (UUID + 64-bit value).", |
| "items": { |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "uuid": { |
| "type": "string", |
| "pattern": "^[0-9a-fA-F]{32}$", |
| "description": "16-byte UUID encoded as 32 hex characters (big-endian)." |
| }, |
| "value": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Associated 64-bit value for UUID." |
| }, |
| "mpamPartId": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Convenience decoding when UUID matches MPAM PartID UUID." |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |