blob: 2980dc0f21dfa0346a5b852790ad0eff4b775344 [file] [log] [blame]
Lawrence Tang079d5812022-07-12 14:15:32 +01001{
2 "$id": "cper-json-header",
3 "$schema": "https://json-schema.org/draft/2020-12/schema",
Andrew Adrianced9835a12024-12-05 14:41:42 -08004 "description": "Common Platform Record Header as defined in UEFI Appendix N section 2.1",
Lawrence Tang079d5812022-07-12 14:15:32 +01005 "type": "object",
John Chung044afd02024-05-03 19:58:02 +08006 "required": [
7 "revision",
8 "sectionCount",
9 "severity",
10 "validationBits",
11 "recordLength",
12 "creatorID",
13 "notificationType",
14 "recordID",
15 "flags",
16 "persistenceInfo"
17 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010018 "additionalProperties": false,
19 "properties": {
20 "revision": {
21 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -080022 "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 +010023 "required": ["major", "minor"],
24 "properties": {
25 "major": {
26 "type": "integer",
27 "minimum": 0
28 },
29 "minor": {
30 "type": "integer",
31 "minimum": 0
32 }
33 }
34 },
35 "sectionCount": {
36 "type": "integer",
Andrew Adrianced9835a12024-12-05 14:41:42 -080037 "description": "his field indicates the number of valid sections associated with the record, corresponding to each of the following section descriptors.",
Lawrence Tang079d5812022-07-12 14:15:32 +010038 "minimum": 0
39 },
40 "severity": {
41 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -080042 "description": "Indicates the severity of the error condition. The severity of the error record corresponds to the most severe error section.",
Lawrence Tang079d5812022-07-12 14:15:32 +010043 "required": ["name", "code"],
44 "properties": {
45 "name": {
46 "type": "string"
47 },
48 "code": {
49 "type": "integer",
50 "minimum": 0
51 }
52 }
53 },
54 "validationBits": {
55 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -080056 "description": "This field indicates the validity of other header feilds.",
John Chung044afd02024-05-03 19:58:02 +080057 "required": [
58 "platformIDValid",
59 "timestampValid",
60 "partitionIDValid"
61 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010062 "properties": {
63 "platformIDValid": {
64 "type": "boolean"
65 },
66 "timestampValid": {
67 "type": "boolean"
68 },
69 "partitionIDValid": {
70 "type": "boolean"
71 }
72 }
73 },
74 "recordLength": {
75 "type": "integer",
Andrew Adrianced9835a12024-12-05 14:41:42 -080076 "description": "Indicates the size of the actual error record, including the size of the record header, all section descriptors, and section bodies.",
Lawrence Tang079d5812022-07-12 14:15:32 +010077 "minimum": 0
78 },
79 "timestamp": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080080 "type": "string",
81 "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."
Lawrence Tang079d5812022-07-12 14:15:32 +010082 },
83 "timestampIsPrecise": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080084 "type": "boolean",
85 "description": "Timestamp is precise if this bit is set and correlates to the time of the error event."
Lawrence Tang079d5812022-07-12 14:15:32 +010086 },
87 "platformID": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080088 "type": "string",
89 "description": "This field uniquely identifies the platform with a GUID. The platform’s SMBIOS UUID should be used to populate this field."
Lawrence Tang079d5812022-07-12 14:15:32 +010090 },
91 "partitionID": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080092 "type": "string",
93 "description": "If the platform has multiple software partitions, system software may associate a GUID with the partition on which the error occurred."
Lawrence Tang079d5812022-07-12 14:15:32 +010094 },
95 "creatorID": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080096 "type": "string",
97 "description": "This field contains a GUID indicating the creator of the error record. This value may be overwritten by subsequent owners of the record."
Lawrence Tang079d5812022-07-12 14:15:32 +010098 },
99 "notificationType": {
100 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -0800101 "description": "This field holds a pre-assigned GUID value indicating the record association with an error event notification type.",
Lawrence Tang079d5812022-07-12 14:15:32 +0100102 "required": ["guid", "type"],
103 "properties": {
104 "guid": {
105 "type": "string",
106 "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{16}$"
107 },
108 "type": {
109 "type": "string"
110 }
111 }
112 },
113 "recordID": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800114 "type": "integer",
115 "description": "This value, when combined with the Creator ID, uniquely identifies the error record across other error records on a given system."
Lawrence Tang079d5812022-07-12 14:15:32 +0100116 },
117 "flags": {
118 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -0800119 "description": "Flags field contains information that describes the error record.",
Lawrence Tang079d5812022-07-12 14:15:32 +0100120 "$ref": "./common/cper-json-nvp.json"
121 },
122 "persistenceInfo": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800123 "type": "integer",
124 "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"
Lawrence Tang079d5812022-07-12 14:15:32 +0100125 }
126 }
John Chung044afd02024-05-03 19:58:02 +0800127}