xref: /openbmc/libcper/specification/json/cper-json-section-descriptor.json (revision a3663051b36d33dc4b102109666ee31b0c23582f)
1{
2    "$id": "cper-json-section-descriptor",
3    "$schema": "https://json-schema.org/draft/2020-12/schema",
4    "type": "object",
5    "description": "Common Platform Record Section Descriptor as defined in UEFI Appendix N section 2.2",
6    "required": [
7        "sectionOffset",
8        "sectionLength",
9        "revision",
10        "flags",
11        "sectionType",
12        "severity"
13    ],
14    "additionalProperties": false,
15    "properties": {
16        "sectionOffset": {
17            "type": "integer",
18            "description": "Offset in bytes of the section body from the base of the record header."
19        },
20        "sectionLength": {
21            "type": "integer",
22            "description": "The length in bytes of the section body."
23        },
24        "revision": {
25            "type": "object",
26            "description": "This is a 2-byte field representing a major and minor version number for the error record definition in BCD format.",
27            "required": ["major", "minor"],
28            "additionalProperties": false,
29            "properties": {
30                "major": {
31                    "type": "integer",
32                    "minimum": 0
33                },
34                "minor": {
35                    "type": "integer",
36                    "minimum": 0
37                }
38            }
39        },
40        "flags": {
41            "type": "object",
42            "additionalProperties": false,
43            "required": [
44                "primary",
45                "containmentWarning",
46                "reset",
47                "errorThresholdExceeded",
48                "resourceNotAccessible",
49                "latentError",
50                "propagated",
51                "overflow"
52            ],
53            "properties": {
54                "primary": {
55                    "type": "boolean",
56                    "description": "If set, identifies the section as the section to be associated with the error condition."
57                },
58                "containmentWarning": {
59                    "type": "boolean",
60                    "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."
61                },
62                "reset": {
63                    "type": "boolean",
64                    "description": "If set, the component has been reset and must be re-initialized or re-enabled by the operating system prior to use."
65                },
66                "errorThresholdExceeded": {
67                    "type": "boolean",
68                    "description": "If set, OS may choose to discontinue use of this resource."
69                },
70                "resourceNotAccessible": {
71                    "type": "boolean",
72                    "description": "If set, the resource could not be queried for error information due to conflicts with other system software or resources."
73                },
74                "latentError": {
75                    "type": "boolean",
76                    "description": "If set this flag indicates that action has been taken to ensure error containment"
77                },
78                "propagated": {
79                    "type": "boolean",
80                    "description": "If set this flag indicates the section is to be associated with an error that has been propagated due to hardware poisoning."
81                },
82                "overflow": {
83                    "type": "boolean",
84                    "description": "If set this flag indicates the firmware has detected an overflow of buffers/queues that are used to accumulate, collect, or report errors"
85                }
86            }
87        },
88        "sectionType": {
89            "type": "object",
90            "description": "This field holds a pre-assigned GUID value indicating that it is a section of a particular error.",
91            "required": ["data", "type"],
92            "additionalProperties": false,
93            "properties": {
94                "data": {
95                    "type": "string",
96                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
97                },
98                "type": {
99                    "type": "string"
100                }
101            }
102        },
103        "fruID": {
104            "type": "string",
105            "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."
106        },
107        "severity": {
108            "type": "object",
109            "description": "This field indicates the severity associated with the error section.",
110            "required": ["code", "name"],
111            "additionalProperties": false,
112            "properties": {
113                "code": {
114                    "type": "integer",
115                    "minimum": 0
116                },
117                "name": {
118                    "type": "string"
119                }
120            }
121        },
122        "fruText": {
123            "type": "string",
124            "description": "ASCII string identifying the FRU hardware."
125        }
126    }
127}
128