xref: /openbmc/libcper/specification/json/cper-json-section-descriptor.json (revision d9835a173ed9611090acc6d51493128a5e387385)
1079d581eSLawrence Tang{
2079d581eSLawrence Tang    "$id": "cper-json-section-descriptor",
3079d581eSLawrence Tang    "$schema": "https://json-schema.org/draft/2020-12/schema",
4079d581eSLawrence Tang    "type": "object",
5*d9835a17SAndrew Adriance    "description": "Common Platform Record Section Descriptor as defined in UEFI Appendix N section 2.2",
6044afd01SJohn Chung    "required": [
7044afd01SJohn Chung        "sectionOffset",
8044afd01SJohn Chung        "sectionLength",
9044afd01SJohn Chung        "revision",
10044afd01SJohn Chung        "validationBits",
11044afd01SJohn Chung        "flags",
12044afd01SJohn Chung        "sectionType",
13044afd01SJohn Chung        "severity"
14044afd01SJohn Chung    ],
15079d581eSLawrence Tang    "additionalProperties": false,
16079d581eSLawrence Tang    "properties": {
17079d581eSLawrence Tang        "sectionOffset": {
18*d9835a17SAndrew Adriance            "type": "integer",
19*d9835a17SAndrew Adriance            "description": "Offset in bytes of the section body from the base of the record header."
20079d581eSLawrence Tang        },
21079d581eSLawrence Tang        "sectionLength": {
22*d9835a17SAndrew Adriance            "type": "integer",
23*d9835a17SAndrew Adriance            "description": "The length in bytes of the section body."
24079d581eSLawrence Tang        },
25079d581eSLawrence Tang        "revision": {
26079d581eSLawrence Tang            "type": "object",
27*d9835a17SAndrew Adriance            "description": "This is a 2-byte field representing a major and minor version number for the error record definition in BCD format.",
28079d581eSLawrence Tang            "required": ["major", "minor"],
29079d581eSLawrence Tang            "properties": {
30079d581eSLawrence Tang                "major": {
31079d581eSLawrence Tang                    "type": "integer",
32079d581eSLawrence Tang                    "minimum": 0
33079d581eSLawrence Tang                },
34079d581eSLawrence Tang                "minor": {
35079d581eSLawrence Tang                    "type": "integer",
36079d581eSLawrence Tang                    "minimum": 0
37079d581eSLawrence Tang                }
38079d581eSLawrence Tang            }
39079d581eSLawrence Tang        },
40079d581eSLawrence Tang        "validationBits": {
41079d581eSLawrence Tang            "type": "object",
42*d9835a17SAndrew Adriance            "description": "This field indicates the validity of other feilds in this descriptor.",
43079d581eSLawrence Tang            "required": ["fruIDValid", "fruStringValid"],
44079d581eSLawrence Tang            "properties": {
45079d581eSLawrence Tang                "fruIDValid": {
46079d581eSLawrence Tang                    "type": "boolean"
47079d581eSLawrence Tang                },
48079d581eSLawrence Tang                "fruStringValid": {
49079d581eSLawrence Tang                    "type": "boolean"
50079d581eSLawrence Tang                }
51079d581eSLawrence Tang            }
52079d581eSLawrence Tang        },
53079d581eSLawrence Tang        "flags": {
54079d581eSLawrence Tang            "type": "object",
55044afd01SJohn Chung            "required": [
56044afd01SJohn Chung                "primary",
57044afd01SJohn Chung                "containmentWarning",
58044afd01SJohn Chung                "reset",
59044afd01SJohn Chung                "errorThresholdExceeded",
60044afd01SJohn Chung                "resourceNotAccessible",
61044afd01SJohn Chung                "latentError",
62044afd01SJohn Chung                "propagated",
63044afd01SJohn Chung                "overflow"
64044afd01SJohn Chung            ],
65079d581eSLawrence Tang            "properties": {
66079d581eSLawrence Tang                "primary": {
67*d9835a17SAndrew Adriance                    "type": "boolean",
68*d9835a17SAndrew Adriance                    "description": "If set, identifies the section as the section to be associated with the error condition."
69079d581eSLawrence Tang                },
70079d581eSLawrence Tang                "containmentWarning": {
71*d9835a17SAndrew Adriance                    "type": "boolean",
72*d9835a17SAndrew Adriance                    "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."
73079d581eSLawrence Tang                },
74079d581eSLawrence Tang                "reset": {
75*d9835a17SAndrew Adriance                    "type": "boolean",
76*d9835a17SAndrew Adriance                    "description": "If set, the component has been reset and must be re-initialized or re-enabled by the operating system prior to use."
77079d581eSLawrence Tang                },
78079d581eSLawrence Tang                "errorThresholdExceeded": {
79*d9835a17SAndrew Adriance                    "type": "boolean",
80*d9835a17SAndrew Adriance                    "description": "If set, OS may choose to discontinue use of this resource."
81079d581eSLawrence Tang                },
82079d581eSLawrence Tang                "resourceNotAccessible": {
83*d9835a17SAndrew Adriance                    "type": "boolean",
84*d9835a17SAndrew Adriance                    "description": "If set, the resource could not be queried for error information due to conflicts with other system software or resources."
85079d581eSLawrence Tang                },
86079d581eSLawrence Tang                "latentError": {
87*d9835a17SAndrew Adriance                    "type": "boolean",
88*d9835a17SAndrew Adriance                    "description": "If set this flag indicates that action has been taken to ensure error containment"
89079d581eSLawrence Tang                },
90079d581eSLawrence Tang                "propagated": {
91*d9835a17SAndrew Adriance                    "type": "boolean",
92*d9835a17SAndrew Adriance                    "description": "If set this flag indicates the section is to be associated with an error that has been propagated due to hardware poisoning."
93079d581eSLawrence Tang                },
94079d581eSLawrence Tang                "overflow": {
95*d9835a17SAndrew Adriance                    "type": "boolean",
96*d9835a17SAndrew Adriance                    "description": "If set this flag indicates the firmware has detected an overflow of buffers/queues that are used to accumulate, collect, or report errors"
97079d581eSLawrence Tang                }
98079d581eSLawrence Tang            }
99079d581eSLawrence Tang        },
100079d581eSLawrence Tang        "sectionType": {
101079d581eSLawrence Tang            "type": "object",
102*d9835a17SAndrew Adriance            "description": "This field holds a pre-assigned GUID value indicating that it is a section of a particular error.",
1038f793ac3SLawrence Tang            "required": ["data", "type"],
104079d581eSLawrence Tang            "properties": {
105079d581eSLawrence Tang                "data": {
106079d581eSLawrence Tang                    "type": "string",
107079d581eSLawrence Tang                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{16}$"
108079d581eSLawrence Tang                },
1098f793ac3SLawrence Tang                "type": {
110079d581eSLawrence Tang                    "type": "string"
111079d581eSLawrence Tang                }
112079d581eSLawrence Tang            }
113079d581eSLawrence Tang        },
114079d581eSLawrence Tang        "fruID": {
115*d9835a17SAndrew Adriance            "type": "string",
116*d9835a17SAndrew Adriance            "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."
117079d581eSLawrence Tang        },
118079d581eSLawrence Tang        "severity": {
119079d581eSLawrence Tang            "type": "object",
120*d9835a17SAndrew Adriance            "description": "This field indicates the severity associated with the error section.",
121079d581eSLawrence Tang            "required": ["code", "name"],
122079d581eSLawrence Tang            "properties": {
123079d581eSLawrence Tang                "code": {
124079d581eSLawrence Tang                    "type": "integer",
125079d581eSLawrence Tang                    "minimum": 0
126079d581eSLawrence Tang                },
127079d581eSLawrence Tang                "name": {
128079d581eSLawrence Tang                    "type": "string"
129079d581eSLawrence Tang                }
130079d581eSLawrence Tang            }
131079d581eSLawrence Tang        },
132079d581eSLawrence Tang        "fruText": {
133*d9835a17SAndrew Adriance            "type": "string",
134*d9835a17SAndrew Adriance            "description": "ASCII string identifying the FRU hardware."
135079d581eSLawrence Tang        }
136079d581eSLawrence Tang    }
137079d581eSLawrence Tang}
138