1{
2    "$schema": "https://json-schema.org/draft/2020-12/schema",
3    "type": "object",
4    "description": "VT for Directed I/O specific DMAr Error Section",
5    "required": [
6        "version",
7        "revision",
8        "oemID",
9        "capabilityRegister",
10        "extendedCapabilityRegister",
11        "globalCommandRegister",
12        "globalStatusRegister",
13        "faultStatusRegister",
14        "faultRecord",
15        "rootEntry",
16        "contextEntry",
17        "pageTableEntry_Level6",
18        "pageTableEntry_Level5",
19        "pageTableEntry_Level4",
20        "pageTableEntry_Level3",
21        "pageTableEntry_Level2",
22        "pageTableEntry_Level1"
23    ],
24    "additionalProperties": false,
25    "properties": {
26        "version": {
27            "type": "integer",
28            "description": "Value of version register as defined in VT-d architecture"
29        },
30        "revision": {
31            "type": "integer",
32            "description": "Value of revision field in VT-d specific DMA remapping reporting structure"
33        },
34        "oemID": {
35            "type": "integer",
36            "description": "Value of OEM ID field in VT-d specific DMA remapping reporting structure"
37        },
38        "capabilityRegister": {
39            "type": "integer",
40            "description": "Value of capability register in VT-d architecture"
41        },
42        "extendedCapabilityRegister": {
43            "type": "integer",
44            "description": "Value of extended capability register in VT-d architecture"
45        },
46        "globalCommandRegister": {
47            "type": "integer",
48            "description": "Value of Global Command register in VT-d architecture programmed by the operating system"
49        },
50        "globalStatusRegister": {
51            "type": "integer",
52            "description": "Value of Global Status register in VT-d architecture"
53        },
54        "faultStatusRegister": {
55            "type": "integer",
56            "description": "Value of Fault Status register in VT-d architecture"
57        },
58        "faultRecord": {
59            "type": "object",
60            "description": "Fault record as defined in the VT-d specification",
61            "required": [
62                "faultInformation",
63                "sourceIdentifier",
64                "privelegeModeRequested",
65                "executePermissionRequested",
66                "pasidPresent",
67                "faultReason",
68                "pasidValue",
69                "addressType",
70                "type"
71            ],
72            "properties": {
73                "faultInformation": {
74                    "type": "integer"
75                },
76                "sourceIdentifier": {
77                    "type": "integer"
78                },
79                "privelegeModeRequested": {
80                    "type": "boolean"
81                },
82                "executePermissionRequested": {
83                    "type": "boolean"
84                },
85                "pasidPresent": {
86                    "type": "boolean"
87                },
88                "faultReason": {
89                    "type": "integer"
90                },
91                "pasidValue": {
92                    "type": "integer"
93                },
94                "addressType": {
95                    "type": "integer"
96                },
97                "type": {
98                    "type": "object",
99                    "$ref": "./common/cper-json-nvp.json"
100                }
101            }
102        },
103        "rootEntry": {
104            "type": "string",
105            "description": "Value from the root entry table for the given requester-ID."
106        },
107        "contextEntry": {
108            "type": "string",
109            "description": "Value from the context entry table for the given requester-ID."
110        },
111        "pageTableEntry_Level6": {
112            "type": "integer",
113            "description": "PTE entry for device virtual address in page level 6."
114        },
115        "pageTableEntry_Level5": {
116            "type": "integer",
117            "description": "PTE entry for device virtual address in page level 5."
118        },
119        "pageTableEntry_Level4": {
120            "type": "integer",
121            "description": "PTE entry for device virtual address in page level 4."
122        },
123        "pageTableEntry_Level3": {
124            "type": "integer",
125            "description": "PTE entry for device virtual address in page level 3."
126        },
127        "pageTableEntry_Level2": {
128            "type": "integer",
129            "description": "PTE entry for device virtual address in page level 2."
130        },
131        "pageTableEntry_Level1": {
132            "type": "integer",
133            "description": "PTE entry for device virtual address in page level 1."
134        }
135    }
136}
137