blob: 878efe160513c61a555aae88a9d6f7d7cbdf151c [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"],
Ed Tanous7a531ff2025-03-14 17:06:49 -070028 "additionalProperties": false,
Lawrence Tang079d5812022-07-12 14:15:32 +010029 "properties": {
30 "major": {
31 "type": "integer",
32 "minimum": 0
33 },
34 "minor": {
35 "type": "integer",
36 "minimum": 0
37 }
38 }
39 },
Lawrence Tang079d5812022-07-12 14:15:32 +010040 "flags": {
41 "type": "object",
Ed Tanous7a531ff2025-03-14 17:06:49 -070042 "additionalProperties": false,
John Chung044afd02024-05-03 19:58:02 +080043 "required": [
44 "primary",
45 "containmentWarning",
46 "reset",
47 "errorThresholdExceeded",
48 "resourceNotAccessible",
49 "latentError",
50 "propagated",
51 "overflow"
52 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010053 "properties": {
54 "primary": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080055 "type": "boolean",
56 "description": "If set, identifies the section as the section to be associated with the error condition."
Lawrence Tang079d5812022-07-12 14:15:32 +010057 },
58 "containmentWarning": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080059 "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."
Lawrence Tang079d5812022-07-12 14:15:32 +010061 },
62 "reset": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080063 "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."
Lawrence Tang079d5812022-07-12 14:15:32 +010065 },
66 "errorThresholdExceeded": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080067 "type": "boolean",
68 "description": "If set, OS may choose to discontinue use of this resource."
Lawrence Tang079d5812022-07-12 14:15:32 +010069 },
70 "resourceNotAccessible": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080071 "type": "boolean",
72 "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 +010073 },
74 "latentError": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080075 "type": "boolean",
76 "description": "If set this flag indicates that action has been taken to ensure error containment"
Lawrence Tang079d5812022-07-12 14:15:32 +010077 },
78 "propagated": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080079 "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."
Lawrence Tang079d5812022-07-12 14:15:32 +010081 },
82 "overflow": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080083 "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"
Lawrence Tang079d5812022-07-12 14:15:32 +010085 }
86 }
87 },
88 "sectionType": {
89 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -080090 "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 +010091 "required": ["data", "type"],
Ed Tanous7a531ff2025-03-14 17:06:49 -070092 "additionalProperties": false,
Lawrence Tang079d5812022-07-12 14:15:32 +010093 "properties": {
94 "data": {
95 "type": "string",
Aushim Nagarkatti466ecd92025-02-22 20:52:50 -080096 "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 +010097 },
Lawrence Tang8f793ac2022-07-13 10:17:09 +010098 "type": {
Lawrence Tang079d5812022-07-12 14:15:32 +010099 "type": "string"
100 }
101 }
102 },
103 "fruID": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800104 "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."
Lawrence Tang079d5812022-07-12 14:15:32 +0100106 },
107 "severity": {
108 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -0800109 "description": "This field indicates the severity associated with the error section.",
Lawrence Tang079d5812022-07-12 14:15:32 +0100110 "required": ["code", "name"],
Ed Tanous7a531ff2025-03-14 17:06:49 -0700111 "additionalProperties": false,
Lawrence Tang079d5812022-07-12 14:15:32 +0100112 "properties": {
113 "code": {
114 "type": "integer",
115 "minimum": 0
116 },
117 "name": {
118 "type": "string"
119 }
120 }
121 },
122 "fruText": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800123 "type": "string",
124 "description": "ASCII string identifying the FRU hardware."
Lawrence Tang079d5812022-07-12 14:15:32 +0100125 }
126 }
John Chung044afd02024-05-03 19:58:02 +0800127}