zbao | 7d94cf9 | 2012-07-02 14:19:14 +0800 | [diff] [blame] | 1 | /* $NoKeywords:$ */ |
| 2 | /** |
| 3 | * @file |
| 4 | * |
| 5 | * FCH routine definition |
| 6 | * |
| 7 | * |
| 8 | * |
| 9 | * @xrefitem bom "File Content Label" "Release Content" |
| 10 | * @e project: AGESA |
| 11 | * @e sub-project: FCH |
| 12 | * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $ |
| 13 | * |
| 14 | */ |
| 15 | /* |
| 16 | ***************************************************************************** |
| 17 | * |
Siyuan Wang | 641f00c | 2013-06-08 11:50:55 +0800 | [diff] [blame] | 18 | * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc. |
| 19 | * All rights reserved. |
| 20 | * |
| 21 | * Redistribution and use in source and binary forms, with or without |
| 22 | * modification, are permitted provided that the following conditions are met: |
| 23 | * * Redistributions of source code must retain the above copyright |
| 24 | * notice, this list of conditions and the following disclaimer. |
| 25 | * * Redistributions in binary form must reproduce the above copyright |
| 26 | * notice, this list of conditions and the following disclaimer in the |
| 27 | * documentation and/or other materials provided with the distribution. |
| 28 | * * Neither the name of Advanced Micro Devices, Inc. nor the names of |
| 29 | * its contributors may be used to endorse or promote products derived |
| 30 | * from this software without specific prior written permission. |
| 31 | * |
| 32 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
| 33 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| 34 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| 35 | * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY |
| 36 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| 37 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| 38 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
| 39 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 40 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
| 41 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
zbao | 7d94cf9 | 2012-07-02 14:19:14 +0800 | [diff] [blame] | 42 | **************************************************************************** |
| 43 | */ |
| 44 | #ifndef _FCH_DEF_H_ |
| 45 | #define _FCH_DEF_H_ |
| 46 | |
| 47 | |
| 48 | UINT32 ReadAlink (IN UINT32 Index, IN AMD_CONFIG_PARAMS *StdHeader); |
| 49 | VOID WriteAlink (IN UINT32 Index, IN UINT32 Data, IN AMD_CONFIG_PARAMS *StdHeader); |
| 50 | VOID RwAlink (IN UINT32 Index, IN UINT32 AndMask, IN UINT32 OrMask, IN AMD_CONFIG_PARAMS *StdHeader); |
| 51 | VOID ReadMem (IN UINT32 Address, IN UINT8 OpFlag, IN VOID *ValuePtr); |
| 52 | VOID WriteMem (IN UINT32 Address, IN UINT8 OpFlag, IN VOID *ValuePtr); |
| 53 | VOID RwMem (IN UINT32 Address, IN UINT8 OpFlag, IN UINT32 Mask, IN UINT32 Data); |
| 54 | VOID ReadPci (IN UINT32 Address, IN UINT8 OpFlag, IN VOID *Value, IN AMD_CONFIG_PARAMS *StdHeader); |
Arthur Heymans | 8d3640d | 2022-05-16 12:27:36 +0200 | [diff] [blame] | 55 | VOID WritePci (IN UINT32 Address, IN UINT8 OpFlag, CONST IN VOID *Value, IN AMD_CONFIG_PARAMS *StdHeader); |
zbao | 7d94cf9 | 2012-07-02 14:19:14 +0800 | [diff] [blame] | 56 | VOID RwPci (IN UINT32 Address, IN UINT8 OpFlag, IN UINT32 Mask, IN UINT32 Data, IN AMD_CONFIG_PARAMS *StdHeader); |
| 57 | VOID ProgramPciByteTable (IN REG8_MASK* pPciByteTable, IN UINT16 dwTableSize, IN AMD_CONFIG_PARAMS *StdHeader); |
| 58 | VOID ProgramFchAcpiMmioTbl (IN ACPI_REG_WRITE *pAcpiTbl, IN AMD_CONFIG_PARAMS *StdHeader); |
Arthur Heymans | 8d3640d | 2022-05-16 12:27:36 +0200 | [diff] [blame] | 59 | VOID ProgramFchSciMapTbl (CONST IN SCI_MAP_CONTROL *pSciMapTbl, IN FCH_RESET_DATA_BLOCK *FchResetDataBlock); |
| 60 | VOID ProgramFchGpioTbl (CONST IN GPIO_CONTROL *pGpioTbl, IN FCH_RESET_DATA_BLOCK *FchResetDataBlock); |
zbao | 7d94cf9 | 2012-07-02 14:19:14 +0800 | [diff] [blame] | 61 | VOID ProgramFchSataPhyTbl (IN SATA_PHY_CONTROL *pSataPhyTbl, IN FCH_RESET_DATA_BLOCK *FchResetDataBlock); |
| 62 | VOID GetChipSysMode (IN VOID *Value, IN AMD_CONFIG_PARAMS *StdHeader); |
| 63 | BOOLEAN IsImcEnabled (IN AMD_CONFIG_PARAMS *StdHeader); |
| 64 | VOID ReadPmio (IN UINT8 Address, IN UINT8 OpFlag, IN VOID *Value, IN AMD_CONFIG_PARAMS *StdHeader); |
| 65 | VOID WritePmio (IN UINT8 Address, IN UINT8 OpFlag, IN VOID *Value, IN AMD_CONFIG_PARAMS *StdHeader); |
| 66 | VOID RwPmio (IN UINT8 Address, IN UINT8 OpFlag, IN UINT32 AndMask, IN UINT32 OrMask, IN AMD_CONFIG_PARAMS *StdHeader); |
| 67 | VOID ReadPmio2 (IN UINT8 Address, IN UINT8 OpFlag, IN VOID *Value, IN AMD_CONFIG_PARAMS *StdHeader); |
| 68 | VOID WritePmio2 (IN UINT8 Address, IN UINT8 OpFlag, IN VOID *Value, IN AMD_CONFIG_PARAMS *StdHeader); |
| 69 | VOID RwPmio2 (IN UINT8 Address, IN UINT8 OpFlag, IN UINT32 AndMask, IN UINT32 OrMask, IN AMD_CONFIG_PARAMS *StdHeader); |
| 70 | VOID ReadBiosram (IN UINT8 Address, IN UINT8 OpFlag, IN VOID *Value, IN AMD_CONFIG_PARAMS *StdHeader); |
| 71 | VOID WriteBiosram (IN UINT8 Address, IN UINT8 OpFlag, IN VOID *Value, IN AMD_CONFIG_PARAMS *StdHeader); |
| 72 | VOID GetFchAcpiMmioBase (OUT UINT32 *AcpiMmioBase, IN AMD_CONFIG_PARAMS *StdHeader); |
| 73 | VOID GetFchAcpiPmBase (OUT UINT16 *AcpiPmBase, IN AMD_CONFIG_PARAMS *StdHeader); |
| 74 | UINT8 ReadFchSleepType (IN AMD_CONFIG_PARAMS *StdHeader); |
| 75 | |
| 76 | /// |
| 77 | /// Fch Ab Routines |
| 78 | /// |
| 79 | /// Pei Phase |
| 80 | /// |
| 81 | VOID FchInitResetAb (IN VOID* FchDataPtr); |
| 82 | VOID FchProgramAbPowerOnReset (IN VOID* FchDataPtr); |
| 83 | /// |
| 84 | /// Dxe Phase |
| 85 | /// |
| 86 | VOID FchInitEnvAb (IN VOID* FchDataPtr); |
| 87 | VOID FchInitEnvAbSpecial (IN VOID* FchDataPtr); |
| 88 | VOID FchInitMidAb (IN VOID* FchDataPtr); |
| 89 | VOID FchInitLateAb (IN VOID* FchDataPtr); |
| 90 | /// |
| 91 | /// Other Public Routines |
| 92 | /// |
| 93 | VOID FchInitEnvAbLinkInit (IN VOID* FchDataPtr); |
| 94 | BOOLEAN IsUmiOneLaneGen1Mode (IN AMD_CONFIG_PARAMS *StdHeader); |
| 95 | VOID FchAbLateProgram (IN VOID* FchDataPtr); |
| 96 | |
| 97 | /// |
| 98 | /// Fch Pcie Routines |
| 99 | /// |
| 100 | /// Pei Phase |
| 101 | /// |
| 102 | VOID FchInitResetPcie (IN VOID* FchDataPtr); |
| 103 | /// |
| 104 | /// Dxe Phase |
| 105 | /// |
| 106 | VOID FchInitEnvPcie (IN VOID* FchDataPtr); |
| 107 | VOID FchInitMidPcie (IN VOID* FchDataPtr); |
| 108 | VOID FchInitLatePcie (IN VOID* FchDataPtr); |
| 109 | VOID ProgramPcieNativeMode (IN VOID* FchDataPtr); |
| 110 | |
| 111 | /// |
| 112 | /// Fch Gpp Routines |
| 113 | /// |
| 114 | /// Pei Phase |
| 115 | /// |
| 116 | VOID FchInitResetGpp (IN VOID* FchDataPtr); |
| 117 | VOID ProgramFchGppInitReset (IN FCH_GPP *FchGpp, IN AMD_CONFIG_PARAMS *StdHeader); |
| 118 | VOID FchResetPcie (IN RESET_BLOCK ResetBlock, IN RESET_OP ResetOp, IN AMD_CONFIG_PARAMS *StdHeader); |
| 119 | |
| 120 | /// |
| 121 | /// Dxe Phase |
| 122 | /// |
| 123 | VOID FchInitEnvGpp (IN VOID* FchDataPtr); |
| 124 | VOID FchInitMidGpp (IN VOID* FchDataPtr); |
| 125 | VOID FchInitLateGpp (IN VOID* FchDataPtr); |
| 126 | |
| 127 | /// |
| 128 | /// Common Gpp Routines |
| 129 | /// |
| 130 | VOID ProgramGppTogglePcieReset (IN BOOLEAN DoToggling, IN AMD_CONFIG_PARAMS *StdHeader); |
| 131 | VOID FchGppForceGen1 (IN FCH_GPP *FchGpp, IN CONST UINT8 ActivePorts, IN AMD_CONFIG_PARAMS *StdHeader); |
| 132 | VOID FchGppForceGen2 (IN FCH_GPP *FchGpp, IN CONST UINT8 ActivePorts, IN AMD_CONFIG_PARAMS *StdHeader); |
| 133 | VOID FchGppDynamicPowerSaving (IN FCH_GPP *FchGpp, IN AMD_CONFIG_PARAMS *StdHeader); |
| 134 | UINT8 GppPortPollingLtssm (IN FCH_GPP *FchGpp, IN UINT8 ActivePorts, IN BOOLEAN IsGen2, IN AMD_CONFIG_PARAMS *StdHeader); |
| 135 | VOID GppGen2Workaround (IN FCH_GPP *FchGpp, IN AMD_CONFIG_PARAMS *StdHeader); |
| 136 | UINT8 FchFindPciCap (IN UINT32 PciAddress, IN UINT8 TargetCapId, IN AMD_CONFIG_PARAMS *StdHeader); |
| 137 | VOID FchGppPortInit (IN FCH_GPP *FchGpp, IN AMD_CONFIG_PARAMS *StdHeader); |
| 138 | VOID FchGppPortInitPhaseII (IN FCH_GPP *FchGpp, IN AMD_CONFIG_PARAMS *StdHeader); |
| 139 | VOID FchGppPortInitS3Phase (IN FCH_GPP *FchGpp, IN AMD_CONFIG_PARAMS *StdHeader); |
| 140 | UINT32 GppGetFchTempBus (IN AMD_CONFIG_PARAMS *StdHeader); |
| 141 | |
| 142 | /// |
| 143 | /// |
| 144 | /// Pei Phase |
| 145 | /// |
zbao | 7598bea | 2012-08-09 15:08:20 +0800 | [diff] [blame] | 146 | VOID FchInitResetAzalia (IN VOID *FchDataPtr); |
zbao | 7d94cf9 | 2012-07-02 14:19:14 +0800 | [diff] [blame] | 147 | /// |
| 148 | /// Dxe Phase |
| 149 | /// |
zbao | 7598bea | 2012-08-09 15:08:20 +0800 | [diff] [blame] | 150 | VOID FchInitEnvAzalia (IN VOID *FchDataPtr); |
| 151 | VOID FchInitMidAzalia (IN VOID *FchDataPtr); |
| 152 | VOID FchInitLateAzalia (IN VOID *FchDataPtr); |
zbao | 7d94cf9 | 2012-07-02 14:19:14 +0800 | [diff] [blame] | 153 | |
| 154 | |
| 155 | /// |
| 156 | /// Fch GEC Routines |
| 157 | /// |
| 158 | /// Pei Phase |
| 159 | /// |
| 160 | VOID FchInitResetGec (IN VOID* FchDataPtr); |
| 161 | /// |
| 162 | /// Dxe Phase |
| 163 | /// |
| 164 | VOID FchInitEnvGec (IN VOID* FchDataPtr); |
| 165 | VOID FchInitMidGec (IN VOID* FchDataPtr); |
| 166 | VOID FchInitLateGec (IN VOID* FchDataPtr); |
| 167 | /// |
| 168 | /// Other Public Routines |
| 169 | /// |
| 170 | VOID FchInitGecController (IN VOID* FchDataPtr); |
| 171 | VOID FchSwInitGecBootRom (IN VOID* FchDataPtr); |
| 172 | |
| 173 | /// |
| 174 | /// Fch HwAcpi Routines |
| 175 | /// |
| 176 | /// Pei Phase |
| 177 | /// |
| 178 | VOID FchInitResetHwAcpiP (IN VOID *FchDataPtr); |
| 179 | VOID FchInitResetHwAcpi (IN VOID *FchDataPtr); |
| 180 | VOID ProgramFchHwAcpiResetP (IN VOID *FchDataPtr); |
| 181 | /// |
| 182 | /// Dxe Phase |
| 183 | /// |
| 184 | VOID FchInitEnvHwAcpiP (IN VOID *FchDataPtr); |
| 185 | VOID FchInitEnvHwAcpi (IN VOID *FchDataPtr); |
| 186 | VOID ProgramEnvPFchAcpiMmio (IN VOID *FchDataPtr); |
| 187 | VOID ProgramFchEnvHwAcpiPciReg (IN VOID *FchDataPtr); |
| 188 | VOID ProgramSpecificFchInitEnvAcpiMmio (IN VOID *FchDataPtr); |
| 189 | VOID ProgramFchEnvSpreadSpectrum (IN VOID *FchDataPtr); |
| 190 | VOID FchInitMidHwAcpi (IN VOID *FchDataPtr); |
| 191 | VOID FchInitLateHwAcpi (IN VOID *FchDataPtr); |
| 192 | |
| 193 | /// |
| 194 | /// Other Public Routines |
| 195 | /// |
| 196 | VOID HpetInit (IN VOID *FchDataPtr); |
| 197 | VOID C3PopupSetting (IN VOID *FchDataPtr); |
| 198 | VOID MtC1eEnable (IN VOID *FchDataPtr); |
| 199 | VOID GcpuRelatedSetting (IN VOID *FchDataPtr); |
| 200 | VOID StressResetModeLate (IN VOID *FchDataPtr); |
| 201 | |
| 202 | /// |
| 203 | /// Fch Hwm Routines |
| 204 | /// |
| 205 | /// Pei Phase |
| 206 | /// |
| 207 | VOID FchInitResetHwm (IN VOID* FchDataPtr); |
| 208 | /// |
| 209 | /// Dxe Phase |
| 210 | /// |
| 211 | VOID FchInitEnvHwm (IN VOID* FchDataPtr); |
| 212 | VOID FchInitMidHwm (IN VOID* FchDataPtr); |
| 213 | VOID FchInitLateHwm (IN VOID* FchDataPtr); |
| 214 | /// |
| 215 | /// Other Public Routines |
| 216 | /// |
| 217 | VOID HwmInitRegister (IN VOID* FchDataPtr); |
| 218 | VOID HwmProcessParameter (IN VOID* FchDataPtr); |
| 219 | VOID HwmSetRegister (IN VOID* FchDataPtr); |
| 220 | VOID HwmGetCalibrationFactor (IN VOID* FchDataPtr); |
| 221 | VOID HwmFchtsiAutoPolling (IN VOID* FchDataPtr); |
| 222 | VOID HwmGetRawData (IN VOID* FchDataPtr); |
| 223 | VOID HwmCaculate (IN VOID* FchDataPtr); |
| 224 | VOID HwmFchtsiAutoPollingOff (IN VOID* FchDataPtr); |
| 225 | VOID FchECfancontrolservice (IN VOID* FchDataPtr); |
| 226 | |
| 227 | |
| 228 | /// |
| 229 | /// Fch Ide Routines |
| 230 | /// |
| 231 | VOID FchInitEnvIde (IN VOID* FchDataPtr); |
| 232 | VOID FchInitMidIde (IN VOID* FchDataPtr); |
| 233 | VOID FchInitLateIde (IN VOID* FchDataPtr); |
| 234 | |
| 235 | |
| 236 | /// |
| 237 | /// Fch Imc Routines |
| 238 | /// |
| 239 | /// Pei Phase |
| 240 | /// |
| 241 | VOID FchInitResetImc (IN VOID *FchDataPtr); |
| 242 | VOID FchInitResetEc (IN VOID *FchDataPtr); |
| 243 | /// |
| 244 | /// Dxe Phase |
| 245 | /// |
| 246 | VOID FchInitEnvImc (IN VOID *FchDataPtr); |
| 247 | VOID FchInitMidImc (IN VOID *FchDataPtr); |
| 248 | VOID FchInitLateImc (IN VOID *FchDataPtr); |
| 249 | VOID FchInitEnvEc (IN VOID *FchDataPtr); |
| 250 | VOID FchInitMidEc (IN VOID *FchDataPtr); |
| 251 | VOID FchInitLateEc (IN VOID *FchDataPtr); |
| 252 | /// |
| 253 | /// Other Public Routines |
| 254 | /// |
| 255 | VOID EnterEcConfig (IN AMD_CONFIG_PARAMS *StdHeader); |
| 256 | VOID ExitEcConfig (IN AMD_CONFIG_PARAMS *StdHeader); |
| 257 | VOID ReadEc8 (IN UINT8 Address, IN UINT8* Value, IN AMD_CONFIG_PARAMS *StdHeader); |
| 258 | VOID WriteEc8 (IN UINT8 Address, IN UINT8* Value, IN AMD_CONFIG_PARAMS *StdHeader); |
| 259 | VOID RwEc8 (IN UINT8 Address, IN UINT8 AndMask, IN UINT8 OrMask, IN AMD_CONFIG_PARAMS *StdHeader); |
| 260 | VOID WriteECmsg (IN UINT8 Address, IN UINT8 OpFlag, IN VOID* Value, IN AMD_CONFIG_PARAMS *StdHeader); |
| 261 | VOID ReadECmsg (IN UINT8 Address, IN UINT8 OpFlag, OUT VOID* Value, IN AMD_CONFIG_PARAMS *StdHeader); |
| 262 | VOID WaitForEcLDN9MailboxCmdAck (IN AMD_CONFIG_PARAMS *StdHeader); |
| 263 | |
| 264 | VOID ImcSleep (IN VOID *FchDataPtr); |
| 265 | VOID ImcEnableSurebootTimer (IN VOID *FchDataPtr); |
| 266 | VOID ImcDisarmSurebootTimer (IN VOID *FchDataPtr); |
| 267 | VOID ImcDisableSurebootTimer (IN VOID *FchDataPtr); |
| 268 | VOID ImcWakeup (IN VOID *FchDataPtr); |
| 269 | VOID ImcIdle (IN VOID *FchDataPtr); |
| 270 | BOOLEAN ValidateImcFirmware (IN VOID *FchDataPtr); |
| 271 | VOID SoftwareToggleImcStrapping (IN VOID *FchDataPtr); |
| 272 | |
| 273 | |
| 274 | /// |
| 275 | /// Fch Ir Routines |
| 276 | /// |
| 277 | /// Dxe Phase |
| 278 | /// |
| 279 | VOID FchInitEnvIr (IN VOID* FchDataPtr); |
| 280 | VOID FchInitMidIr (IN VOID* FchDataPtr); |
| 281 | VOID FchInitLateIr (IN VOID* FchDataPtr); |
| 282 | |
| 283 | /// |
| 284 | /// Fch Pcib Routines |
| 285 | /// |
| 286 | /// Pei Phase |
| 287 | /// |
| 288 | VOID FchInitResetPcib (IN VOID* FchDataPtr); |
| 289 | VOID FchInitResetPcibPort80Enable (IN VOID* FchDataPtr); |
| 290 | |
| 291 | /// |
| 292 | /// Dxe Phase |
| 293 | /// |
| 294 | VOID FchInitEnvPcib (IN VOID* FchDataPtr); |
| 295 | VOID FchInitMidPcib (IN VOID* FchDataPtr); |
| 296 | VOID FchInitLatePcib (IN VOID* FchDataPtr); |
| 297 | |
| 298 | |
| 299 | /// |
| 300 | /// Fch SATA Routines |
| 301 | /// |
| 302 | /// Pei Phase |
| 303 | /// |
| 304 | VOID FchInitResetSata (IN VOID *FchDataPtr); |
| 305 | VOID FchInitResetSataProgram (IN VOID *FchDataPtr); |
| 306 | /// |
| 307 | /// Dxe Phase |
| 308 | /// |
| 309 | VOID FchInitMidSata (IN VOID *FchDataPtr); |
| 310 | VOID FchInitEnvSata (IN VOID *FchDataPtr); |
| 311 | VOID FchInitEnvProgramSataPciRegs (IN VOID *FchDataPtr); |
| 312 | VOID FchInitMidProgramSataRegs (IN VOID *FchDataPtr); |
| 313 | VOID FchInitLateProgramSataRegs (IN VOID *FchDataPtr); |
| 314 | |
| 315 | VOID FchInitLateSata (IN VOID *FchDataPtr); |
| 316 | VOID FchInitEnvSataIde (IN VOID *FchDataPtr); |
| 317 | VOID FchInitMidSataIde (IN VOID *FchDataPtr); |
| 318 | VOID FchInitLateSataIde (IN VOID *FchDataPtr); |
| 319 | VOID FchInitEnvSataAhci (IN VOID *FchDataPtr); |
| 320 | VOID FchInitMidSataAhci (IN VOID *FchDataPtr); |
| 321 | VOID FchInitLateSataAhci (IN VOID *FchDataPtr); |
| 322 | VOID FchInitEnvSataRaid (IN VOID *FchDataPtr); |
| 323 | VOID FchInitMidSataRaid (IN VOID *FchDataPtr); |
| 324 | VOID FchInitLateSataRaid (IN VOID *FchDataPtr); |
| 325 | VOID FchInitEnvSataIde2Ahci (IN VOID *FchDataPtr); |
| 326 | VOID FchInitMidSataIde2Ahci (IN VOID *FchDataPtr); |
| 327 | VOID FchInitLateSataIde2Ahci (IN VOID *FchDataPtr); |
| 328 | |
| 329 | VOID SataAhciSetDeviceNumMsi (IN VOID *FchDataPtr); |
| 330 | VOID SataRaidSetDeviceNumMsi (IN VOID *FchDataPtr); |
| 331 | VOID SataIde2AhciSetDeviceNumMsi (IN VOID *FchDataPtr); |
| 332 | VOID SataSetIrqIntResource (IN VOID *FchDataPtr, IN AMD_CONFIG_PARAMS *StdHeader); |
| 333 | VOID SataBar5setting (IN VOID *FchDataPtr, IN UINT32 *Bar5Ptr); |
| 334 | VOID SataEnableWriteAccess (IN AMD_CONFIG_PARAMS *StdHeader); |
| 335 | VOID SataDisableWriteAccess (IN AMD_CONFIG_PARAMS *StdHeader); |
| 336 | VOID SataSetDeviceNumMsi (IN VOID *FchDataPtr); |
| 337 | VOID FchSataSetDeviceNumMsi (IN VOID *FchDataPtr); |
| 338 | VOID ShutdownUnconnectedSataPortClock (IN VOID *FchDataPtr, IN UINT32 Bar5); |
| 339 | VOID FchShutdownUnconnectedSataPortClock (IN VOID *FchDataPtr, IN UINT32 Bar5); |
| 340 | VOID SataDriveDetection (IN VOID *FchDataPtr, IN UINT32 *Bar5Ptr); |
| 341 | VOID FchSataDriveDetection (IN VOID *FchDataPtr, IN UINT32 *Bar5Ptr); |
| 342 | VOID FchSataGpioInitial (IN VOID *FchDataPtr); |
| 343 | VOID SataBar5RegSet (IN VOID *FchDataPtr); |
| 344 | VOID SataSetPortGenMode (IN VOID *FchDataPtr); |
| 345 | VOID FchSataSetPortGenMode (IN VOID *FchDataPtr); |
| 346 | VOID FchProgramSataPhy (IN AMD_CONFIG_PARAMS *StdHeader); |
| 347 | VOID FchSataDriveFpga (IN VOID *FchDataPtr); |
| 348 | VOID FchInitEnvSataRaidProgram (IN VOID *FchDataPtr); |
| 349 | |
| 350 | /// |
| 351 | /// FCH USB Controller Public Function |
| 352 | /// |
| 353 | /// Pei Phase |
| 354 | /// |
| 355 | VOID FchInitResetUsb (IN VOID *FchDataPtr); |
| 356 | VOID FchInitResetOhci (IN VOID *FchDataPtr); |
| 357 | VOID FchInitResetEhci (IN VOID *FchDataPtr); |
| 358 | VOID FchInitResetXhci (IN VOID *FchDataPtr); |
| 359 | VOID FchInitResetXhciProgram (IN VOID *FchDataPtr); |
| 360 | /// |
| 361 | /// Dxe Phase |
| 362 | /// |
| 363 | VOID FchInitEnvUsb (IN VOID *FchDataPtr); |
| 364 | VOID FchInitMidUsb (IN VOID *FchDataPtr); |
| 365 | VOID FchInitLateUsb (IN VOID *FchDataPtr); |
| 366 | VOID FchInitEnvUsbOhci (IN VOID *FchDataPtr); |
| 367 | VOID FchInitMidUsbOhci (IN VOID *FchDataPtr); |
| 368 | VOID FchInitLateUsbOhci (IN VOID *FchDataPtr); |
| 369 | VOID FchInitEnvUsbEhci (IN VOID *FchDataPtr); |
| 370 | VOID FchInitMidUsbEhci (IN VOID *FchDataPtr); |
| 371 | VOID FchInitLateUsbEhci (IN VOID *FchDataPtr); |
| 372 | VOID FchInitEnvUsbXhci (IN VOID *FchDataPtr); |
| 373 | VOID FchInitMidUsbXhci (IN VOID *FchDataPtr); |
| 374 | VOID FchInitLateUsbXhci (IN VOID *FchDataPtr); |
| 375 | VOID FchInitMidUsbOhci1 (IN VOID *FchDataPtr); |
| 376 | VOID FchInitMidUsbOhci2 (IN VOID *FchDataPtr); |
| 377 | VOID FchInitMidUsbOhci3 (IN VOID *FchDataPtr); |
| 378 | VOID FchInitMidUsbOhci4 (IN VOID *FchDataPtr); |
| 379 | VOID FchInitMidUsbEhci1 (IN FCH_DATA_BLOCK *FchDataPtr); |
| 380 | VOID FchInitMidUsbEhci2 (IN FCH_DATA_BLOCK *FchDataPtr); |
| 381 | VOID FchInitMidUsbEhci3 (IN FCH_DATA_BLOCK *FchDataPtr); |
| 382 | /// |
| 383 | /// Other Public Routines |
| 384 | /// |
| 385 | VOID FchSetUsbEnableReg (IN FCH_DATA_BLOCK *FchDataPtr); |
| 386 | VOID FchOhciInitAfterPciInit (IN UINT32 Value, IN FCH_DATA_BLOCK* FchDataPtr); |
| 387 | VOID FchEhciInitAfterPciInit (IN UINT32 Value, IN FCH_DATA_BLOCK* FchDataPtr); |
| 388 | VOID FchXhciInitBeforePciInit (IN FCH_DATA_BLOCK* FchDataPtr); |
| 389 | VOID FchXhciInitIndirectReg (IN AMD_CONFIG_PARAMS *StdHeader); |
| 390 | VOID FchInitLateUsbXhciProgram (IN VOID *FchDataPtr); |
| 391 | VOID FchXhciPowerSavingProgram (IN FCH_DATA_BLOCK* FchDataPtr); |
| 392 | |
| 393 | |
| 394 | |
| 395 | /// |
| 396 | /// Fch Sd Routines |
| 397 | /// |
| 398 | VOID FchInitEnvSd (IN VOID *FchDataPtr); |
| 399 | VOID FchInitMidSd (IN VOID *FchDataPtr); |
| 400 | VOID FchInitLateSd (IN VOID *FchDataPtr); |
| 401 | |
| 402 | /// |
| 403 | /// Other Public Routines |
| 404 | /// |
| 405 | |
| 406 | VOID FchInitEnvSdProgram (IN VOID *FchDataPtr); |
| 407 | |
| 408 | /// |
| 409 | /// Fch Spi Routines |
| 410 | /// |
| 411 | /// Pei Phase |
| 412 | /// |
| 413 | VOID FchInitResetSpi (IN VOID *FchDataPtr); |
| 414 | VOID FchInitResetLpc (IN VOID *FchDataPtr); |
| 415 | VOID FchInitResetLpcProgram (IN VOID *FchDataPtr); |
| 416 | /// |
| 417 | /// Dxe Phase |
| 418 | /// |
| 419 | VOID FchInitEnvSpi (IN VOID *FchDataPtr); |
| 420 | VOID FchInitMidSpi (IN VOID *FchDataPtr); |
| 421 | VOID FchInitLateSpi (IN VOID *FchDataPtr); |
| 422 | VOID FchInitEnvLpc (IN VOID *FchDataPtr); |
| 423 | VOID FchInitMidLpc (IN VOID *FchDataPtr); |
| 424 | VOID FchInitLateLpc (IN VOID *FchDataPtr); |
| 425 | VOID FchInitEnvLpcProgram (IN VOID *FchDataPtr); |
| 426 | /// |
| 427 | /// Other Public Routines |
| 428 | /// |
| 429 | VOID FchSpiUnlock (IN VOID *FchDataPtr); |
| 430 | VOID FchSpiLock (IN VOID *FchDataPtr); |
| 431 | |
| 432 | /*--------------------------- Documentation Pages ---------------------------*/ |
| 433 | VOID FchStall (IN UINT32 uSec, IN AMD_CONFIG_PARAMS *StdHeader); |
| 434 | VOID CimFchStall (IN UINT32 uSec, IN AMD_CONFIG_PARAMS *StdHeader); |
| 435 | VOID FchPciReset (IN AMD_CONFIG_PARAMS *StdHeader); |
| 436 | VOID OutPort80 (IN UINT32 pcode, IN AMD_CONFIG_PARAMS *StdHeader); |
| 437 | VOID OutPort1080 (IN UINT32 pcode, IN AMD_CONFIG_PARAMS *StdHeader); |
| 438 | VOID GetEfuseStatus (IN VOID* Value, IN AMD_CONFIG_PARAMS *StdHeader); |
| 439 | VOID TurnOffCG2 (OUT VOID); |
| 440 | VOID BackUpCG2 (OUT VOID); |
| 441 | VOID FchCopyMem (IN VOID* pDest, IN VOID* pSource, IN UINTN Length); |
| 442 | VOID* GetRomSigPtr (IN UINTN* RomSigPtr, IN AMD_CONFIG_PARAMS *StdHeader); |
| 443 | VOID RwXhciIndReg (IN UINT32 Index, IN UINT32 AndMask, IN UINT32 OrMask, IN AMD_CONFIG_PARAMS *StdHeader); |
| 444 | VOID RwXhci0IndReg (IN UINT32 Index, IN UINT32 AndMask, IN UINT32 OrMask, IN AMD_CONFIG_PARAMS *StdHeader); |
| 445 | VOID RwXhci1IndReg (IN UINT32 Index, IN UINT32 AndMask, IN UINT32 OrMask, IN AMD_CONFIG_PARAMS *StdHeader); |
| 446 | VOID AcLossControl (IN UINT8 AcLossControlValue); |
| 447 | VOID FchVgaInit (OUT VOID); |
| 448 | VOID RecordFchConfigPtr (IN UINT32 FchConfigPtr); |
| 449 | VOID ValidateFchVariant (IN VOID *FchDataPtr); |
| 450 | VOID RecordSmiStatus (IN AMD_CONFIG_PARAMS *StdHeader); |
| 451 | BOOLEAN IsGCPU (IN VOID *FchDataPtr); |
| 452 | BOOLEAN IsExternalClockMode (IN VOID *FchDataPtr); |
| 453 | BOOLEAN IsLpcRom (OUT VOID); |
| 454 | VOID SbSleepTrapControl (IN BOOLEAN SleepTrap); |
| 455 | |
| 456 | #endif |