xref: /openbmc/libcper/specification/json/sections/cper-cxl-protocol.json (revision d9835a173ed9611090acc6d51493128a5e387385)
1{
2    "$schema": "https://json-schema.org/draft/2020-12/schema",
3    "type": "object",
4    "description": "Compute Express Link (CXL) Protocol Error Section",
5    "required": [
6        "validationBits",
7        "agentType",
8        "cxlAgentAddress",
9        "deviceID",
10        "dvsecLength",
11        "errorLogLength",
12        "cxlDVSEC",
13        "cxlErrorLog"
14    ],
15    "additionalProperties": false,
16    "properties": {
17        "validationBits": {
18            "type": "object",
19            "description": "Indiciates what fields in the section are valid",
20            "required": [
21                "cxlAgentTypeValid",
22                "cxlAgentAddressValid",
23                "deviceIDValid",
24                "deviceSerialValid",
25                "capabilityStructureValid",
26                "cxlDVSECValid",
27                "cxlErrorLogValid"
28            ],
29            "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",
55            "description": "CXL Agent Type",
56            "$ref": "./common/cper-json-nvp.json"
57        },
58        "cxlAgentAddress": {
59            "type": "object",
60            "description": "CXL Agent depedent address to uniquely identify the component",
61            "oneOf": [
62                {
63                    "$id": "cper-json-cxlagentaddress0",
64                    "type": "object",
65                    "required": [
66                        "functionNumber",
67                        "deviceNumber",
68                        "busNumber",
69                        "segmentNumber"
70                    ],
71                    "properties": {
72                        "functionNumber": {
73                            "type": "integer"
74                        },
75                        "deviceNumber": {
76                            "type": "integer"
77                        },
78                        "busNumber": {
79                            "type": "integer"
80                        },
81                        "segmentNumber": {
82                            "type": "integer"
83                        }
84                    }
85                },
86                {
87                    "$id": "cper-json-cxlagentaddress1",
88                    "type": "object",
89                    "required": ["value"],
90                    "properties": {
91                        "value": {
92                            "type": "integer"
93                        }
94                    }
95                }
96            ]
97        },
98        "deviceID": {
99            "type": "object",
100            "description": "Provides devices specific identifies.",
101            "required": [
102                "vendorID",
103                "deviceID",
104                "subsystemVendorID",
105                "subsystemDeviceID",
106                "classCode",
107                "slotNumber"
108            ],
109            "properties": {
110                "vendorID": {
111                    "type": "integer"
112                },
113                "deviceID": {
114                    "type": "integer"
115                },
116                "subsystemVendorID": {
117                    "type": "integer"
118                },
119                "subsystemDeviceID": {
120                    "type": "integer"
121                },
122                "classCode": {
123                    "type": "integer"
124                },
125                "slotNumber": {
126                    "type": "integer"
127                }
128            }
129        },
130        "deviceSerial": {
131            "type": "integer",
132            "description": "CXL Agent device serial number"
133        },
134        "capabilityStructure": {
135            "type": "string",
136            "description": "The PCIe Capability Structure of the agent"
137        },
138        "dvsecLength": {
139            "type": "integer",
140            "description": "The length in bytes of the CXL DVSEC field"
141        },
142        "errorLogLength": {
143            "type": "integer",
144            "description": "The length in bytes of the CXL Error Log field"
145        },
146        "cxlDVSEC": {
147            "type": "string",
148            "description": "Contains the DVSEC structure as defined in the CXL specification"
149        },
150        "cxlErrorLog": {
151            "type": "string",
152            "description": "This field contains a copy of the “CXL RAS Capability Structure”, as defined in the CXL Specification."
153        }
154    }
155}
156