blob: 2bcd86ae7169d0ed738d25ae4071a5cfddbede01 [file] [log] [blame] [edit]
{
"$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."
}
}
}
}
}
}
}
}