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