blob: 8589adcfd239936e64b156c56d644e67a5ddfe26 [file] [log] [blame]
/**
* @file
*
*
*
*
*
* @xrefitem bom "File Content Label" "Release Content"
* @e project: CIMx-NB
* @e sub-project:
* @e \$Revision:$ @e \$Date:$
*
*/
/*****************************************************************************
*
* Copyright (C) 2012 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.
*
*
***************************************************************************/
#ifndef _NBDEF_H_
#define _NBDEF_H_
#pragma pack (push, 1)
AGESA_STATUS
AmdPowerOnResetInit (
IN OUT AMD_NB_CONFIG_BLOCK *ConfigPtr
);
AGESA_STATUS
NbPowerOnResetInit (
IN AMD_NB_CONFIG *NbConfigPtr
);
AGESA_STATUS
AmdHtInit (
IN OUT AMD_NB_CONFIG_BLOCK *ConfigPtr
);
AGESA_STATUS
NbHtInit (
IN OUT AMD_NB_CONFIG *NbConfigPtr
);
AGESA_STATUS
AmdEarlyPostInit (
IN OUT AMD_NB_CONFIG_BLOCK *ConfigPtr
);
AGESA_STATUS
NbEarlyPostInit (
IN OUT AMD_NB_CONFIG *NbConfigPtr
);
AGESA_STATUS
AmdMidPostInit (
IN OUT AMD_NB_CONFIG_BLOCK *ConfigPtr
);
AGESA_STATUS
NbMidPostInit (
IN OUT AMD_NB_CONFIG *NbConfigPtr
);
AGESA_STATUS
AmdLatePostInit (
IN OUT AMD_NB_CONFIG_BLOCK *ConfigPtr
);
AGESA_STATUS
NbLatePostInit (
IN OUT AMD_NB_CONFIG *NbConfigPtr
);
AGESA_STATUS
AmdPcieEarlyInit (
IN OUT AMD_NB_CONFIG_BLOCK *ConfigPtr
);
AGESA_STATUS
PcieEarlyInit (
IN OUT AMD_NB_CONFIG *NbConfigPtr
);
AGESA_STATUS
AmdS3Init (
IN OUT AMD_NB_CONFIG_BLOCK *ConfigPtr
);
AGESA_STATUS
AmdS3InitIommu (
IN OUT AMD_NB_CONFIG_BLOCK *ConfigPtr
);
AGESA_STATUS
NbS3Init (
IN OUT AMD_NB_CONFIG *NbConfigPtr
);
AGESA_STATUS
AmdPcieLateInit (
IN AMD_NB_CONFIG_BLOCK *ConfigPtr
);
AGESA_STATUS
AmdPcieLateInitWa (
IN AMD_NB_CONFIG_BLOCK *ConfigPtr
);
AGESA_STATUS
AmdPcieValidatePortState (
IN AMD_NB_CONFIG_BLOCK *ConfigPtr
);
AGESA_STATUS
PcieLateInit (
IN AMD_NB_CONFIG *NbConfigPtr
);
AGESA_STATUS
PcieLateInitWa (
IN AMD_NB_CONFIG *NbConfigPtr
);
AGESA_STATUS
PcieValidatePortState (
IN AMD_NB_CONFIG *NbConfigPtr
);
AGESA_STATUS
PcieLateInitPorts (
IN AMD_NB_CONFIG *NbConfigPtr
);
AGESA_STATUS
AmdPcieS3Init (
IN AMD_NB_CONFIG_BLOCK *ConfigPtr
);
BOOLEAN
PcieLibCheckGen2Disabled (
IN PORT PortId,
IN OUT AMD_NB_CONFIG *pConfig
);
VOID
PcieLibSetGen2Disabled (
IN PORT PortId,
IN OUT AMD_NB_CONFIG *pConfig
);
PCI_ADDR
PcieLibGetPortPciAddress (
IN PORT PortId,
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibSetLinkCompliance (
IN PORT PortId,
IN AMD_NB_CONFIG *pConfig
);
AGESA_STATUS
PcieLibInitValidateInput (
IN OUT AMD_NB_CONFIG *pConfig
);
VOID
PcieLibSetPcieMmioBase (
IN UINT16 PcieMmioBase,
IN UINT16 PcieMmioSize,
IN AMD_NB_CONFIG *pConfig
);
AGESA_STATUS
PcieCheckSelectedPorts (
IN UINT16 SelectedPortMask,
IN AMD_NB_CONFIG *pConfig
);
PCIE_LINK_STATUS
PcieGetPortsLinkStatus (
IN UINT16 SelectedPortMask,
IN OUT PCIE_LINK_STATUS *PortLinkStatus,
IN UINT32 Pooling,
IN AMD_NB_CONFIG *pConfig
);
UINT16
PcieFindPortsWithLinkStatus (
IN PCIE_LINK_STATUS *PortLinkStatus,
IN PCIE_LINK_STATUS LinkStatus
);
AGESA_STATUS
PcieBrokenLaneWorkaround (
IN UINT16 SelectedPortMask,
IN AMD_NB_CONFIG *pConfig
);
AGESA_STATUS
PcieGen2Workaround (
IN UINT16 SelectedPortMask,
IN AMD_NB_CONFIG *pConfig
);
AGESA_STATUS
PcieMiscWorkaround (
IN PCIE_LINK_STATUS *PortsLinkStatus,
IN AMD_NB_CONFIG *pConfig
);
AGESA_STATUS
PcieCheckVco (
IN UINT16 SelectedPortMask,
IN PCIE_LINK_STATUS *PortsLinkStatus,
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibPortTrainingControl (
IN PORT PortId,
IN PCIE_LINK_TRAINING Operation,
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibSetCoreConfiguration (
IN CORE CoreId,
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibCommonCoreInit (
IN CORE CoreId,
IN AMD_NB_CONFIG *pConfig
);
LINK_INFO
PcieLibGetPortLinkInfo (
IN PORT PortId,
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibPowerOffPortLanes (
IN PORT PortId,
IN PCIE_LINK_WIDTH Width,
IN AMD_NB_CONFIG *pConfig
);
BOOLEAN
PcieLibIsPortReversed (
IN PORT PortId,
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibPowerOffPll (
IN CORE CoreId,
IN AMD_NB_CONFIG *pConfig
);
AGESA_STATUS
PcieInitSelectedPorts (
IN UINT16 SelectedPortMask,
IN OUT AMD_NB_CONFIG *pConfig
);
VOID
PcieLibCommonPortInit (
IN PORT PortId,
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibSetLinkMode (
IN PORT PortId,
IN PCIE_LINK_MODE Operation,
IN AMD_NB_CONFIG *pConfig
);
AGESA_STATUS
PciePreTrainingInit (
IN OUT AMD_NB_CONFIG *pConfig
);
AGESA_STATUS
PcieInitPorts (
IN OUT AMD_NB_CONFIG *pConfig
);
AGESA_STATUS
PcieAfterTrainingInit (
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibUnHidePorts (
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibHidePorts (
IN AMD_NB_CONFIG *pConfig
);
AGESA_STATUS
PcieLibRequestPciReset (
IN AMD_NB_CONFIG *pConfig
);
AGESA_STATUS
PcieLibResetSlot (
IN PORT PortId,
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibManageTxClock (
IN CORE CoreId,
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibManageLclkClock (
IN CORE CoreId,
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibEnablePllPowerOffInL1 (
IN CORE CoreId,
IN AMD_NB_CONFIG *pConfig
);
CORE
PcieLibGetCoreId (
IN PORT PortId,
IN AMD_NB_CONFIG *pConfig
);
UINT32
PcieLibGetCoreAddress (
IN CORE CoreId,
IN AMD_NB_CONFIG *pConfig
);
AGESA_STATUS
AmdPcieInitializer (
IN OUT AMD_NB_CONFIG_BLOCK *ConfigPtr
);
AGESA_STATUS
PcieLibInitializer (
IN OUT AMD_NB_CONFIG *pConfig
);
BOOLEAN
PcieLibIsValidPortId (
IN PORT PortId,
IN AMD_NB_CONFIG *pConfig
);
BOOLEAN
PcieLibIsValidCoreId (
IN CORE CoreId,
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibPreTrainingInit (
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibMiscLateCoreSetting (
IN CORE CoreId,
IN AMD_NB_CONFIG *pConfig
);
AGESA_STATUS
PcieLateValidateConfiguration (
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieForcePortsVisibleOrDisable (
IN AMD_NB_CONFIG *NbConfigPtr
);
/*
VOID
PcieReportCoreDisableStatus (
IN AMD_NB_CONFIG *NbConfigPtr
);
*/
AGESA_STATUS
PcieLateInitCores (
IN AMD_NB_CONFIG *pConfig
);
AGESA_STATUS
PcieLateCommonPortInit (
IN PORT PortId,
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibStrapModeControl (
IN CORE CoreId,
IN PCIE_STRAP_MODE Operation,
IN OUT AMD_NB_CONFIG *pConfig
);
VOID
PcieLibCoreAfterTrainingInit (
IN CORE CoreId,
IN AMD_NB_CONFIG *pConfig
);
PORT_STATIC_INFO*
PcieLibGetStaticPortInfo (
IN PORT PortId,
IN OUT AMD_NB_CONFIG *pConfig
);
CORE_INFO*
PcieLibGetCoreInfo (
IN CORE CoreId,
IN AMD_NB_CONFIG *pConfig
);
PORT
PcieLibNativePortId (
IN PORT PortId,
IN OUT AMD_NB_CONFIG *pConfig
);
VOID
PcieNbSbSetupVc (
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibLateInit (
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieLibValidatePortStateInit (
IN AMD_NB_CONFIG *pConfig
);
VOID
PcieInitiateSoftwareGen2 (
IN PORT PortId,
IN AMD_NB_CONFIG *pConfig
);
AGESA_STATUS
PcieRecoveryInitializer (
IN OUT AMD_NB_CONFIG *NbConfigPtr
);
PCI_CORE_RESET
PcieLibCoreReset (
IN CORE CoreId,
IN PCI_CORE_RESET Operation,
IN AMD_NB_CONFIG *pConfig
);
PORT_INFO*
PcieLibGetPortInfo (
IN PORT PortId,
IN OUT AMD_NB_CONFIG *pConfig
);
PCIE_DEVICE_TYPE
PcieGetDeviceType (
IN PCI_ADDR Device,
IN AMD_NB_CONFIG *pConfig
);
UINT8
PcieLibGetActiveCoreMap (
IN AMD_NB_CONFIG *pConfig
);
#pragma pack (pop)
#endif