2 STM Resource Descriptor
4 Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
7 @par Specification Reference:
8 SMI Transfer Monitor (STM) User Guide Revision 1.00
12 #ifndef _STM_RESOURCE_DESCRIPTOR_H_
13 #define _STM_RESOURCE_DESCRIPTOR_H_
18 STM Resource Descriptor Header
23 UINT16 ReturnStatus
:1;
25 UINT16 IgnoreResource
:1;
26 } STM_RSC_DESC_HEADER
;
29 Define values for the RscType field of #STM_RSC_DESC_HEADER
32 #define END_OF_RESOURCES 0
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
45 STM Resource End Descriptor
48 STM_RSC_DESC_HEADER Hdr
;
49 UINT64 ResourceListContinuation
;
53 STM Resource Memory Descriptor
56 STM_RSC_DESC_HEADER Hdr
;
59 UINT32 RWXAttributes
:3;
65 Define values for the RWXAttributes field of #STM_RSC_MEM_DESC
68 #define STM_RSC_MEM_R 0x1
69 #define STM_RSC_MEM_W 0x2
70 #define STM_RSC_MEM_X 0x4
74 STM Resource I/O Descriptor
77 STM_RSC_DESC_HEADER Hdr
;
84 STM Resource MMIO Descriptor
87 STM_RSC_DESC_HEADER Hdr
;
90 UINT32 RWXAttributes
:3;
96 Define values for the RWXAttributes field of #STM_RSC_MMIO_DESC
99 #define STM_RSC_MMIO_R 0x1
100 #define STM_RSC_MMIO_W 0x2
101 #define STM_RSC_MMIO_X 0x4
105 STM Resource MSR Descriptor
108 STM_RSC_DESC_HEADER Hdr
;
110 UINT32 KernelModeProcessing
:1;
117 STM PCI Device Path node used for the PciDevicePath field of
118 #STM_RSC_PCI_CFG_DESC
122 /// Must be 1, indicating Hardware Device Path
126 /// Must be 1, indicating PCI
130 /// sizeof(STM_PCI_DEVICE_PATH_NODE) which is 6
135 } STM_PCI_DEVICE_PATH_NODE
;
138 STM Resource PCI Configuration Descriptor
141 STM_RSC_DESC_HEADER Hdr
;
142 UINT16 RWAttributes
:2;
146 UINT8 OriginatingBusNumber
;
148 STM_PCI_DEVICE_PATH_NODE PciDevicePath
[1];
149 //STM_PCI_DEVICE_PATH_NODE PciDevicePath[LastNodeIndex + 1];
150 } STM_RSC_PCI_CFG_DESC
;
153 Define values for the RWAttributes field of #STM_RSC_PCI_CFG_DESC
156 #define STM_RSC_PCI_CFG_R 0x1
157 #define STM_RSC_PCI_CFG_W 0x2
161 STM Resource Trapped I/O Descriptor
164 STM_RSC_DESC_HEADER Hdr
;
172 } STM_RSC_TRAPPED_IO_DESC
;
175 STM Resource All Descriptor
178 STM_RSC_DESC_HEADER Hdr
;
179 } STM_RSC_ALL_RESOURCES_DESC
;
182 STM Register Volation Descriptor
185 STM_RSC_DESC_HEADER Hdr
;
190 } STM_REGISTER_VIOLATION_DESC
;
193 Enum values for the RWAttributes field of #STM_REGISTER_VIOLATION_DESC
202 } STM_REGISTER_VIOLATION_TYPE
;
205 Union of all STM resource types
208 STM_RSC_DESC_HEADER Header
;
210 STM_RSC_MEM_DESC Mem
;
212 STM_RSC_MMIO_DESC Mmio
;
213 STM_RSC_MSR_DESC Msr
;
214 STM_RSC_PCI_CFG_DESC PciCfg
;
215 STM_RSC_TRAPPED_IO_DESC TrappedIo
;
216 STM_RSC_ALL_RESOURCES_DESC All
;
217 STM_REGISTER_VIOLATION_DESC RegisterViolation
;