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"], |
| 28 | "properties": { |
| 29 | "major": { |
| 30 | "type": "integer", |
| 31 | "minimum": 0 |
| 32 | }, |
| 33 | "minor": { |
| 34 | "type": "integer", |
| 35 | "minimum": 0 |
| 36 | } |
| 37 | } |
| 38 | }, |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 39 | "flags": { |
| 40 | "type": "object", |
John Chung | 044afd0 | 2024-05-03 19:58:02 +0800 | [diff] [blame] | 41 | "required": [ |
| 42 | "primary", |
| 43 | "containmentWarning", |
| 44 | "reset", |
| 45 | "errorThresholdExceeded", |
| 46 | "resourceNotAccessible", |
| 47 | "latentError", |
| 48 | "propagated", |
| 49 | "overflow" |
| 50 | ], |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 51 | "properties": { |
| 52 | "primary": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 53 | "type": "boolean", |
| 54 | "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] | 55 | }, |
| 56 | "containmentWarning": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 57 | "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 Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 59 | }, |
| 60 | "reset": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 61 | "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 Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 63 | }, |
| 64 | "errorThresholdExceeded": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 65 | "type": "boolean", |
| 66 | "description": "If set, OS may choose to discontinue use of this resource." |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 67 | }, |
| 68 | "resourceNotAccessible": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 69 | "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 Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 71 | }, |
| 72 | "latentError": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 73 | "type": "boolean", |
| 74 | "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] | 75 | }, |
| 76 | "propagated": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 77 | "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 Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 79 | }, |
| 80 | "overflow": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 81 | "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 Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 83 | } |
| 84 | } |
| 85 | }, |
| 86 | "sectionType": { |
| 87 | "type": "object", |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 88 | "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] | 89 | "required": ["data", "type"], |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 90 | "properties": { |
| 91 | "data": { |
| 92 | "type": "string", |
Aushim Nagarkatti | 466ecd9 | 2025-02-22 20:52:50 -0800 | [diff] [blame] | 93 | "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] | 94 | }, |
Lawrence Tang | 8f793ac | 2022-07-13 10:17:09 +0100 | [diff] [blame] | 95 | "type": { |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 96 | "type": "string" |
| 97 | } |
| 98 | } |
| 99 | }, |
| 100 | "fruID": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 101 | "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 Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 103 | }, |
| 104 | "severity": { |
| 105 | "type": "object", |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 106 | "description": "This field indicates the severity associated with the error section.", |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 107 | "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 Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame] | 119 | "type": "string", |
| 120 | "description": "ASCII string identifying the FRU hardware." |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 121 | } |
| 122 | } |
John Chung | 044afd0 | 2024-05-03 19:58:02 +0800 | [diff] [blame] | 123 | } |