1079d581eSLawrence Tang{ 2079d581eSLawrence Tang "$id": "cper-json-section-descriptor", 3079d581eSLawrence Tang "$schema": "https://json-schema.org/draft/2020-12/schema", 4079d581eSLawrence Tang "type": "object", 5*d9835a17SAndrew Adriance "description": "Common Platform Record Section Descriptor as defined in UEFI Appendix N section 2.2", 6044afd01SJohn Chung "required": [ 7044afd01SJohn Chung "sectionOffset", 8044afd01SJohn Chung "sectionLength", 9044afd01SJohn Chung "revision", 10044afd01SJohn Chung "validationBits", 11044afd01SJohn Chung "flags", 12044afd01SJohn Chung "sectionType", 13044afd01SJohn Chung "severity" 14044afd01SJohn Chung ], 15079d581eSLawrence Tang "additionalProperties": false, 16079d581eSLawrence Tang "properties": { 17079d581eSLawrence Tang "sectionOffset": { 18*d9835a17SAndrew Adriance "type": "integer", 19*d9835a17SAndrew Adriance "description": "Offset in bytes of the section body from the base of the record header." 20079d581eSLawrence Tang }, 21079d581eSLawrence Tang "sectionLength": { 22*d9835a17SAndrew Adriance "type": "integer", 23*d9835a17SAndrew Adriance "description": "The length in bytes of the section body." 24079d581eSLawrence Tang }, 25079d581eSLawrence Tang "revision": { 26079d581eSLawrence Tang "type": "object", 27*d9835a17SAndrew Adriance "description": "This is a 2-byte field representing a major and minor version number for the error record definition in BCD format.", 28079d581eSLawrence Tang "required": ["major", "minor"], 29079d581eSLawrence Tang "properties": { 30079d581eSLawrence Tang "major": { 31079d581eSLawrence Tang "type": "integer", 32079d581eSLawrence Tang "minimum": 0 33079d581eSLawrence Tang }, 34079d581eSLawrence Tang "minor": { 35079d581eSLawrence Tang "type": "integer", 36079d581eSLawrence Tang "minimum": 0 37079d581eSLawrence Tang } 38079d581eSLawrence Tang } 39079d581eSLawrence Tang }, 40079d581eSLawrence Tang "validationBits": { 41079d581eSLawrence Tang "type": "object", 42*d9835a17SAndrew Adriance "description": "This field indicates the validity of other feilds in this descriptor.", 43079d581eSLawrence Tang "required": ["fruIDValid", "fruStringValid"], 44079d581eSLawrence Tang "properties": { 45079d581eSLawrence Tang "fruIDValid": { 46079d581eSLawrence Tang "type": "boolean" 47079d581eSLawrence Tang }, 48079d581eSLawrence Tang "fruStringValid": { 49079d581eSLawrence Tang "type": "boolean" 50079d581eSLawrence Tang } 51079d581eSLawrence Tang } 52079d581eSLawrence Tang }, 53079d581eSLawrence Tang "flags": { 54079d581eSLawrence Tang "type": "object", 55044afd01SJohn Chung "required": [ 56044afd01SJohn Chung "primary", 57044afd01SJohn Chung "containmentWarning", 58044afd01SJohn Chung "reset", 59044afd01SJohn Chung "errorThresholdExceeded", 60044afd01SJohn Chung "resourceNotAccessible", 61044afd01SJohn Chung "latentError", 62044afd01SJohn Chung "propagated", 63044afd01SJohn Chung "overflow" 64044afd01SJohn Chung ], 65079d581eSLawrence Tang "properties": { 66079d581eSLawrence Tang "primary": { 67*d9835a17SAndrew Adriance "type": "boolean", 68*d9835a17SAndrew Adriance "description": "If set, identifies the section as the section to be associated with the error condition." 69079d581eSLawrence Tang }, 70079d581eSLawrence Tang "containmentWarning": { 71*d9835a17SAndrew Adriance "type": "boolean", 72*d9835a17SAndrew Adriance "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." 73079d581eSLawrence Tang }, 74079d581eSLawrence Tang "reset": { 75*d9835a17SAndrew Adriance "type": "boolean", 76*d9835a17SAndrew Adriance "description": "If set, the component has been reset and must be re-initialized or re-enabled by the operating system prior to use." 77079d581eSLawrence Tang }, 78079d581eSLawrence Tang "errorThresholdExceeded": { 79*d9835a17SAndrew Adriance "type": "boolean", 80*d9835a17SAndrew Adriance "description": "If set, OS may choose to discontinue use of this resource." 81079d581eSLawrence Tang }, 82079d581eSLawrence Tang "resourceNotAccessible": { 83*d9835a17SAndrew Adriance "type": "boolean", 84*d9835a17SAndrew Adriance "description": "If set, the resource could not be queried for error information due to conflicts with other system software or resources." 85079d581eSLawrence Tang }, 86079d581eSLawrence Tang "latentError": { 87*d9835a17SAndrew Adriance "type": "boolean", 88*d9835a17SAndrew Adriance "description": "If set this flag indicates that action has been taken to ensure error containment" 89079d581eSLawrence Tang }, 90079d581eSLawrence Tang "propagated": { 91*d9835a17SAndrew Adriance "type": "boolean", 92*d9835a17SAndrew Adriance "description": "If set this flag indicates the section is to be associated with an error that has been propagated due to hardware poisoning." 93079d581eSLawrence Tang }, 94079d581eSLawrence Tang "overflow": { 95*d9835a17SAndrew Adriance "type": "boolean", 96*d9835a17SAndrew Adriance "description": "If set this flag indicates the firmware has detected an overflow of buffers/queues that are used to accumulate, collect, or report errors" 97079d581eSLawrence Tang } 98079d581eSLawrence Tang } 99079d581eSLawrence Tang }, 100079d581eSLawrence Tang "sectionType": { 101079d581eSLawrence Tang "type": "object", 102*d9835a17SAndrew Adriance "description": "This field holds a pre-assigned GUID value indicating that it is a section of a particular error.", 1038f793ac3SLawrence Tang "required": ["data", "type"], 104079d581eSLawrence Tang "properties": { 105079d581eSLawrence Tang "data": { 106079d581eSLawrence Tang "type": "string", 107079d581eSLawrence Tang "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{16}$" 108079d581eSLawrence Tang }, 1098f793ac3SLawrence Tang "type": { 110079d581eSLawrence Tang "type": "string" 111079d581eSLawrence Tang } 112079d581eSLawrence Tang } 113079d581eSLawrence Tang }, 114079d581eSLawrence Tang "fruID": { 115*d9835a17SAndrew Adriance "type": "string", 116*d9835a17SAndrew Adriance "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." 117079d581eSLawrence Tang }, 118079d581eSLawrence Tang "severity": { 119079d581eSLawrence Tang "type": "object", 120*d9835a17SAndrew Adriance "description": "This field indicates the severity associated with the error section.", 121079d581eSLawrence Tang "required": ["code", "name"], 122079d581eSLawrence Tang "properties": { 123079d581eSLawrence Tang "code": { 124079d581eSLawrence Tang "type": "integer", 125079d581eSLawrence Tang "minimum": 0 126079d581eSLawrence Tang }, 127079d581eSLawrence Tang "name": { 128079d581eSLawrence Tang "type": "string" 129079d581eSLawrence Tang } 130079d581eSLawrence Tang } 131079d581eSLawrence Tang }, 132079d581eSLawrence Tang "fruText": { 133*d9835a17SAndrew Adriance "type": "string", 134*d9835a17SAndrew Adriance "description": "ASCII string identifying the FRU hardware." 135079d581eSLawrence Tang } 136079d581eSLawrence Tang } 137079d581eSLawrence Tang} 138