xref: /openbmc/libcper/specification/json/sections/cper-vtd-dmar.json (revision d9835a173ed9611090acc6d51493128a5e387385)
1079d581eSLawrence Tang{
2079d581eSLawrence Tang    "$schema": "https://json-schema.org/draft/2020-12/schema",
3079d581eSLawrence Tang    "type": "object",
4*d9835a17SAndrew Adriance    "description": "VT for Directed I/O specific DMAr Error Section",
5044afd01SJohn Chung    "required": [
6044afd01SJohn Chung        "version",
7044afd01SJohn Chung        "revision",
8044afd01SJohn Chung        "oemID",
9044afd01SJohn Chung        "capabilityRegister",
10044afd01SJohn Chung        "extendedCapabilityRegister",
11044afd01SJohn Chung        "globalCommandRegister",
12044afd01SJohn Chung        "globalStatusRegister",
13044afd01SJohn Chung        "faultStatusRegister",
14044afd01SJohn Chung        "faultRecord",
15044afd01SJohn Chung        "rootEntry",
16044afd01SJohn Chung        "contextEntry",
17044afd01SJohn Chung        "pageTableEntry_Level6",
18044afd01SJohn Chung        "pageTableEntry_Level5",
19044afd01SJohn Chung        "pageTableEntry_Level4",
20044afd01SJohn Chung        "pageTableEntry_Level3",
21044afd01SJohn Chung        "pageTableEntry_Level2",
22044afd01SJohn Chung        "pageTableEntry_Level1"
23044afd01SJohn Chung    ],
24079d581eSLawrence Tang    "additionalProperties": false,
25079d581eSLawrence Tang    "properties": {
26079d581eSLawrence Tang        "version": {
27*d9835a17SAndrew Adriance            "type": "integer",
28*d9835a17SAndrew Adriance            "description": "Value of version register as defined in VT-d architecture"
29079d581eSLawrence Tang        },
30079d581eSLawrence Tang        "revision": {
31*d9835a17SAndrew Adriance            "type": "integer",
32*d9835a17SAndrew Adriance            "description": "Value of revision field in VT-d specific DMA remapping reporting structure"
33079d581eSLawrence Tang        },
34079d581eSLawrence Tang        "oemID": {
35*d9835a17SAndrew Adriance            "type": "integer",
36*d9835a17SAndrew Adriance            "description": "Value of OEM ID field in VT-d specific DMA remapping reporting structure"
37079d581eSLawrence Tang        },
38079d581eSLawrence Tang        "capabilityRegister": {
39*d9835a17SAndrew Adriance            "type": "integer",
40*d9835a17SAndrew Adriance            "description": "Value of capability register in VT-d architecture"
41079d581eSLawrence Tang        },
42079d581eSLawrence Tang        "extendedCapabilityRegister": {
43*d9835a17SAndrew Adriance            "type": "integer",
44*d9835a17SAndrew Adriance            "description": "Value of extended capability register in VT-d architecture"
45079d581eSLawrence Tang        },
46079d581eSLawrence Tang        "globalCommandRegister": {
47*d9835a17SAndrew Adriance            "type": "integer",
48*d9835a17SAndrew Adriance            "description": "Value of Global Command register in VT-d architecture programmed by the operating system"
49079d581eSLawrence Tang        },
50079d581eSLawrence Tang        "globalStatusRegister": {
51*d9835a17SAndrew Adriance            "type": "integer",
52*d9835a17SAndrew Adriance            "description": "Value of Global Status register in VT-d architecture"
53079d581eSLawrence Tang        },
54079d581eSLawrence Tang        "faultStatusRegister": {
55*d9835a17SAndrew Adriance            "type": "integer",
56*d9835a17SAndrew Adriance            "description": "Value of Fault Status register in VT-d architecture"
574237584eSLawrence Tang        },
584237584eSLawrence Tang        "faultRecord": {
59079d581eSLawrence Tang            "type": "object",
60*d9835a17SAndrew Adriance            "description": "Fault record as defined in the VT-d specification",
61044afd01SJohn Chung            "required": [
62044afd01SJohn Chung                "faultInformation",
63044afd01SJohn Chung                "sourceIdentifier",
64044afd01SJohn Chung                "privelegeModeRequested",
65044afd01SJohn Chung                "executePermissionRequested",
66044afd01SJohn Chung                "pasidPresent",
67044afd01SJohn Chung                "faultReason",
68044afd01SJohn Chung                "pasidValue",
69044afd01SJohn Chung                "addressType",
70044afd01SJohn Chung                "type"
71044afd01SJohn Chung            ],
72079d581eSLawrence Tang            "properties": {
73079d581eSLawrence Tang                "faultInformation": {
74079d581eSLawrence Tang                    "type": "integer"
75079d581eSLawrence Tang                },
76079d581eSLawrence Tang                "sourceIdentifier": {
77079d581eSLawrence Tang                    "type": "integer"
78079d581eSLawrence Tang                },
79079d581eSLawrence Tang                "privelegeModeRequested": {
80079d581eSLawrence Tang                    "type": "boolean"
81079d581eSLawrence Tang                },
82079d581eSLawrence Tang                "executePermissionRequested": {
83079d581eSLawrence Tang                    "type": "boolean"
84079d581eSLawrence Tang                },
85079d581eSLawrence Tang                "pasidPresent": {
86079d581eSLawrence Tang                    "type": "boolean"
87079d581eSLawrence Tang                },
88079d581eSLawrence Tang                "faultReason": {
89079d581eSLawrence Tang                    "type": "integer"
90079d581eSLawrence Tang                },
91079d581eSLawrence Tang                "pasidValue": {
92079d581eSLawrence Tang                    "type": "integer"
93079d581eSLawrence Tang                },
94079d581eSLawrence Tang                "addressType": {
95079d581eSLawrence Tang                    "type": "integer"
96079d581eSLawrence Tang                },
97079d581eSLawrence Tang                "type": {
98079d581eSLawrence Tang                    "type": "object",
998a2d737cSLawrence Tang                    "$ref": "./common/cper-json-nvp.json"
100079d581eSLawrence Tang                }
101079d581eSLawrence Tang            }
102079d581eSLawrence Tang        },
103079d581eSLawrence Tang        "rootEntry": {
104*d9835a17SAndrew Adriance            "type": "string",
105*d9835a17SAndrew Adriance            "description": "Value from the root entry table for the given requester-ID."
106079d581eSLawrence Tang        },
107079d581eSLawrence Tang        "contextEntry": {
108*d9835a17SAndrew Adriance            "type": "string",
109*d9835a17SAndrew Adriance            "description": "Value from the context entry table for the given requester-ID."
110079d581eSLawrence Tang        },
1114237584eSLawrence Tang        "pageTableEntry_Level6": {
112*d9835a17SAndrew Adriance            "type": "integer",
113*d9835a17SAndrew Adriance            "description": "PTE entry for device virtual address in page level 6."
114079d581eSLawrence Tang        },
1154237584eSLawrence Tang        "pageTableEntry_Level5": {
116*d9835a17SAndrew Adriance            "type": "integer",
117*d9835a17SAndrew Adriance            "description": "PTE entry for device virtual address in page level 5."
118079d581eSLawrence Tang        },
1194237584eSLawrence Tang        "pageTableEntry_Level4": {
120*d9835a17SAndrew Adriance            "type": "integer",
121*d9835a17SAndrew Adriance            "description": "PTE entry for device virtual address in page level 4."
122079d581eSLawrence Tang        },
1234237584eSLawrence Tang        "pageTableEntry_Level3": {
124*d9835a17SAndrew Adriance            "type": "integer",
125*d9835a17SAndrew Adriance            "description": "PTE entry for device virtual address in page level 3."
126079d581eSLawrence Tang        },
1274237584eSLawrence Tang        "pageTableEntry_Level2": {
128*d9835a17SAndrew Adriance            "type": "integer",
129*d9835a17SAndrew Adriance            "description": "PTE entry for device virtual address in page level 2."
130079d581eSLawrence Tang        },
1314237584eSLawrence Tang        "pageTableEntry_Level1": {
132*d9835a17SAndrew Adriance            "type": "integer",
133*d9835a17SAndrew Adriance            "description": "PTE entry for device virtual address in page level 1."
134079d581eSLawrence Tang        }
135079d581eSLawrence Tang    }
136079d581eSLawrence Tang}
137