blob: 8d70e83cd5746e1d855445fe23b5f66f44f4145b [file] [log] [blame]
Lawrence Tang079d5812022-07-12 14:15:32 +01001{
Lawrence Tang079d5812022-07-12 14:15:32 +01002 "$schema": "https://json-schema.org/draft/2020-12/schema",
3 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -08004 "description": "Compute Express Link (CXL) Protocol Error Section",
John Chung044afd02024-05-03 19:58:02 +08005 "required": [
6 "validationBits",
7 "agentType",
8 "cxlAgentAddress",
9 "deviceID",
10 "dvsecLength",
11 "errorLogLength",
12 "cxlDVSEC",
13 "cxlErrorLog"
14 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010015 "additionalProperties": false,
16 "properties": {
17 "validationBits": {
18 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -080019 "description": "Indiciates what fields in the section are valid",
John Chung044afd02024-05-03 19:58:02 +080020 "required": [
21 "cxlAgentTypeValid",
22 "cxlAgentAddressValid",
23 "deviceIDValid",
24 "deviceSerialValid",
25 "capabilityStructureValid",
26 "cxlDVSECValid",
27 "cxlErrorLogValid"
28 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010029 "properties": {
30 "cxlAgentTypeValid": {
31 "type": "boolean"
32 },
33 "cxlAgentAddressValid": {
34 "type": "boolean"
35 },
36 "deviceIDValid": {
37 "type": "boolean"
38 },
39 "deviceSerialValid": {
40 "type": "boolean"
41 },
42 "capabilityStructureValid": {
43 "type": "boolean"
44 },
45 "cxlDVSECValid": {
46 "type": "boolean"
47 },
48 "cxlErrorLogValid": {
49 "type": "boolean"
50 }
51 }
52 },
53 "agentType": {
54 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -080055 "description": "CXL Agent Type",
Lawrence Tang8a2d7372022-07-12 16:44:49 +010056 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +010057 },
Lawrence Tang42375842022-07-19 16:25:47 +010058 "cxlAgentAddress": {
Lawrence Tang079d5812022-07-12 14:15:32 +010059 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -080060 "description": "CXL Agent depedent address to uniquely identify the component",
Lawrence Tang079d5812022-07-12 14:15:32 +010061 "oneOf": [
62 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -070063 "$id": "cper-json-cxlagentaddress0",
Lawrence Tang079d5812022-07-12 14:15:32 +010064 "type": "object",
John Chung044afd02024-05-03 19:58:02 +080065 "required": [
66 "functionNumber",
67 "deviceNumber",
68 "busNumber",
69 "segmentNumber"
70 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010071 "properties": {
John Chung044afd02024-05-03 19:58:02 +080072 "functionNumber": {
Lawrence Tang079d5812022-07-12 14:15:32 +010073 "type": "integer"
74 },
John Chung044afd02024-05-03 19:58:02 +080075 "deviceNumber": {
Lawrence Tang079d5812022-07-12 14:15:32 +010076 "type": "integer"
77 },
John Chung044afd02024-05-03 19:58:02 +080078 "busNumber": {
Lawrence Tang079d5812022-07-12 14:15:32 +010079 "type": "integer"
80 },
John Chung044afd02024-05-03 19:58:02 +080081 "segmentNumber": {
Lawrence Tang079d5812022-07-12 14:15:32 +010082 "type": "integer"
83 }
84 }
85 },
86 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -070087 "$id": "cper-json-cxlagentaddress1",
Lawrence Tang079d5812022-07-12 14:15:32 +010088 "type": "object",
89 "required": ["value"],
90 "properties": {
91 "value": {
92 "type": "integer"
93 }
94 }
95 }
96 ]
97 },
Lawrence Tang42375842022-07-19 16:25:47 +010098 "deviceID": {
99 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -0800100 "description": "Provides devices specific identifies.",
John Chung044afd02024-05-03 19:58:02 +0800101 "required": [
102 "vendorID",
103 "deviceID",
104 "subsystemVendorID",
105 "subsystemDeviceID",
106 "classCode",
107 "slotNumber"
108 ],
Lawrence Tang42375842022-07-19 16:25:47 +0100109 "properties": {
John Chung044afd02024-05-03 19:58:02 +0800110 "vendorID": {
Lawrence Tang42375842022-07-19 16:25:47 +0100111 "type": "integer"
112 },
John Chung044afd02024-05-03 19:58:02 +0800113 "deviceID": {
Lawrence Tang42375842022-07-19 16:25:47 +0100114 "type": "integer"
115 },
John Chung044afd02024-05-03 19:58:02 +0800116 "subsystemVendorID": {
Lawrence Tang42375842022-07-19 16:25:47 +0100117 "type": "integer"
118 },
John Chung044afd02024-05-03 19:58:02 +0800119 "subsystemDeviceID": {
Lawrence Tang42375842022-07-19 16:25:47 +0100120 "type": "integer"
121 },
John Chung044afd02024-05-03 19:58:02 +0800122 "classCode": {
Lawrence Tang42375842022-07-19 16:25:47 +0100123 "type": "integer"
124 },
John Chung044afd02024-05-03 19:58:02 +0800125 "slotNumber": {
Lawrence Tang42375842022-07-19 16:25:47 +0100126 "type": "integer"
127 }
128 }
129 },
John Chung044afd02024-05-03 19:58:02 +0800130 "deviceSerial": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800131 "type": "integer",
132 "description": "CXL Agent device serial number"
Lawrence Tang079d5812022-07-12 14:15:32 +0100133 },
134 "capabilityStructure": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800135 "type": "string",
136 "description": "The PCIe Capability Structure of the agent"
Lawrence Tang079d5812022-07-12 14:15:32 +0100137 },
John Chung044afd02024-05-03 19:58:02 +0800138 "dvsecLength": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800139 "type": "integer",
140 "description": "The length in bytes of the CXL DVSEC field"
Lawrence Tang079d5812022-07-12 14:15:32 +0100141 },
John Chung044afd02024-05-03 19:58:02 +0800142 "errorLogLength": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800143 "type": "integer",
144 "description": "The length in bytes of the CXL Error Log field"
Lawrence Tang079d5812022-07-12 14:15:32 +0100145 },
John Chung044afd02024-05-03 19:58:02 +0800146 "cxlDVSEC": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800147 "type": "string",
148 "description": "Contains the DVSEC structure as defined in the CXL specification"
Lawrence Tang079d5812022-07-12 14:15:32 +0100149 },
John Chung044afd02024-05-03 19:58:02 +0800150 "cxlErrorLog": {
Andrew Adrianced9835a12024-12-05 14:41:42 -0800151 "type": "string",
152 "description": "This field contains a copy of the “CXL RAS Capability Structure”, as defined in the CXL Specification."
Lawrence Tang079d5812022-07-12 14:15:32 +0100153 }
154 }
John Chung044afd02024-05-03 19:58:02 +0800155}