Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 1 | { |
| 2 | "$id": "cper-json-section-descriptor", |
| 3 | "$schema": "https://json-schema.org/draft/2020-12/schema", |
| 4 | "type": "object", |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 5 | "description": "Common Platform Record Section Descriptor as defined in UEFI Appendix N section 2.2", |
John Chung | 044afd0 | 2024-05-03 19:58:02 +0800 | [diff] [blame] | 6 | "required": [ |
| 7 | "sectionOffset", |
| 8 | "sectionLength", |
| 9 | "revision", |
John Chung | 044afd0 | 2024-05-03 19:58:02 +0800 | [diff] [blame] | 10 | "flags", |
| 11 | "sectionType", |
| 12 | "severity" |
| 13 | ], |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 14 | "additionalProperties": false, |
| 15 | "properties": { |
| 16 | "sectionOffset": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 17 | "type": "integer", |
| 18 | "description": "Offset in bytes of the section body from the base of the record header." |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 19 | }, |
| 20 | "sectionLength": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 21 | "type": "integer", |
| 22 | "description": "The length in bytes of the section body." |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 23 | }, |
| 24 | "revision": { |
| 25 | "type": "object", |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 26 | "description": "This is a 2-byte field representing a major and minor version number for the error record definition in BCD format.", |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 27 | "required": ["major", "minor"], |
Ed Tanous | 7a531ff | 2025-03-14 17:06:49 -0700 | [diff] [blame] | 28 | "additionalProperties": false, |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 29 | "properties": { |
| 30 | "major": { |
| 31 | "type": "integer", |
| 32 | "minimum": 0 |
| 33 | }, |
| 34 | "minor": { |
| 35 | "type": "integer", |
| 36 | "minimum": 0 |
| 37 | } |
| 38 | } |
| 39 | }, |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 40 | "flags": { |
| 41 | "type": "object", |
Ed Tanous | 7a531ff | 2025-03-14 17:06:49 -0700 | [diff] [blame] | 42 | "additionalProperties": false, |
John Chung | 044afd0 | 2024-05-03 19:58:02 +0800 | [diff] [blame] | 43 | "required": [ |
| 44 | "primary", |
| 45 | "containmentWarning", |
| 46 | "reset", |
| 47 | "errorThresholdExceeded", |
| 48 | "resourceNotAccessible", |
| 49 | "latentError", |
| 50 | "propagated", |
| 51 | "overflow" |
| 52 | ], |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 53 | "properties": { |
| 54 | "primary": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 55 | "type": "boolean", |
| 56 | "description": "If set, identifies the section as the section to be associated with the error condition." |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 57 | }, |
| 58 | "containmentWarning": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 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." |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 61 | }, |
| 62 | "reset": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 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." |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 65 | }, |
| 66 | "errorThresholdExceeded": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 67 | "type": "boolean", |
| 68 | "description": "If set, OS may choose to discontinue use of this resource." |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 69 | }, |
| 70 | "resourceNotAccessible": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 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." |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 73 | }, |
| 74 | "latentError": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 75 | "type": "boolean", |
| 76 | "description": "If set this flag indicates that action has been taken to ensure error containment" |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 77 | }, |
| 78 | "propagated": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 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." |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 81 | }, |
| 82 | "overflow": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 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" |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 85 | } |
| 86 | } |
| 87 | }, |
| 88 | "sectionType": { |
| 89 | "type": "object", |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 90 | "description": "This field holds a pre-assigned GUID value indicating that it is a section of a particular error.", |
Lawrence Tang | 8f793ac | 2022-07-13 10:17:09 +0100 | [diff] [blame] | 91 | "required": ["data", "type"], |
Ed Tanous | 7a531ff | 2025-03-14 17:06:49 -0700 | [diff] [blame] | 92 | "additionalProperties": false, |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 93 | "properties": { |
| 94 | "data": { |
| 95 | "type": "string", |
Aushim Nagarkatti | 466ecd9 | 2025-02-22 20:52:50 -0800 | [diff] [blame] | 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}$" |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 97 | }, |
Lawrence Tang | 8f793ac | 2022-07-13 10:17:09 +0100 | [diff] [blame] | 98 | "type": { |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 99 | "type": "string" |
| 100 | } |
| 101 | } |
| 102 | }, |
| 103 | "fruID": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 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." |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 106 | }, |
| 107 | "severity": { |
| 108 | "type": "object", |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 109 | "description": "This field indicates the severity associated with the error section.", |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 110 | "required": ["code", "name"], |
Ed Tanous | 7a531ff | 2025-03-14 17:06:49 -0700 | [diff] [blame] | 111 | "additionalProperties": false, |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 112 | "properties": { |
| 113 | "code": { |
| 114 | "type": "integer", |
| 115 | "minimum": 0 |
| 116 | }, |
| 117 | "name": { |
| 118 | "type": "string" |
| 119 | } |
| 120 | } |
| 121 | }, |
| 122 | "fruText": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 123 | "type": "string", |
| 124 | "description": "ASCII string identifying the FRU hardware." |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 125 | } |
| 126 | } |
John Chung | 044afd0 | 2024-05-03 19:58:02 +0800 | [diff] [blame] | 127 | } |