xref: /openbmc/libcper/specification/json/sections/cper-pci-component.json (revision d9835a173ed9611090acc6d51493128a5e387385)
1{
2    "$schema": "https://json-schema.org/draft/2020-12/schema",
3    "type": "object",
4    "required": [
5        "validationBits",
6        "errorStatus",
7        "idInfo",
8        "memoryNumber",
9        "ioNumber",
10        "registerDataPairs"
11    ],
12    "additionalProperties": false,
13    "properties": {
14        "validationBits": {
15            "type": "object",
16            "description": "Indicates which other fields are valid in the section.",
17            "required": [
18                "errorStatusValid",
19                "idInfoValid",
20                "memoryNumberValid",
21                "ioNumberValid",
22                "registerDataPairsValid"
23            ],
24            "properties": {
25                "errorStatusValid": {
26                    "type": "boolean"
27                },
28                "idInfoValid": {
29                    "type": "boolean"
30                },
31                "memoryNumberValid": {
32                    "type": "boolean"
33                },
34                "ioNumberValid": {
35                    "type": "boolean"
36                },
37                "registerDataPairsValid": {
38                    "type": "boolean"
39                }
40            }
41        },
42        "errorStatus": {
43            "type": "object",
44            "description": "PCI Component Error Status.",
45            "$ref": "./common/cper-json-error-status.json"
46        },
47        "idInfo": {
48            "type": "object",
49            "description": "Identification Information",
50            "required": [
51                "vendorID",
52                "deviceID",
53                "classCode",
54                "functionNumber",
55                "deviceNumber",
56                "busNumber",
57                "segmentNumber"
58            ],
59            "properties": {
60                "vendorID": {
61                    "type": "integer"
62                },
63                "deviceID": {
64                    "type": "integer"
65                },
66                "classCode": {
67                    "type": "integer"
68                },
69                "functionNumber": {
70                    "type": "integer"
71                },
72                "deviceNumber": {
73                    "type": "integer"
74                },
75                "busNumber": {
76                    "type": "integer"
77                },
78                "segmentNumber": {
79                    "type": "integer"
80                }
81            }
82        },
83        "memoryNumber": {
84            "type": "integer",
85            "description": "Number of PCI Component Memory Mapped register address/data pair values present in this structure."
86        },
87        "ioNumber": {
88            "type": "integer",
89            "description": "Number of PCI Component Programmed IO register address/data pair values present in this structure."
90        },
91        "registerDataPairs": {
92            "type": "array",
93            "description": "An array of address/data pair values.",
94            "items": {
95                "type": "object",
96                "required": ["firstHalf", "secondHalf"],
97                "properties": {
98                    "firstHalf": {
99                        "type": "integer"
100                    },
101                    "secondHalf": {
102                        "type": "integer"
103                    }
104                }
105            }
106        }
107    }
108}
109