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", |
| 10 | "validationBits", |
| 11 | "flags", |
| 12 | "sectionType", |
| 13 | "severity" |
| 14 | ], |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 15 | "additionalProperties": false, |
| 16 | "properties": { |
| 17 | "sectionOffset": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 18 | "type": "integer", |
| 19 | "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] | 20 | }, |
| 21 | "sectionLength": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 22 | "type": "integer", |
| 23 | "description": "The length in bytes of the section body." |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 24 | }, |
| 25 | "revision": { |
| 26 | "type": "object", |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 27 | "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] | 28 | "required": ["major", "minor"], |
| 29 | "properties": { |
| 30 | "major": { |
| 31 | "type": "integer", |
| 32 | "minimum": 0 |
| 33 | }, |
| 34 | "minor": { |
| 35 | "type": "integer", |
| 36 | "minimum": 0 |
| 37 | } |
| 38 | } |
| 39 | }, |
| 40 | "validationBits": { |
| 41 | "type": "object", |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 42 | "description": "This field indicates the validity of other feilds in this descriptor.", |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 43 | "required": ["fruIDValid", "fruStringValid"], |
| 44 | "properties": { |
| 45 | "fruIDValid": { |
| 46 | "type": "boolean" |
| 47 | }, |
| 48 | "fruStringValid": { |
| 49 | "type": "boolean" |
| 50 | } |
| 51 | } |
| 52 | }, |
| 53 | "flags": { |
| 54 | "type": "object", |
John Chung | 044afd0 | 2024-05-03 19:58:02 +0800 | [diff] [blame] | 55 | "required": [ |
| 56 | "primary", |
| 57 | "containmentWarning", |
| 58 | "reset", |
| 59 | "errorThresholdExceeded", |
| 60 | "resourceNotAccessible", |
| 61 | "latentError", |
| 62 | "propagated", |
| 63 | "overflow" |
| 64 | ], |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 65 | "properties": { |
| 66 | "primary": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 67 | "type": "boolean", |
| 68 | "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] | 69 | }, |
| 70 | "containmentWarning": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 71 | "type": "boolean", |
| 72 | "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] | 73 | }, |
| 74 | "reset": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 75 | "type": "boolean", |
| 76 | "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] | 77 | }, |
| 78 | "errorThresholdExceeded": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 79 | "type": "boolean", |
| 80 | "description": "If set, OS may choose to discontinue use of this resource." |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 81 | }, |
| 82 | "resourceNotAccessible": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 83 | "type": "boolean", |
| 84 | "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] | 85 | }, |
| 86 | "latentError": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 87 | "type": "boolean", |
| 88 | "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] | 89 | }, |
| 90 | "propagated": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 91 | "type": "boolean", |
| 92 | "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] | 93 | }, |
| 94 | "overflow": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 95 | "type": "boolean", |
| 96 | "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] | 97 | } |
| 98 | } |
| 99 | }, |
| 100 | "sectionType": { |
| 101 | "type": "object", |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 102 | "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] | 103 | "required": ["data", "type"], |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 104 | "properties": { |
| 105 | "data": { |
| 106 | "type": "string", |
| 107 | "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{16}$" |
| 108 | }, |
Lawrence Tang | 8f793ac | 2022-07-13 10:17:09 +0100 | [diff] [blame] | 109 | "type": { |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 110 | "type": "string" |
| 111 | } |
| 112 | } |
| 113 | }, |
| 114 | "fruID": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 115 | "type": "string", |
| 116 | "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] | 117 | }, |
| 118 | "severity": { |
| 119 | "type": "object", |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 120 | "description": "This field indicates the severity associated with the error section.", |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 121 | "required": ["code", "name"], |
| 122 | "properties": { |
| 123 | "code": { |
| 124 | "type": "integer", |
| 125 | "minimum": 0 |
| 126 | }, |
| 127 | "name": { |
| 128 | "type": "string" |
| 129 | } |
| 130 | } |
| 131 | }, |
| 132 | "fruText": { |
Andrew Adriance | d9835a1 | 2024-12-05 14:41:42 -0800 | [diff] [blame^] | 133 | "type": "string", |
| 134 | "description": "ASCII string identifying the FRU hardware." |
Lawrence Tang | 079d581 | 2022-07-12 14:15:32 +0100 | [diff] [blame] | 135 | } |
| 136 | } |
John Chung | 044afd0 | 2024-05-03 19:58:02 +0800 | [diff] [blame] | 137 | } |