CPER JSON Schema Descriptions
Descriptions populated based on UEFI Appendix N in JSON Schemas
Change-Id: I765ec81913567ba7f32c39fdbd901483d9d78e21
Signed-off-by: Andrew Adriance <aadriance@nvidia.com>
diff --git a/specification/json/common/cper-json-error-status.json b/specification/json/common/cper-json-error-status.json
index 6ff2f07..f86884a 100644
--- a/specification/json/common/cper-json-error-status.json
+++ b/specification/json/common/cper-json-error-status.json
@@ -16,6 +16,7 @@
"properties": {
"errorType": {
"type": "object",
+ "description": "Encoded value for the Error_Type",
"required": ["name", "value", "description"],
"properties": {
"name": {
@@ -30,25 +31,32 @@
}
},
"addressSignal": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "Address: Error was detected on the address signals or on the address portion of the transaction."
},
"controlSignal": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "Control: Error was detected on the control signals or in the control portion of the transaction."
},
"dataSignal": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "Data: Error was detected on the data signals or in the data portion of the transaction."
},
"detectedByResponder": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "Responder: Error was detected by the responder of the transaction."
},
"detectedByRequester": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "Requester: Error was detected by the requester of the transaction."
},
"firstError": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "First Error: If multiple errors are logged for a section type, this is the first error in the chronological sequence. Setting of this bit is optional."
},
"overflowDroppedLogs": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "Overflow: Additional errors occurred and were not logged due to lack of logging resources."
}
}
}
diff --git a/specification/json/cper-json-full-log.json b/specification/json/cper-json-full-log.json
index 071f5b1..3a8021f 100644
--- a/specification/json/cper-json-full-log.json
+++ b/specification/json/cper-json-full-log.json
@@ -2,6 +2,7 @@
"$id": "cper-json-full-log",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
+ "description": "A Common Platform Error Record as defined in UEFI Specification Appendix N represented as JSON.",
"required": ["header", "sectionDescriptors", "sections"],
"additionalProperties": false,
"properties": {
diff --git a/specification/json/cper-json-header.json b/specification/json/cper-json-header.json
index 641a74d..2980dc0 100644
--- a/specification/json/cper-json-header.json
+++ b/specification/json/cper-json-header.json
@@ -1,6 +1,7 @@
{
"$id": "cper-json-header",
"$schema": "https://json-schema.org/draft/2020-12/schema",
+ "description": "Common Platform Record Header as defined in UEFI Appendix N section 2.1",
"type": "object",
"required": [
"revision",
@@ -18,6 +19,7 @@
"properties": {
"revision": {
"type": "object",
+ "description": "This is a 2-byte field representing a major and minor version number for the error record definition in BCD format. ",
"required": ["major", "minor"],
"properties": {
"major": {
@@ -32,10 +34,12 @@
},
"sectionCount": {
"type": "integer",
+ "description": "his field indicates the number of valid sections associated with the record, corresponding to each of the following section descriptors.",
"minimum": 0
},
"severity": {
"type": "object",
+ "description": "Indicates the severity of the error condition. The severity of the error record corresponds to the most severe error section.",
"required": ["name", "code"],
"properties": {
"name": {
@@ -49,6 +53,7 @@
},
"validationBits": {
"type": "object",
+ "description": "This field indicates the validity of other header feilds.",
"required": [
"platformIDValid",
"timestampValid",
@@ -68,25 +73,32 @@
},
"recordLength": {
"type": "integer",
+ "description": "Indicates the size of the actual error record, including the size of the record header, all section descriptors, and section bodies.",
"minimum": 0
},
"timestamp": {
- "type": "string"
+ "type": "string",
+ "description": "The timestamp correlates to the time when the error information was collected by the system software and may not necessarily represent the time of the error event."
},
"timestampIsPrecise": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "Timestamp is precise if this bit is set and correlates to the time of the error event."
},
"platformID": {
- "type": "string"
+ "type": "string",
+ "description": "This field uniquely identifies the platform with a GUID. The platform’s SMBIOS UUID should be used to populate this field."
},
"partitionID": {
- "type": "string"
+ "type": "string",
+ "description": "If the platform has multiple software partitions, system software may associate a GUID with the partition on which the error occurred."
},
"creatorID": {
- "type": "string"
+ "type": "string",
+ "description": "This field contains a GUID indicating the creator of the error record. This value may be overwritten by subsequent owners of the record."
},
"notificationType": {
"type": "object",
+ "description": "This field holds a pre-assigned GUID value indicating the record association with an error event notification type.",
"required": ["guid", "type"],
"properties": {
"guid": {
@@ -99,14 +111,17 @@
}
},
"recordID": {
- "type": "integer"
+ "type": "integer",
+ "description": "This value, when combined with the Creator ID, uniquely identifies the error record across other error records on a given system."
},
"flags": {
"type": "object",
+ "description": "Flags field contains information that describes the error record.",
"$ref": "./common/cper-json-nvp.json"
},
"persistenceInfo": {
- "type": "integer"
+ "type": "integer",
+ "description": "This field is produced and consumed by the creator of the error record identified in the Creator ID field. The format of this field is defined by the creator"
}
}
}
diff --git a/specification/json/cper-json-section-descriptor.json b/specification/json/cper-json-section-descriptor.json
index 2b4b080..f408522 100644
--- a/specification/json/cper-json-section-descriptor.json
+++ b/specification/json/cper-json-section-descriptor.json
@@ -2,6 +2,7 @@
"$id": "cper-json-section-descriptor",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
+ "description": "Common Platform Record Section Descriptor as defined in UEFI Appendix N section 2.2",
"required": [
"sectionOffset",
"sectionLength",
@@ -14,13 +15,16 @@
"additionalProperties": false,
"properties": {
"sectionOffset": {
- "type": "integer"
+ "type": "integer",
+ "description": "Offset in bytes of the section body from the base of the record header."
},
"sectionLength": {
- "type": "integer"
+ "type": "integer",
+ "description": "The length in bytes of the section body."
},
"revision": {
"type": "object",
+ "description": "This is a 2-byte field representing a major and minor version number for the error record definition in BCD format.",
"required": ["major", "minor"],
"properties": {
"major": {
@@ -35,6 +39,7 @@
},
"validationBits": {
"type": "object",
+ "description": "This field indicates the validity of other feilds in this descriptor.",
"required": ["fruIDValid", "fruStringValid"],
"properties": {
"fruIDValid": {
@@ -59,33 +64,42 @@
],
"properties": {
"primary": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "If set, identifies the section as the section to be associated with the error condition."
},
"containmentWarning": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "If set, the error was not contained within the processor or memory hierarchy and the error may have propagated to persistent storage or network."
},
"reset": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "If set, the component has been reset and must be re-initialized or re-enabled by the operating system prior to use."
},
"errorThresholdExceeded": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "If set, OS may choose to discontinue use of this resource."
},
"resourceNotAccessible": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "If set, the resource could not be queried for error information due to conflicts with other system software or resources."
},
"latentError": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "If set this flag indicates that action has been taken to ensure error containment"
},
"propagated": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "If set this flag indicates the section is to be associated with an error that has been propagated due to hardware poisoning."
},
"overflow": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "If set this flag indicates the firmware has detected an overflow of buffers/queues that are used to accumulate, collect, or report errors"
}
}
},
"sectionType": {
"type": "object",
+ "description": "This field holds a pre-assigned GUID value indicating that it is a section of a particular error.",
"required": ["data", "type"],
"properties": {
"data": {
@@ -98,10 +112,12 @@
}
},
"fruID": {
- "type": "string"
+ "type": "string",
+ "description": "GUID representing the FRU ID, if it exists, for the section reporting the error. The default value is zero indicating an invalid FRU ID."
},
"severity": {
"type": "object",
+ "description": "This field indicates the severity associated with the error section.",
"required": ["code", "name"],
"properties": {
"code": {
@@ -114,7 +130,8 @@
}
},
"fruText": {
- "type": "string"
+ "type": "string",
+ "description": "ASCII string identifying the FRU hardware."
}
}
}
diff --git a/specification/json/sections/cper-arm-processor.json b/specification/json/sections/cper-arm-processor.json
index ec70748..bcfaee3 100644
--- a/specification/json/sections/cper-arm-processor.json
+++ b/specification/json/sections/cper-arm-processor.json
@@ -1,6 +1,7 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
+ "description": "ARM Processor Error Section",
"required": [
"validationBits",
"errorInfoNum",
@@ -18,6 +19,7 @@
"properties": {
"validationBits": {
"type": "object",
+ "description": "Indiciates what fields in the section are valid",
"required": [
"mpidrValid",
"errorAffinityLevelValid",
@@ -40,16 +42,20 @@
}
},
"errorInfoNum": {
- "type": "integer"
+ "type": "integer",
+ "description": "The number of Processor Error Information Structures"
},
"contextInfoNum": {
- "type": "integer"
+ "type": "integer",
+ "description": "The number of Context Information Structures"
},
"sectionLength": {
- "type": "integer"
+ "type": "integer",
+ "description": "This describes the total size of the ARM processor error section"
},
"errorAffinity": {
"type": "object",
+ "description": "For errors that can be attributed to a specific affinity level, this field defines the affinity level at which the error was produced, detected, and/or consumed",
"required": ["value", "type"],
"properties": {
"value": {
@@ -61,7 +67,8 @@
}
},
"mpidrEl1": {
- "type": "integer"
+ "type": "integer",
+ "description": "This field is valid for “attributable errors” that can be attributed to a specific CPU, cache, or cluster. This is the processor’s unique ID in the system"
},
"affinity3": {
"type": "integer"
diff --git a/specification/json/sections/cper-cxl-component.json b/specification/json/sections/cper-cxl-component.json
index 5518031..f86252a 100644
--- a/specification/json/sections/cper-cxl-component.json
+++ b/specification/json/sections/cper-cxl-component.json
@@ -1,6 +1,7 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
+ "description": "CXL Component Events Section",
"required": ["length", "validationBits", "deviceID", "deviceSerial"],
"additionalProperties": false,
"properties": {
@@ -9,6 +10,7 @@
},
"validationBits": {
"type": "object",
+ "description": "Indiciates what fields in the section are valid",
"required": [
"deviceIDValid",
"deviceSerialValid",
@@ -28,6 +30,7 @@
},
"deviceID": {
"type": "object",
+ "description": "Provides devices specific identifies.",
"required": [
"vendorID",
"deviceID",
diff --git a/specification/json/sections/cper-cxl-protocol.json b/specification/json/sections/cper-cxl-protocol.json
index bc46245..8d70e83 100644
--- a/specification/json/sections/cper-cxl-protocol.json
+++ b/specification/json/sections/cper-cxl-protocol.json
@@ -1,6 +1,7 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
+ "description": "Compute Express Link (CXL) Protocol Error Section",
"required": [
"validationBits",
"agentType",
@@ -15,6 +16,7 @@
"properties": {
"validationBits": {
"type": "object",
+ "description": "Indiciates what fields in the section are valid",
"required": [
"cxlAgentTypeValid",
"cxlAgentAddressValid",
@@ -50,10 +52,12 @@
},
"agentType": {
"type": "object",
+ "description": "CXL Agent Type",
"$ref": "./common/cper-json-nvp.json"
},
"cxlAgentAddress": {
"type": "object",
+ "description": "CXL Agent depedent address to uniquely identify the component",
"oneOf": [
{
"$id": "cper-json-cxlagentaddress0",
@@ -93,6 +97,7 @@
},
"deviceID": {
"type": "object",
+ "description": "Provides devices specific identifies.",
"required": [
"vendorID",
"deviceID",
@@ -123,22 +128,28 @@
}
},
"deviceSerial": {
- "type": "integer"
+ "type": "integer",
+ "description": "CXL Agent device serial number"
},
"capabilityStructure": {
- "type": "string"
+ "type": "string",
+ "description": "The PCIe Capability Structure of the agent"
},
"dvsecLength": {
- "type": "integer"
+ "type": "integer",
+ "description": "The length in bytes of the CXL DVSEC field"
},
"errorLogLength": {
- "type": "integer"
+ "type": "integer",
+ "description": "The length in bytes of the CXL Error Log field"
},
"cxlDVSEC": {
- "type": "string"
+ "type": "string",
+ "description": "Contains the DVSEC structure as defined in the CXL specification"
},
"cxlErrorLog": {
- "type": "string"
+ "type": "string",
+ "description": "This field contains a copy of the “CXL RAS Capability Structure”, as defined in the CXL Specification."
}
}
}
diff --git a/specification/json/sections/cper-firmware.json b/specification/json/sections/cper-firmware.json
index 7fc7955..7169d45 100644
--- a/specification/json/sections/cper-firmware.json
+++ b/specification/json/sections/cper-firmware.json
@@ -1,21 +1,26 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
+ "description": "Firmware Error Record Reference",
"required": ["errorRecordType", "revision", "recordID", "recordIDGUID"],
"additionalProperties": false,
"properties": {
"errorRecordType": {
"type": "object",
+ "description": "Identifies the type of firmware error record that is referenced by this section",
"$ref": "./common/cper-json-nvp.json"
},
"revision": {
- "type": "integer"
+ "type": "integer",
+ "description": "Indicates the Header Revision"
},
"recordID": {
- "type": "integer"
+ "type": "integer",
+ "description": "This value uniquely identifies the firmware error record referenced by this section."
},
"recordIDGUID": {
- "type": "string"
+ "type": "string",
+ "description": "This value uniquely identifies the firmware error record referenced by this section."
}
}
}
diff --git a/specification/json/sections/cper-generic-dmar.json b/specification/json/sections/cper-generic-dmar.json
index 810bc85..2075b3b 100644
--- a/specification/json/sections/cper-generic-dmar.json
+++ b/specification/json/sections/cper-generic-dmar.json
@@ -1,6 +1,7 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
+ "description": "DMAr Generic Error Section",
"required": [
"requesterID",
"segmentNumber",
@@ -13,10 +14,12 @@
"additionalProperties": false,
"properties": {
"requesterID": {
- "type": "integer"
+ "type": "integer",
+ "description": "Device ID associated with a fault condition"
},
"segmentNumber": {
- "type": "integer"
+ "type": "integer",
+ "description": "PCI segment associated with a device"
},
"faultReason": {
"type": "object",
@@ -35,18 +38,22 @@
},
"accessType": {
"type": "object",
+ "description": "Either read or write.",
"$ref": "./common/cper-json-nvp.json"
},
"addressType": {
"type": "object",
+ "description": "Either Translated or untranslated address",
"$ref": "./common/cper-json-nvp.json"
},
"architectureType": {
"type": "object",
+ "description": "Either VT-d or IOMMU",
"$ref": "./common/cper-json-nvp.json"
},
"deviceAddress": {
- "type": "integer"
+ "type": "integer",
+ "description": "The 64-bit device virtual address in the faulted DMA request"
}
}
}
diff --git a/specification/json/sections/cper-generic-processor.json b/specification/json/sections/cper-generic-processor.json
index 595be99..65bb997 100644
--- a/specification/json/sections/cper-generic-processor.json
+++ b/specification/json/sections/cper-generic-processor.json
@@ -1,6 +1,7 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
+ "description": "Generic Processor Error Section",
"required": [
"validationBits",
"processorType",
@@ -21,6 +22,7 @@
"properties": {
"validationBits": {
"type": "object",
+ "description": "Indiciates what fields in the section are valid",
"required": [
"processorTypeValid",
"processorISAValid",
@@ -80,61 +82,78 @@
},
"processorType": {
"type": "object",
+ "description": "Identifies the type of the processor architecture.",
"$ref": "./common/cper-json-nvp.json"
},
"processorISA": {
"type": "object",
+ "description": "Identifies the type of the instruction set executing when the error occurred",
"$ref": "./common/cper-json-nvp.json"
},
"errorType": {
"type": "object",
+ "description": "Indicates the type of error that occurred",
"$ref": "./common/cper-json-nvp.json"
},
"operation": {
"type": "object",
+ "description": "Indicates the type of operation",
"$ref": "./common/cper-json-nvp.json"
},
"flags": {
"type": "object",
+ "description": "Indicates additional information about the error",
"required": ["restartable", "preciseIP", "overflow", "corrected"],
"properties": {
"restartable": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "program execution can be restarted reliably after the error"
},
"preciseIP": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "the instruction IP captured is directly associated with the error"
},
"overflow": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "a machine check overflow occurred (a second error occurred while the results of a previous error were still in the error reporting resources)"
},
"corrected": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "the error was corrected by hardware and/or firmware"
}
}
},
"level": {
- "type": "integer"
+ "type": "integer",
+ "description": "Level of the structure where the error occurred, with 0 being the lowest level of cache."
},
"cpuVersionInfo": {
- "type": "integer"
+ "type": "integer",
+ "description": "This field represents the CPU Version Information and returns Family, Model, and stepping information"
},
"cpuBrandString": {
- "type": "string"
+ "type": "string",
+ "description": "This field represents the null-terminated ASCII Processor Brand String"
},
"processorID": {
- "type": "integer"
+ "type": "integer",
+ "description": "This value uniquely identifies the logical processor"
},
"targetAddress": {
- "type": "integer"
+ "type": "integer",
+ "description": "Identifies the target address associated with the error"
},
"requestorID": {
- "type": "integer"
+ "type": "integer",
+ "description": "Identifies the requestor associated with the error"
},
"responderID": {
- "type": "integer"
+ "type": "integer",
+ "description": "Identifies the responder associated with the error"
},
"instructionIP": {
- "type": "integer"
+ "type": "integer",
+ "description": "Identifies the instruction pointer when the error occurred"
}
}
}
diff --git a/specification/json/sections/cper-ia32x64-processor.json b/specification/json/sections/cper-ia32x64-processor.json
index fbdd971..3f41564 100644
--- a/specification/json/sections/cper-ia32x64-processor.json
+++ b/specification/json/sections/cper-ia32x64-processor.json
@@ -12,6 +12,7 @@
"properties": {
"validationBits": {
"type": "object",
+ "description": "Indicates which fields are valid in the section.",
"required": [
"localAPICIDValid",
"cpuIDInfoValid",
@@ -36,10 +37,12 @@
}
},
"localAPICID": {
- "type": "integer"
+ "type": "integer",
+ "description": "This is the processor APIC ID programmed into the APIC ID registers."
},
"cpuidInfo": {
"type": "object",
+ "description": "This field represents the CPU ID structure of 48 bytes and returns Model, Family, and stepping information as provided by the CPUID instruction with EAX=1 input and output values from EAX, EBX, ECX, and EDX null extended to 64-bits.",
"required": ["eax", "ebx", "ecx", "edx"],
"properties": {
"eax": {
@@ -58,6 +61,7 @@
},
"processorErrorInfo": {
"type": "array",
+ "description": "Array of processor error information structure.",
"items": {
"type": "object",
"required": [
@@ -385,6 +389,7 @@
},
"processorContextInfo": {
"type": "array",
+ "description": "This is a variable size field providing the information for the processor context state such as MC Bank MSRs and general registers.",
"items": {
"type": "object",
"required": [
diff --git a/specification/json/sections/cper-iommu-dmar.json b/specification/json/sections/cper-iommu-dmar.json
index 2d9e511..47a4aaa 100644
--- a/specification/json/sections/cper-iommu-dmar.json
+++ b/specification/json/sections/cper-iommu-dmar.json
@@ -17,37 +17,48 @@
"additionalProperties": false,
"properties": {
"revision": {
- "type": "integer"
+ "type": "integer",
+ "description": "Specifies the IOMMU specification revision"
},
"controlRegister": {
- "type": "integer"
+ "type": "integer",
+ "description": "IOMMU control register"
},
"statusRegister": {
- "type": "integer"
+ "type": "integer",
+ "description": "IOMMU status register"
},
"eventLogEntry": {
- "type": "string"
+ "type": "string",
+ "description": "IOMMU fault related event log entry as defined in the IOMMU specification"
},
"deviceTableEntry": {
- "type": "string"
+ "type": "string",
+ "description": "Value from the device table for a given Requester ID"
},
"pageTableEntry_Level6": {
- "type": "integer"
+ "type": "integer",
+ "description": "PTE entry for device virtual address in page level 6."
},
"pageTableEntry_Level5": {
- "type": "integer"
+ "type": "integer",
+ "description": "PTE entry for device virtual address in page level 5."
},
"pageTableEntry_Level4": {
- "type": "integer"
+ "type": "integer",
+ "description": "PTE entry for device virtual address in page level 4."
},
"pageTableEntry_Level3": {
- "type": "integer"
+ "type": "integer",
+ "description": "PTE entry for device virtual address in page level 3."
},
"pageTableEntry_Level2": {
- "type": "integer"
+ "type": "integer",
+ "description": "PTE entry for device virtual address in page level 2."
},
"pageTableEntry_Level1": {
- "type": "integer"
+ "type": "integer",
+ "description": "PTE entry for device virtual address in page level 1."
}
}
}
diff --git a/specification/json/sections/cper-memory.json b/specification/json/sections/cper-memory.json
index 4b1defc..bdb01da 100644
--- a/specification/json/sections/cper-memory.json
+++ b/specification/json/sections/cper-memory.json
@@ -27,6 +27,7 @@
"properties": {
"validationBits": {
"type": "object",
+ "description": "Indicates which fields in the section are valid.",
"required": [
"errorStatusValid",
"physicalAddressValid",
@@ -122,10 +123,12 @@
},
"errorStatus": {
"type": "object",
+ "description": "Memory error status information.",
"$ref": "./common/cper-json-error-status.json"
},
"bank": {
"type": "object",
+ "description": "The bank number of the memory associated with the error.",
"oneOf": [
{
"$id": "cper-json-bank0",
@@ -154,6 +157,7 @@
},
"memoryErrorType": {
"type": "object",
+ "description": "Identifies the type of error that occurred",
"$ref": "./common/cper-json-nvp.json"
},
"extended": {
@@ -172,49 +176,64 @@
}
},
"physicalAddress": {
- "type": "integer"
+ "type": "integer",
+ "description": "The physical address at which the memory error occurred."
},
"physicalAddressMask": {
- "type": "integer"
+ "type": "integer",
+ "description": "Defines the valid address bits in the Physical Address field. The mask specifies the granularity of the physical address."
},
"node": {
- "type": "integer"
+ "type": "integer",
+ "description": "In a multi-node system, this value identifies the node containing the memory in error."
},
"card": {
- "type": "integer"
+ "type": "integer",
+ "description": "The card number of the memory error location."
},
"moduleRank": {
- "type": "integer"
+ "type": "integer",
+ "description": "The module or rank number of the memory error location."
},
"device": {
- "type": "integer"
+ "type": "integer",
+ "description": "The device number of the memory associated with the error."
},
"row": {
- "type": "integer"
+ "type": "integer",
+ "description": "The row number of the memory error location."
},
"column": {
- "type": "integer"
+ "type": "integer",
+ "description": "The column number of the memory error location."
},
"bitPosition": {
- "type": "integer"
+ "type": "integer",
+ "description": "The bit position at which the memory error occurred."
},
"requestorID": {
- "type": "integer"
+ "type": "integer",
+ "description": "Hardware address of the device that initiated the transaction that took the error."
},
"responderID": {
- "type": "integer"
+ "type": "integer",
+ "description": "Hardware address of the device that responded to the transaction."
},
"targetID": {
- "type": "integer"
+ "type": "integer",
+ "description": "Hardware address of the intended target of the transaction."
},
"rankNumber": {
- "type": "integer"
+ "type": "integer",
+ "description": "The Rank number of the memory error location."
},
"cardSmbiosHandle": {
- "type": "integer"
+ "type": "integer",
+ "description": "This field contains the SMBIOS handle for the Type 16 Memory Array Structure that represents the memory card."
},
"moduleSmbiosHandle": {
- "type": "integer"
+ "type": "integer",
+ "description": "This field contains the SMBIOS handle for the Type 17 Memory Device Structure that represents the Memory Module."
}
}
}
diff --git a/specification/json/sections/cper-memory2.json b/specification/json/sections/cper-memory2.json
index 51d972f..0f57f63 100644
--- a/specification/json/sections/cper-memory2.json
+++ b/specification/json/sections/cper-memory2.json
@@ -28,6 +28,7 @@
"properties": {
"validationBits": {
"type": "object",
+ "description": "Indicates which fields in this section are valid.",
"required": [
"errorStatusValid",
"physicalAddressValid",
@@ -123,10 +124,12 @@
},
"errorStatus": {
"type": "object",
+ "description": "Memory error status information.",
"$ref": "./common/cper-json-error-status.json"
},
"bank": {
"type": "object",
+ "description": "The bank number of the memory associated with the error.",
"oneOf": [
{
"$id": "cper-json-bank0",
@@ -155,10 +158,12 @@
},
"memoryErrorType": {
"type": "object",
+ "description": "Identifies the type of error that occurred",
"$ref": "./common/cper-json-nvp.json"
},
"status": {
"type": "object",
+ "description": "Memory error status information.",
"required": ["value", "state"],
"properties": {
"value": {
@@ -170,52 +175,68 @@
}
},
"physicalAddress": {
- "type": "integer"
+ "type": "integer",
+ "description": "The physical address at which the memory error occurred."
},
"physicalAddressMask": {
- "type": "integer"
+ "type": "integer",
+ "description": "Defines the valid address bits in the Physical Address field. The mask specifies the granularity of the physical address which is dependent on the hardware implementation factors such as interleaving."
},
"node": {
- "type": "integer"
+ "type": "integer",
+ "description": "In a multi-node system, this value identifies the node containing the memory in error."
},
"card": {
- "type": "integer"
+ "type": "integer",
+ "description": "The card number of the memory error location."
},
"module": {
- "type": "integer"
+ "type": "integer",
+ "description": "The module number of the memory error location."
},
"device": {
- "type": "integer"
+ "type": "integer",
+ "description": "The device number of the memory associated with the error."
},
"row": {
- "type": "integer"
+ "type": "integer",
+ "description": "The row number of the memory error location."
},
"column": {
- "type": "integer"
+ "type": "integer",
+ "description": "The column number of the memory error location."
},
"bitPosition": {
- "type": "integer"
+ "type": "integer",
+ "description": "The bit position at which the memory error occurred."
},
"rank": {
- "type": "integer"
+ "type": "integer",
+ "description": "The rank number of the memory error location."
},
"chipID": {
- "type": "integer"
+ "type": "integer",
+ "description": "The Chip Identification. This is an encoded field used to address the die in 3DS packages."
},
"requestorID": {
- "type": "integer"
+ "type": "integer",
+ "description": "Hardware address of the device that initiated the transaction that took the error."
},
"responderID": {
- "type": "integer"
+ "type": "integer",
+ "description": "Hardware address of the device that responded to the transaction."
},
"targetID": {
- "type": "integer"
+ "type": "integer",
+ "description": "Hardware address of the intended target of the transaction."
},
"cardSmbiosHandle": {
- "type": "integer"
+ "type": "integer",
+ "description": "This field contains the SMBIOS handle for the Type 16 Memory Array Structure that represents the memory card."
},
"moduleSmbiosHandle": {
- "type": "integer"
+ "type": "integer",
+ "description": "This field contains the SMBIOS handle for the Type 17 Memory Device Structure that represents the Memory Module."
}
}
}
diff --git a/specification/json/sections/cper-nvidia.json b/specification/json/sections/cper-nvidia.json
index f15403a..5b04583 100644
--- a/specification/json/sections/cper-nvidia.json
+++ b/specification/json/sections/cper-nvidia.json
@@ -13,16 +13,20 @@
"additionalProperties": false,
"properties": {
"signature": {
- "type": "string"
+ "type": "string",
+ "description": "IP Signature Name."
},
"errorType": {
- "type": "integer"
+ "type": "integer",
+ "description": "Error type within the IP block."
},
"errorInstance": {
- "type": "integer"
+ "type": "integer",
+ "description": ""
},
"severity": {
"type": "object",
+ "description": "Internal severity for firmware tracking. Use CPER section severity.",
"required": ["code", "name"],
"properties": {
"code": {
@@ -35,16 +39,20 @@
}
},
"socket": {
- "type": "integer"
+ "type": "integer",
+ "description": "Socket the error report originated from."
},
"registerCount": {
- "type": "integer"
+ "type": "integer",
+ "description": "Number of registers present in registers array."
},
"instanceBase": {
- "type": "integer"
+ "type": "integer",
+ "description": "The location the error data was read from."
},
"registers": {
"type": "array",
+ "description": "Address, value pairs for registers dumped during the error detection.",
"items": {
"type": "object",
"required": ["address", "value"],
diff --git a/specification/json/sections/cper-pci-bus.json b/specification/json/sections/cper-pci-bus.json
index 5c9d779..503c065 100644
--- a/specification/json/sections/cper-pci-bus.json
+++ b/specification/json/sections/cper-pci-bus.json
@@ -17,6 +17,7 @@
"properties": {
"validationBits": {
"type": "object",
+ "description": "Inidicates which fields are valid in the section.",
"required": [
"errorStatusValid",
"errorTypeValid",
@@ -60,10 +61,12 @@
},
"errorStatus": {
"type": "object",
+ "description": "PCI Bus Error Status.",
"$ref": "./common/cper-json-error-status.json"
},
"errorType": {
"type": "object",
+ "description": "PCI Bus error Type",
"$ref": "./common/cper-json-nvp.json"
},
"busID": {
@@ -71,30 +74,38 @@
"required": ["busNumber", "segmentNumber"],
"properties": {
"busNumber": {
- "type": "integer"
+ "type": "integer",
+ "description": "Bus Number"
},
"segmentNumber": {
- "type": "integer"
+ "type": "integer",
+ "description": "Segment Number"
}
}
},
"busAddress": {
- "type": "integer"
+ "type": "integer",
+ "description": "Memory or I/O address on the bus at the time of the error."
},
"busData": {
- "type": "integer"
+ "type": "integer",
+ "description": "Data on the PCI bus at the time of the error."
},
"busCommandType": {
- "type": "string"
+ "type": "string",
+ "description": "Bus command or operation at the time of the error."
},
"busRequestorID": {
- "type": "integer"
+ "type": "integer",
+ "description": "PCI Bus Requestor Id."
},
"busCompleterID": {
- "type": "integer"
+ "type": "integer",
+ "description": "PCI Bus Responder Id."
},
"targetID": {
- "type": "integer"
+ "type": "integer",
+ "description": "PCI Bus intended target identifier."
}
}
}
diff --git a/specification/json/sections/cper-pci-component.json b/specification/json/sections/cper-pci-component.json
index 5f7450c..ef1f3da 100644
--- a/specification/json/sections/cper-pci-component.json
+++ b/specification/json/sections/cper-pci-component.json
@@ -13,6 +13,7 @@
"properties": {
"validationBits": {
"type": "object",
+ "description": "Indicates which other fields are valid in the section.",
"required": [
"errorStatusValid",
"idInfoValid",
@@ -40,10 +41,12 @@
},
"errorStatus": {
"type": "object",
+ "description": "PCI Component Error Status.",
"$ref": "./common/cper-json-error-status.json"
},
"idInfo": {
"type": "object",
+ "description": "Identification Information",
"required": [
"vendorID",
"deviceID",
@@ -78,13 +81,16 @@
}
},
"memoryNumber": {
- "type": "integer"
+ "type": "integer",
+ "description": "Number of PCI Component Memory Mapped register address/data pair values present in this structure."
},
"ioNumber": {
- "type": "integer"
+ "type": "integer",
+ "description": "Number of PCI Component Programmed IO register address/data pair values present in this structure."
},
"registerDataPairs": {
"type": "array",
+ "description": "An array of address/data pair values.",
"items": {
"type": "object",
"required": ["firstHalf", "secondHalf"],
diff --git a/specification/json/sections/cper-pcie.json b/specification/json/sections/cper-pcie.json
index 9c3fd1f..79bd600 100644
--- a/specification/json/sections/cper-pcie.json
+++ b/specification/json/sections/cper-pcie.json
@@ -1,6 +1,7 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
+ "description": "PCI Express Error Section",
"required": [
"validationBits",
"portType",
@@ -16,6 +17,7 @@
"properties": {
"validationBits": {
"type": "object",
+ "description": "Indicates validity of other fields in this section.",
"required": [
"portTypeValid",
"versionValid",
@@ -55,10 +57,12 @@
},
"portType": {
"type": "object",
+ "description": "PCIe Device/Port Type as defined in the PCI Express capabilities register.",
"$ref": "./common/cper-json-nvp.json"
},
"version": {
"type": "object",
+ "description": "PCIe Spec. version supported by the platform",
"required": ["major", "minor"],
"properties": {
"major": {
@@ -74,15 +78,18 @@
"required": ["commandRegister", "statusRegister"],
"properties": {
"commandRegister": {
- "type": "integer"
+ "type": "integer",
+ "description": "PCI Command Register"
},
"statusRegister": {
- "type": "integer"
+ "type": "integer",
+ "description": "PCI Status Register"
}
}
},
"deviceID": {
"type": "object",
+ "description": "PCIe Root Port PCI/bridge PCI compatible device number and bus number information to uniquely identify the root port or bridge.",
"required": [
"vendorID",
"deviceID",
@@ -125,22 +132,26 @@
}
},
"deviceSerialNumber": {
- "type": "integer"
+ "type": "integer",
+ "description": "PCIe Device Serial Number"
},
"bridgeControlStatus": {
"type": "object",
"required": ["secondaryStatusRegister", "controlRegister"],
"properties": {
"secondaryStatusRegister": {
- "type": "integer"
+ "type": "integer",
+ "description": "Bridge Secondary Status Register"
},
"controlRegister": {
- "type": "integer"
+ "type": "integer",
+ "description": "Bridge Control Register"
}
}
},
"capabilityStructure": {
"type": "object",
+ "description": "This feild reports either the PCIe 2.0 Capability structure",
"required": ["data"],
"properties": {
"data": {
@@ -150,6 +161,7 @@
},
"aerInfo": {
"type": "object",
+ "description": "PCIe Advanced Error Reporting Extended Capability Structure.",
"required": ["data"],
"properties": {
"data": {
diff --git a/specification/json/sections/cper-unknown.json b/specification/json/sections/cper-unknown.json
index abe0399..4cccf7c 100644
--- a/specification/json/sections/cper-unknown.json
+++ b/specification/json/sections/cper-unknown.json
@@ -1,6 +1,7 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
+ "description": "Unkown CPER section type. Work with vendor to determine decoding.",
"required": ["data"],
"additionalProperties": false,
"properties": {
diff --git a/specification/json/sections/cper-vtd-dmar.json b/specification/json/sections/cper-vtd-dmar.json
index aedfbf5..caa9d25 100644
--- a/specification/json/sections/cper-vtd-dmar.json
+++ b/specification/json/sections/cper-vtd-dmar.json
@@ -1,6 +1,7 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
+ "description": "VT for Directed I/O specific DMAr Error Section",
"required": [
"version",
"revision",
@@ -23,31 +24,40 @@
"additionalProperties": false,
"properties": {
"version": {
- "type": "integer"
+ "type": "integer",
+ "description": "Value of version register as defined in VT-d architecture"
},
"revision": {
- "type": "integer"
+ "type": "integer",
+ "description": "Value of revision field in VT-d specific DMA remapping reporting structure"
},
"oemID": {
- "type": "integer"
+ "type": "integer",
+ "description": "Value of OEM ID field in VT-d specific DMA remapping reporting structure"
},
"capabilityRegister": {
- "type": "integer"
+ "type": "integer",
+ "description": "Value of capability register in VT-d architecture"
},
"extendedCapabilityRegister": {
- "type": "integer"
+ "type": "integer",
+ "description": "Value of extended capability register in VT-d architecture"
},
"globalCommandRegister": {
- "type": "integer"
+ "type": "integer",
+ "description": "Value of Global Command register in VT-d architecture programmed by the operating system"
},
"globalStatusRegister": {
- "type": "integer"
+ "type": "integer",
+ "description": "Value of Global Status register in VT-d architecture"
},
"faultStatusRegister": {
- "type": "integer"
+ "type": "integer",
+ "description": "Value of Fault Status register in VT-d architecture"
},
"faultRecord": {
"type": "object",
+ "description": "Fault record as defined in the VT-d specification",
"required": [
"faultInformation",
"sourceIdentifier",
@@ -91,28 +101,36 @@
}
},
"rootEntry": {
- "type": "string"
+ "type": "string",
+ "description": "Value from the root entry table for the given requester-ID."
},
"contextEntry": {
- "type": "string"
+ "type": "string",
+ "description": "Value from the context entry table for the given requester-ID."
},
"pageTableEntry_Level6": {
- "type": "integer"
+ "type": "integer",
+ "description": "PTE entry for device virtual address in page level 6."
},
"pageTableEntry_Level5": {
- "type": "integer"
+ "type": "integer",
+ "description": "PTE entry for device virtual address in page level 5."
},
"pageTableEntry_Level4": {
- "type": "integer"
+ "type": "integer",
+ "description": "PTE entry for device virtual address in page level 4."
},
"pageTableEntry_Level3": {
- "type": "integer"
+ "type": "integer",
+ "description": "PTE entry for device virtual address in page level 3."
},
"pageTableEntry_Level2": {
- "type": "integer"
+ "type": "integer",
+ "description": "PTE entry for device virtual address in page level 2."
},
"pageTableEntry_Level1": {
- "type": "integer"
+ "type": "integer",
+ "description": "PTE entry for device virtual address in page level 1."
}
}
}