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