blob: d9c101cc130c145bda98ba1bacb624231a74c354 [file] [log] [blame]
Lawrence Tang079d5812022-07-12 14:15:32 +01001{
2 "$id": "cper-json-section-descriptor",
3 "$schema": "https://json-schema.org/draft/2020-12/schema",
4 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -08005 "description": "Common Platform Record Section Descriptor as defined in UEFI Appendix N section 2.2",
John Chung044afd02024-05-03 19:58:02 +08006 "required": [
7 "sectionOffset",
8 "sectionLength",
9 "revision",
John Chung044afd02024-05-03 19:58:02 +080010 "flags",
11 "sectionType",
12 "severity"
13 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010014 "additionalProperties": false,
15 "properties": {
16 "sectionOffset": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080017 "type": "integer",
18 "description": "Offset in bytes of the section body from the base of the record header."
Lawrence Tang079d5812022-07-12 14:15:32 +010019 },
20 "sectionLength": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080021 "type": "integer",
22 "description": "The length in bytes of the section body."
Lawrence Tang079d5812022-07-12 14:15:32 +010023 },
24 "revision": {
25 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -080026 "description": "This is a 2-byte field representing a major and minor version number for the error record definition in BCD format.",
Lawrence Tang079d5812022-07-12 14:15:32 +010027 "required": ["major", "minor"],
28 "properties": {
29 "major": {
30 "type": "integer",
31 "minimum": 0
32 },
33 "minor": {
34 "type": "integer",
35 "minimum": 0
36 }
37 }
38 },
Lawrence Tang079d5812022-07-12 14:15:32 +010039 "flags": {
40 "type": "object",
John Chung044afd02024-05-03 19:58:02 +080041 "required": [
42 "primary",
43 "containmentWarning",
44 "reset",
45 "errorThresholdExceeded",
46 "resourceNotAccessible",
47 "latentError",
48 "propagated",
49 "overflow"
50 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010051 "properties": {
52 "primary": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080053 "type": "boolean",
54 "description": "If set, identifies the section as the section to be associated with the error condition."
Lawrence Tang079d5812022-07-12 14:15:32 +010055 },
56 "containmentWarning": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080057 "type": "boolean",
58 "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."
Lawrence Tang079d5812022-07-12 14:15:32 +010059 },
60 "reset": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080061 "type": "boolean",
62 "description": "If set, the component has been reset and must be re-initialized or re-enabled by the operating system prior to use."
Lawrence Tang079d5812022-07-12 14:15:32 +010063 },
64 "errorThresholdExceeded": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080065 "type": "boolean",
66 "description": "If set, OS may choose to discontinue use of this resource."
Lawrence Tang079d5812022-07-12 14:15:32 +010067 },
68 "resourceNotAccessible": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080069 "type": "boolean",
70 "description": "If set, the resource could not be queried for error information due to conflicts with other system software or resources."
Lawrence Tang079d5812022-07-12 14:15:32 +010071 },
72 "latentError": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080073 "type": "boolean",
74 "description": "If set this flag indicates that action has been taken to ensure error containment"
Lawrence Tang079d5812022-07-12 14:15:32 +010075 },
76 "propagated": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080077 "type": "boolean",
78 "description": "If set this flag indicates the section is to be associated with an error that has been propagated due to hardware poisoning."
Lawrence Tang079d5812022-07-12 14:15:32 +010079 },
80 "overflow": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080081 "type": "boolean",
82 "description": "If set this flag indicates the firmware has detected an overflow of buffers/queues that are used to accumulate, collect, or report errors"
Lawrence Tang079d5812022-07-12 14:15:32 +010083 }
84 }
85 },
86 "sectionType": {
87 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -080088 "description": "This field holds a pre-assigned GUID value indicating that it is a section of a particular error.",
Lawrence Tang8f793ac2022-07-13 10:17:09 +010089 "required": ["data", "type"],
Lawrence Tang079d5812022-07-12 14:15:32 +010090 "properties": {
91 "data": {
92 "type": "string",
Aushim Nagarkatti466ecd92025-02-22 20:52:50 -080093 "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}$"
Lawrence Tang079d5812022-07-12 14:15:32 +010094 },
Lawrence Tang8f793ac2022-07-13 10:17:09 +010095 "type": {
Lawrence Tang079d5812022-07-12 14:15:32 +010096 "type": "string"
97 }
98 }
99 },
100 "fruID": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800101 "type": "string",
102 "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."
Lawrence Tang079d5812022-07-12 14:15:32 +0100103 },
104 "severity": {
105 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -0800106 "description": "This field indicates the severity associated with the error section.",
Lawrence Tang079d5812022-07-12 14:15:32 +0100107 "required": ["code", "name"],
108 "properties": {
109 "code": {
110 "type": "integer",
111 "minimum": 0
112 },
113 "name": {
114 "type": "string"
115 }
116 }
117 },
118 "fruText": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800119 "type": "string",
120 "description": "ASCII string identifying the FRU hardware."
Lawrence Tang079d5812022-07-12 14:15:32 +0100121 }
122 }
John Chung044afd02024-05-03 19:58:02 +0800123}