diff options
Diffstat (limited to 'src/vendorcode/amd/cimx/sb900/EcFanLib.c')
-rw-r--r-- | src/vendorcode/amd/cimx/sb900/EcFanLib.c | 285 |
1 files changed, 0 insertions, 285 deletions
diff --git a/src/vendorcode/amd/cimx/sb900/EcFanLib.c b/src/vendorcode/amd/cimx/sb900/EcFanLib.c deleted file mode 100644 index 57feae17bd..0000000000 --- a/src/vendorcode/amd/cimx/sb900/EcFanLib.c +++ /dev/null @@ -1,285 +0,0 @@ -/** - * @file - * - * Southbridge EC IO access common routine - * - */ -/*;******************************************************************************** -; -; Copyright (c) 2011, Advanced Micro Devices, Inc. -; All rights reserved. -; -; Redistribution and use in source and binary forms, with or without -; modification, are permitted provided that the following conditions are met: -; * Redistributions of source code must retain the above copyright -; notice, this list of conditions and the following disclaimer. -; * Redistributions in binary form must reproduce the above copyright -; notice, this list of conditions and the following disclaimer in the -; documentation and/or other materials provided with the distribution. -; * Neither the name of Advanced Micro Devices, Inc. nor the names of -; its contributors may be used to endorse or promote products derived -; from this software without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -; DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY -; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -; ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -; -;*********************************************************************************/ - -#include "SbPlatform.h" -#include "cbtypes.h" -#include "AmdSbLib.h" - -VOID -ReadECmsg ( - IN UINT8 Address, - IN UINT8 OpFlag, - OUT VOID* Value - ) -{ - UINT8 i; - - OpFlag = OpFlag & 0x7f; - if (OpFlag == 0x02) OpFlag = 0x03; - WriteIo8((UINT16) (0x3E), Address); // EC_LDN9_MAILBOX_BASE_ADDRESS - i = ReadIo8((UINT16) (0x3F)); // EC_LDN9_MAILBOX_BASE_ADDRESS - *((UINT8*) (Value)) = i; -} - - -VOID -WriteECmsg ( - IN UINT8 Address, - IN UINT8 OpFlag, - IN VOID* Value - ) -{ - UINT8 i; - - OpFlag = OpFlag & 0x7f; - if (OpFlag == 0x02) OpFlag = 0x03; - WriteIo8(0x3E, Address); // EC_LDN9_MAILBOX_BASE_ADDRESS - i = *(UINT8*)Value; - WriteIo8(0x3F, i); // EC_LDN9_MAILBOX_BASE_ADDRESS -} - -VOID -WaitForEcLDN9MailboxCmdAck ( - VOID - ) -{ - UINT8 Msgdata; - UINT16 Delaytime; - Msgdata = 0; - for (Delaytime = 0; Delaytime <= 500; Delaytime++) { - ReadECmsg (MSG_REG0, AccWidthUint8, &Msgdata); - if ( Msgdata == 0xfa) { - break; - } - cimSbStall (1000); // Wait for 1ms - } -} - -/** - * imcDisableSurebootTimer - IMC Disable Sureboot Timer. - * - * - * @param[in] pConfig Southbridge configuration structure pointer. - * - */ -VOID -imcDisableSurebootTimer ( - IN AMDSBCFG* pConfig - ) -{ - UINT8 Msgdata; - - if (!(isImcEnabled ()) ) { - return; //IMC is not enabled - } - Msgdata = 0x00; - WriteECmsg (MSG_REG0, AccWidthUint8, &Msgdata); - Msgdata = 0x01; - WriteECmsg (MSG_REG1, AccWidthUint8, &Msgdata); - Msgdata = 0x00; - WriteECmsg (MSG_REG2, AccWidthUint8, &Msgdata); - Msgdata = 0x94; - WriteECmsg (MSG_SYS_TO_IMC, AccWidthUint8, &Msgdata); - WaitForEcLDN9MailboxCmdAck (); -} - -/** - * imcDisarmSurebootTimer - IMC Disarm Sureboot Timer. - * - * - * @param[in] pConfig Southbridge configuration structure pointer. - * - */ -VOID -imcDisarmSurebootTimer ( - IN AMDSBCFG* pConfig - ) -{ - imcDisableSurebootTimer (pConfig); - pConfig->imc.imcSureBootTimer = 0; -} - -/** - * imcEnableSurebootTimer - IMC Enable Sureboot Timer. - * - * - * @param[in] pConfig Southbridge configuration structure pointer. - * - */ -VOID -imcEnableSurebootTimer ( - IN AMDSBCFG* pConfig - ) -{ - UINT8 Msgdata; - - imcDisableSurebootTimer (pConfig); - - Msgdata = 0x00; - if (!(isImcEnabled ()) || (pConfig->imc.imcSureBootTimer == 0)) { - return; //IMC is not enabled - } - WriteECmsg (MSG_REG0, AccWidthUint8, &Msgdata); - Msgdata = 0x01; - WriteECmsg (MSG_REG1, AccWidthUint8, &Msgdata); - Msgdata = ( (pConfig->imc.imcSureBootTimer) << 6) -1; - WriteECmsg (MSG_REG2, AccWidthUint8, &Msgdata); - Msgdata = 0x94; - WriteECmsg (MSG_SYS_TO_IMC, AccWidthUint8, &Msgdata); - WaitForEcLDN9MailboxCmdAck (); -} - -/** - * imcSleep - IMC Sleep. - * - * - * @param[in] pConfig Southbridge configuration structure pointer. - * - */ -VOID -imcSleep ( - IN AMDSBCFG* pConfig - ) -{ - UINT8 Msgdata; - - if (!(isImcEnabled ()) ) { - return; //IMC is not enabled - } - Msgdata = 0x00; - WriteECmsg (MSG_REG0, AccWidthUint8, &Msgdata); - Msgdata = 0xB4; - WriteECmsg (MSG_REG1, AccWidthUint8, &Msgdata); - Msgdata = 0x00; - WriteECmsg (MSG_REG2, AccWidthUint8, &Msgdata); - Msgdata = 0x96; - WriteECmsg (MSG_SYS_TO_IMC, AccWidthUint8, &Msgdata); - WaitForEcLDN9MailboxCmdAck (); -} - -/** - * imcWakeup - IMC Wakeup. - * - * - * @param[in] pConfig Southbridge configuration structure pointer. - * - */ -VOID -imcWakeup ( - IN AMDSBCFG* pConfig - ) -{ - UINT8 Msgdata; - - if (!(isImcEnabled ()) ) { - return; //IMC is not enabled - } - Msgdata = 0x00; - WriteECmsg (MSG_REG0, AccWidthUint8, &Msgdata); - Msgdata = 0xB5; - WriteECmsg (MSG_REG1, AccWidthUint8, &Msgdata); - Msgdata = 0x00; - WriteECmsg (MSG_REG2, AccWidthUint8, &Msgdata); - Msgdata = 0x96; - WriteECmsg (MSG_SYS_TO_IMC, AccWidthUint8, &Msgdata); - WaitForEcLDN9MailboxCmdAck (); -} - -/** - * imcIdle - IMC Idle. - * - * - * @param[in] pConfig Southbridge configuration structure pointer. - * - */ -VOID -imcIdle ( - IN AMDSBCFG* pConfig - ) -{ - UINT8 Msgdata; - - if (!(isImcEnabled ()) ) { - return; //IMC is not enabled - } - Msgdata = 0x00; - WriteECmsg (MSG_REG0, AccWidthUint8, &Msgdata); - Msgdata = 0x01; - WriteECmsg (MSG_REG1, AccWidthUint8, &Msgdata); - Msgdata = 0x00; - WriteECmsg (MSG_REG2, AccWidthUint8, &Msgdata); - Msgdata = 0x98; - WriteECmsg (MSG_SYS_TO_IMC, AccWidthUint8, &Msgdata); - WaitForEcLDN9MailboxCmdAck (); -} - -VOID -imcThermalZoneEnable ( - IN AMDSBCFG* pConfig - ) -{ - UINT8 Msgdata; - UINT8 ZoneNum; - BOOLEAN IsSendEcMsg; - - if (!(isImcEnabled ()) ) { - return; //IMC is not enabled - } - - for ( ZoneNum = 0; ZoneNum < 4; ZoneNum++ ) { - IsSendEcMsg = IsZoneFuncEnable (pConfig->Pecstruct.IMCFUNSupportBitMap, 0, ZoneNum); - if (IsSendEcMsg) { - Msgdata = 0x00; - WriteECmsg (MSG_REG0, AccWidthUint8, &Msgdata); - Msgdata = ZoneNum; - WriteECmsg (MSG_REG1, AccWidthUint8, &Msgdata); - Msgdata = 0x80; - WriteECmsg (MSG_SYS_TO_IMC, AccWidthUint8, &Msgdata); - WaitForEcLDN9MailboxCmdAck (); - - Msgdata = 0x00; - WriteECmsg (MSG_REG0, AccWidthUint8, &Msgdata); - Msgdata = ZoneNum; - WriteECmsg (MSG_REG1, AccWidthUint8, &Msgdata); - ReadECmsg (MSG_REG2, AccWidthUint8, &Msgdata); - Msgdata |= BIT0; - WriteECmsg (MSG_REG2, AccWidthUint8, &Msgdata); - Msgdata = 0x81; - WriteECmsg (MSG_SYS_TO_IMC, AccWidthUint8, &Msgdata); - WaitForEcLDN9MailboxCmdAck (); - } - } -} - |