TianoCore EDK2 master
Loading...
Searching...
No Matches
StmResourceDescriptor.h
Go to the documentation of this file.
1
12#ifndef _INTEL_STM_RESOURCE_DESCRIPTOR_H_
13#define _INTEL_STM_RESOURCE_DESCRIPTOR_H_
14
15#pragma pack (1)
16
20typedef struct {
21 UINT32 RscType;
22 UINT16 Length;
23 UINT16 ReturnStatus : 1;
24 UINT16 Reserved : 14;
25 UINT16 IgnoreResource : 1;
27
32#define END_OF_RESOURCES 0
33#define MEM_RANGE 1
34#define IO_RANGE 2
35#define MMIO_RANGE 3
36#define MACHINE_SPECIFIC_REG 4
37#define PCI_CFG_RANGE 5
38#define TRAPPED_IO_RANGE 6
39#define ALL_RESOURCES 7
40#define REGISTER_VIOLATION 8
41#define MAX_DESC_TYPE 8
43
47typedef struct {
49 UINT64 ResourceListContinuation;
51
55typedef struct {
57 UINT64 Base;
58 UINT64 Length;
59 UINT32 RWXAttributes : 3;
60 UINT32 Reserved : 29;
61 UINT32 Reserved_2;
63
68#define STM_RSC_MEM_R 0x1
69#define STM_RSC_MEM_W 0x2
70#define STM_RSC_MEM_X 0x4
72
76typedef struct {
78 UINT16 Base;
79 UINT16 Length;
80 UINT32 Reserved;
82
86typedef struct {
88 UINT64 Base;
89 UINT64 Length;
90 UINT32 RWXAttributes : 3;
91 UINT32 Reserved : 29;
92 UINT32 Reserved_2;
94
99#define STM_RSC_MMIO_R 0x1
100#define STM_RSC_MMIO_W 0x2
101#define STM_RSC_MMIO_X 0x4
103
107typedef struct {
109 UINT32 MsrIndex;
110 UINT32 KernelModeProcessing : 1;
111 UINT32 Reserved : 31;
112 UINT64 ReadMask;
113 UINT64 WriteMask;
115
120typedef struct {
124 UINT8 Type;
128 UINT8 Subtype;
132 UINT16 Length;
133 UINT8 PciFunction;
134 UINT8 PciDevice;
136
140typedef struct {
142 UINT16 RWAttributes : 2;
143 UINT16 Reserved : 14;
144 UINT16 Base;
145 UINT16 Length;
146 UINT8 OriginatingBusNumber;
147 UINT8 LastNodeIndex;
148 STM_PCI_DEVICE_PATH_NODE PciDevicePath[1];
149 // STM_PCI_DEVICE_PATH_NODE PciDevicePath[LastNodeIndex + 1];
151
156#define STM_RSC_PCI_CFG_R 0x1
157#define STM_RSC_PCI_CFG_W 0x2
159
163typedef struct {
165 UINT16 Base;
166 UINT16 Length;
167 UINT16 In : 1;
168 UINT16 Out : 1;
169 UINT16 Api : 1;
170 UINT16 Reserved1 : 13;
171 UINT16 Reserved2;
173
177typedef struct {
180
184typedef struct {
186 UINT32 RegisterType;
187 UINT32 Reserved;
188 UINT64 ReadMask;
189 UINT64 WriteMask;
191
195typedef enum {
196 StmRegisterCr0,
197 StmRegisterCr2,
198 StmRegisterCr3,
199 StmRegisterCr4,
200 StmRegisterCr8,
201 StmRegisterMax,
203
207typedef union {
208 STM_RSC_DESC_HEADER Header;
209 STM_RSC_END End;
215 STM_RSC_TRAPPED_IO_DESC TrappedIo;
217 STM_REGISTER_VIOLATION_DESC RegisterViolation;
218} STM_RSC;
219
220#pragma pack ()
221
222#endif
STM_REGISTER_VIOLATION_TYPE