]> git.proxmox.com Git - mirror_edk2.git/blob - QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNC/QNCSmmQncn.c
QuarkSocPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / QuarkSocPkg / QuarkNorthCluster / Smm / DxeSmm / QncSmmDispatcher / QNC / QNCSmmQncn.c
1 /** @file
2 File to contain all the hardware specific stuff for the Smm QNCn dispatch protocol.
3
4 Copyright (c) 2013-2015 Intel Corporation.
5
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8
9 **/
10
11 //
12 // Include common header file for this module.
13 //
14 #include "CommonHeader.h"
15
16 #include "QNCSmmHelpers.h"
17
18 QNC_SMM_SOURCE_DESC QNCN_SOURCE_DESCS[NUM_ICHN_TYPES] = {
19
20 // QNCnMch (0)
21 NULL_SOURCE_DESC_INITIALIZER,
22
23 // QNCnPme (1)
24 NULL_SOURCE_DESC_INITIALIZER,
25
26 // QNCnRtcAlarm (2)
27 {
28 QNC_SMM_NO_FLAGS,
29 {
30 {{ACPI_ADDR_TYPE, {R_QNC_PM1BLK_PM1E}}, S_QNC_PM1BLK_PM1E, N_QNC_PM1BLK_PM1E_RTC},
31 NULL_BIT_DESC_INITIALIZER
32 },
33 {
34 {{ACPI_ADDR_TYPE, {R_QNC_PM1BLK_PM1S}}, S_QNC_PM1BLK_PM1S, N_QNC_PM1BLK_PM1S_RTC}
35 }
36 },
37
38 // QNCnRingIndicate (3)
39 NULL_SOURCE_DESC_INITIALIZER,
40
41 // QNCnAc97Wake (4)
42 NULL_SOURCE_DESC_INITIALIZER,
43
44 // QNCnSerialIrq (5)
45 NULL_SOURCE_DESC_INITIALIZER,
46
47 // QNCnY2KRollover (6)
48 NULL_SOURCE_DESC_INITIALIZER,
49
50 // QNCnTcoTimeout (7)
51 NULL_SOURCE_DESC_INITIALIZER,
52
53 // QNCnOsTco (8)
54 NULL_SOURCE_DESC_INITIALIZER,
55
56 // QNCnNmi (9)
57 NULL_SOURCE_DESC_INITIALIZER,
58
59 // QNCnIntruderDetect (10)
60 NULL_SOURCE_DESC_INITIALIZER,
61
62 // QNCnBiosWp (11)
63 {
64 QNC_SMM_CLEAR_WITH_ZERO,
65 {
66 {
67 {
68 PCI_ADDR_TYPE,
69 {
70 (
71 (PCI_BUS_NUMBER_QNC << 24) |
72 (PCI_DEVICE_NUMBER_QNC_LPC << 16) |
73 (PCI_FUNCTION_NUMBER_QNC_LPC << 8) |
74 R_QNC_LPC_BIOS_CNTL
75 )
76 }
77 },
78 S_QNC_LPC_BIOS_CNTL,
79 N_QNC_LPC_BIOS_CNTL_BLE
80 },
81 NULL_BIT_DESC_INITIALIZER
82 },
83 {
84 {
85 {
86 PCI_ADDR_TYPE,
87 {
88 (
89 (PCI_BUS_NUMBER_QNC << 24) |
90 (PCI_DEVICE_NUMBER_QNC_LPC << 16) |
91 (PCI_FUNCTION_NUMBER_QNC_LPC << 8) |
92 R_QNC_LPC_BIOS_CNTL
93 )
94 }
95 },
96 S_QNC_LPC_BIOS_CNTL,
97 N_QNC_LPC_BIOS_CNTL_BIOSWE
98 }
99 }
100 },
101
102 // QNCnMcSmi (12)
103 NULL_SOURCE_DESC_INITIALIZER,
104
105 // QNCnPmeB0 (13)
106 NULL_SOURCE_DESC_INITIALIZER,
107
108 // QNCnThrmSts (14)
109 {
110 QNC_SMM_SCI_EN_DEPENDENT,
111 {
112 {{GPE_ADDR_TYPE, {R_QNC_GPE0BLK_GPE0E}}, S_QNC_GPE0BLK_GPE0E, N_QNC_GPE0BLK_GPE0E_THRM},
113 NULL_BIT_DESC_INITIALIZER
114 },
115 {
116 {{GPE_ADDR_TYPE, {R_QNC_GPE0BLK_GPE0S}}, S_QNC_GPE0BLK_GPE0S, N_QNC_GPE0BLK_GPE0S_THRM}
117 }
118 },
119
120 // QNCnSmBus (15)
121 NULL_SOURCE_DESC_INITIALIZER,
122
123 // QNCnIntelUsb2 (16)
124 NULL_SOURCE_DESC_INITIALIZER,
125
126 // QNCnMonSmi7 (17)
127 NULL_SOURCE_DESC_INITIALIZER,
128
129 // QNCnMonSmi6 (18)
130 NULL_SOURCE_DESC_INITIALIZER,
131
132 // QNCnMonSmi5 (19)
133 NULL_SOURCE_DESC_INITIALIZER,
134
135 // QNCnMonSmi4 (20)
136 NULL_SOURCE_DESC_INITIALIZER,
137
138 // QNCnDevTrap13 (21)
139 NULL_SOURCE_DESC_INITIALIZER,
140
141 // QNCnDevTrap12 (22)
142 NULL_SOURCE_DESC_INITIALIZER,
143
144 // QNCnDevTrap11 (23)
145 NULL_SOURCE_DESC_INITIALIZER,
146
147 // QNCnDevTrap10 (24)
148 NULL_SOURCE_DESC_INITIALIZER,
149
150 // QNCnDevTrap9 (25)
151 NULL_SOURCE_DESC_INITIALIZER,
152
153 // QNCnDevTrap8 (26)
154 NULL_SOURCE_DESC_INITIALIZER,
155
156 // QNCnDevTrap7 (27)
157 NULL_SOURCE_DESC_INITIALIZER,
158
159 // QNCnDevTrap6 (28)
160 NULL_SOURCE_DESC_INITIALIZER,
161
162 // QNCnDevTrap5 (29)
163 NULL_SOURCE_DESC_INITIALIZER,
164
165 // QNCnDevTrap3 (30)
166 NULL_SOURCE_DESC_INITIALIZER,
167
168 // QNCnDevTrap2 (31)
169 NULL_SOURCE_DESC_INITIALIZER,
170
171 // QNCnDevTrap1 (32)
172 NULL_SOURCE_DESC_INITIALIZER,
173
174 // QNCnDevTrap0 (33)
175 NULL_SOURCE_DESC_INITIALIZER,
176
177 // QNCnIoTrap3 (34)
178 NULL_SOURCE_DESC_INITIALIZER,
179
180 // QNCnIoTrap2 (35)
181 NULL_SOURCE_DESC_INITIALIZER,
182
183 // QNCnIoTrap1 (36)
184 NULL_SOURCE_DESC_INITIALIZER,
185
186 // QNCnIoTrap0 (37)
187 NULL_SOURCE_DESC_INITIALIZER,
188
189 // QNCnPciExpress (38)
190 NULL_SOURCE_DESC_INITIALIZER,
191
192 // QNCnMonitor (39)
193 NULL_SOURCE_DESC_INITIALIZER,
194
195 // QNCnSpi (40)
196 NULL_SOURCE_DESC_INITIALIZER,
197
198 // QNCnQRT (41)
199 NULL_SOURCE_DESC_INITIALIZER,
200
201 // QNCnGpioUnlock (42)
202 NULL_SOURCE_DESC_INITIALIZER
203 };
204
205 VOID
206 QNCSmmQNCnClearSource(
207 QNC_SMM_SOURCE_DESC *SrcDesc
208 )
209 {
210 QNCSmmClearSource (SrcDesc);
211 }