aboutsummaryrefslogtreecommitdiff
path: root/src/vendorcode/amd/agesa/f12/Proc/GNB/Gfx/Family/LN/F12GfxServices.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vendorcode/amd/agesa/f12/Proc/GNB/Gfx/Family/LN/F12GfxServices.c')
-rw-r--r--src/vendorcode/amd/agesa/f12/Proc/GNB/Gfx/Family/LN/F12GfxServices.c671
1 files changed, 0 insertions, 671 deletions
diff --git a/src/vendorcode/amd/agesa/f12/Proc/GNB/Gfx/Family/LN/F12GfxServices.c b/src/vendorcode/amd/agesa/f12/Proc/GNB/Gfx/Family/LN/F12GfxServices.c
deleted file mode 100644
index 6ece971bf0..0000000000
--- a/src/vendorcode/amd/agesa/f12/Proc/GNB/Gfx/Family/LN/F12GfxServices.c
+++ /dev/null
@@ -1,671 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * Graphics Controller family specific service procedure
- *
- *
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: GNB
- * @e \$Revision: 51088 $ @e \$Date: 2011-04-19 07:40:52 +0800 (Tue, 19 Apr 2011) $
- *
- */
-/*
-*****************************************************************************
-*
-* 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.
-* ***************************************************************************
-*
-*/
-
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "amdlib.h"
-#include "Ids.h"
-#include "GeneralServices.h"
-#include "Gnb.h"
-#include "GnbPcie.h"
-#include "GnbGfx.h"
-#include "GfxIntegratedInfoTableInit.h"
-#include "GfxRegisterAcc.h"
-#include "GfxLib.h"
-#include "GnbGfxInitLibV1.h"
-#include "GnbCommonLib.h"
-#include "NbSmuLib.h"
-#include "GnbGfxFamServices.h"
-#include "GfxFamilyServices.h"
-#include "GnbRegistersLN.h"
-#include "F12NbPowerGate.h"
-#include "F12PackageType.h"
-#include "cpuFamilyTranslation.h"
-#include "Filecode.h"
-#define FILECODE PROC_GNB_GFX_FAMILY_LN_F12GFXSERVICES_FILECODE
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * T Y P E D E F S A N D S T R U C T U R E S
- *----------------------------------------------------------------------------------------
- */
-
-
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-UINT8 NumberOfChannels = 2;
-
-UINT8 DdiLaneConfigArray [][4] = {
- {31, 24, 1, 0},
- {24, 31, 0, 1},
- {24, 27, 0, 0},
- {27, 24, 0, 0},
- {28, 31, 1, 1},
- {31, 28, 1, 1},
- {8 , 15, 2, 3},
- {8, 11, 2, 2},
- {11, 8 , 2, 2},
- {15, 8 , 3, 2},
- {12, 15, 3, 3},
- {15, 12, 3, 3},
- {16, 23, 4, 5},
- {16, 19, 4, 4},
- {19, 16, 4, 4},
- {23, 16, 5, 4},
- {20, 23, 5, 5},
- {23, 20, 5, 5},
-};
-
-/*----------------------------------------------------------------------------------------*/
-/**
- * Initialize display path for given engine
- *
- *
- *
- * @param[in] Engine Engine configuration info
- * @param[out] DisplayPathList Display path list
- * @param[in] Gfx Pointer to global GFX configuration
- */
-
-AGESA_STATUS
-GfxFmMapEngineToDisplayPath (
- IN PCIe_ENGINE_CONFIG *Engine,
- OUT EXT_DISPLAY_PATH *DisplayPathList,
- IN GFX_PLATFORM_CONFIG *Gfx
- )
-{
- AGESA_STATUS Status;
- UINT8 PrimaryDisplayPathId;
- UINT8 SecondaryDisplayPathId;
- UINTN DisplayPathIndex;
- PrimaryDisplayPathId = 0xff;
- SecondaryDisplayPathId = 0xff;
- for (DisplayPathIndex = 0; DisplayPathIndex < (sizeof (DdiLaneConfigArray) / 4); DisplayPathIndex++) {
- if (DdiLaneConfigArray[DisplayPathIndex][0] == Engine->EngineData.StartLane &&
- DdiLaneConfigArray[DisplayPathIndex][1] == Engine->EngineData.EndLane) {
- PrimaryDisplayPathId = DdiLaneConfigArray[DisplayPathIndex][2];
- SecondaryDisplayPathId = DdiLaneConfigArray[DisplayPathIndex][3];
- break;
- }
- }
- if (PrimaryDisplayPathId != 0xff) {
- IDS_HDT_CONSOLE (GFX_MISC, " Allocate Display Connector at Primary sPath[%d]\n", PrimaryDisplayPathId);
- Engine->InitStatus |= INIT_STATUS_DDI_ACTIVE;
- GfxIntegratedCopyDisplayInfo (
- Engine,
- &DisplayPathList[PrimaryDisplayPathId],
- (PrimaryDisplayPathId != SecondaryDisplayPathId) ? &DisplayPathList[SecondaryDisplayPathId] : NULL,
- Gfx
- );
- Status = AGESA_SUCCESS;
- } else {
- IDS_HDT_CONSOLE (GFX_MISC, " Error!!! Map DDI lanes %d - %d to display path failed\n",
- Engine->EngineData.StartLane,
- Engine->EngineData.EndLane
- );
- PutEventLog (
- AGESA_ERROR,
- GNB_EVENT_INVALID_DDI_LINK_CONFIGURATION,
- Engine->EngineData.StartLane,
- Engine->EngineData.EndLane,
- 0,
- 0,
- GnbLibGetHeader (Gfx)
- );
- Status = AGESA_ERROR;
- }
- return Status;
-}
-
-
-/*----------------------------------------------------------------------------------------*/
-/**
- * Family specific integrated info table init
- *
- *
- * @param[in] IntegratedInfoTable Integrated info table pointer
- * @param[in] Gfx Gfx configuration info
- */
-
-VOID
-GfxFmIntegratedInfoTableInit (
- IN OUT ATOM_INTEGRATED_SYSTEM_INFO_V6 *IntegratedInfoTable,
- IN GFX_PLATFORM_CONFIG *Gfx
- )
-{
- IntegratedInfoTable->ulDDR_DLL_PowerUpTime = 2380;
- IntegratedInfoTable->ulDDR_PLL_PowerUpTime = 3400;
- IntegratedInfoTable->ulGMCRestoreResetTime = F12NbPowerGateGmcRestoreLatency (GnbLibGetHeader (Gfx));
- if (((Gfx->UmaInfo.UmaAttributes & UMA_ATTRIBUTE_INTERLEAVE) == 0) && ((LibAmdGetPackageType (GnbLibGetHeader (Gfx)) & PACKAGE_TYPE_FM1) != 0)) {
- GnbLibPciRMW (
- MAKE_SBDFO (0, 0, 0x18, 6, D18F6x78_ADDRESS),
- AccessS3SaveWidth32,
- 0xffffffff,
- 1 << D18F6x78_DispArbCtrl_OFFSET,
- GnbLibGetHeader (Gfx)
- );
- }
-}
-
-
-/*----------------------------------------------------------------------------------------*/
-/**
- * Family specific address swizzle settings.
- *
- *
- * @param[in] Gfx Gfx configuration info
- */
-
-VOID
-GfxFmGmcAddressSwizzel (
- IN GFX_PLATFORM_CONFIG *Gfx
- )
-{
- GMMx2864_STRUCT GMMx2864;
- GMMx2868_STRUCT GMMx2868;
- UCHAR EffectiveChannels;
- GMMx2864.Value = GmmRegisterRead (GMMx2864_ADDRESS, Gfx);
- if (GMMx2864.Value == 0) {
- // Check if two memory channels
- EffectiveChannels = ((Gfx->UmaInfo.UmaAttributes & UMA_ATTRIBUTE_INTERLEAVE) == 0) ? 1 : 2;
- if (EffectiveChannels == 2) {
- GMMx2864.Value = 0x32009817; // Value for two channels
- GMMx2868.Value = 0x00000004;
- GmmRegisterWrite (GMMx2868_ADDRESS, GMMx2868.Value, TRUE, Gfx);
- } else {
- GMMx2864.Value = 0x32100876; // Value for single channel
- }
- GmmRegisterWrite (
- GMMx2864_ADDRESS,
- GMMx2864.Value,
- TRUE,
- Gfx
- );
- }
-}
-
-/*----------------------------------------------------------------------------------------*/
-
-VOID
-GfxFmGmcAllowPstateHigh (
- IN GFX_PLATFORM_CONFIG *Gfx
- )
-{
-}
-
-/*----------------------------------------------------------------------------------------*/
-/**
- * Calculate COF for DFS out of Main PLL
- *
- *
- *
- * @param[in] Did Did
- * @param[in] StdHeader Standard Configuration Header
- * @retval COF in 10khz
- */
-
-UINT32
-GfxFmCalculateClock (
- IN UINT8 Did,
- IN AMD_CONFIG_PARAMS *StdHeader
- )
-{
- UINT32 MainPllFreq10kHz;
- MainPllFreq10kHz = GfxLibGetMainPllFreq (StdHeader) * 100;
- return GfxLibCalculateClk (Did, MainPllFreq10kHz);
-}
-
-/*----------------------------------------------------------------------------------------*/
-/**
- * Set idle voltage mode for GFX
- *
- *
- * @param[in] Gfx Pointer to global GFX configuration
- */
-
-VOID
-GfxFmSetIdleVoltageMode (
- IN GFX_PLATFORM_CONFIG *Gfx
- )
-{
- FCRxFF30_0191_STRUCT FCRxFF30_0191;
- NbSmuSrbmRegisterRead (FCRxFF30_0191_ADDRESS, &FCRxFF30_0191.Value, GnbLibGetHeader (Gfx));
- FCRxFF30_0191.Field.GfxIdleVoltChgMode = (Gfx->GfxFusedOff || Gfx->UmaInfo.UmaMode != UMA_NONE) ? 0x0 : 0x1;
- NbSmuSrbmRegisterWrite (FCRxFF30_0191_ADDRESS, &FCRxFF30_0191.Value, TRUE, GnbLibGetHeader (Gfx));
-}
-
-/*----------------------------------------------------------------------------------------
- * GMC Disable Clock Gating
- *----------------------------------------------------------------------------------------
- */
-
-
-GMM_REG_ENTRY GmcDisableClockGating[] = {
- { GMMx20C0_ADDRESS, 0x00000C80 },
- { GMMx2478_ADDRESS, 0x00000400 },
- { GMMx20B8_ADDRESS, 0x00000400 },
- { GMMx20BC_ADDRESS, 0x00000400 },
- { GMMx2650_ADDRESS, 0x00000400 },
- { GMMx2654_ADDRESS, 0x00000400 },
- { GMMx2658_ADDRESS, 0x00000400 },
- { GMMx15C0_ADDRESS, 0x00081401 }
-};
-
-TABLE_INDIRECT_PTR GmcDisableClockGatingPtr = {
- sizeof (GmcDisableClockGating) / sizeof (GMM_REG_ENTRY),
- GmcDisableClockGating
-};
-
-
-/*----------------------------------------------------------------------------------------
- * GMC Enable Clock Gating
- *----------------------------------------------------------------------------------------
- */
-GMM_REG_ENTRY GmcEnableClockGating[] = {
- { GMMx20C0_ADDRESS, 0x00040C80 },
- { GMMx2478_ADDRESS, 0x00040400 },
- { GMMx20B8_ADDRESS, 0x00040400 },
- { GMMx20BC_ADDRESS, 0x00040400 },
- { GMMx2650_ADDRESS, 0x00040400 },
- { GMMx2654_ADDRESS, 0x00040400 },
- { GMMx2658_ADDRESS, 0x00040400 },
- { GMMx15C0_ADDRESS, 0x000C1401 }
-};
-
-
-TABLE_INDIRECT_PTR GmcEnableClockGatingPtr = {
- sizeof (GmcEnableClockGating) / sizeof (GMM_REG_ENTRY),
- GmcEnableClockGating
-};
-
-/*----------------------------------------------------------------------------------------
- * GMC Performance Tuning
- *----------------------------------------------------------------------------------------
- */
-GMM_REG_ENTRY GmcPerformanceTuningTable [] = {
- { GMMx27CC_ADDRESS, 0x00032005 },
- { GMMx27DC_ADDRESS, 0x00734847 },
- { GMMx27D0_ADDRESS, 0x00012008 },
- { GMMx27E0_ADDRESS, 0x00003D3C },
- { GMMx2784_ADDRESS, 0x00000007 },
- { GMMx21C8_ADDRESS, 0x0000A1F1 },
- { GMMx217C_ADDRESS, 0x0000A1F1 },
- { GMMx2188_ADDRESS, 0x000221b1 },
- { GMMx2814_ADDRESS, 0x00000200 },
- { GMMx201C_ADDRESS, 0x03330003 },
- { GMMx2020_ADDRESS, 0x70760007 },
- { GMMx2018_ADDRESS, 0x00000050 },
- { GMMx2014_ADDRESS, 0x00005500 },
- { GMMx2620_ADDRESS, 0x44111222 },
- { GMMx2628_ADDRESS, 0x44111666 },
- { GMMx2630_ADDRESS, 0x00000044 },
- { GMMx2624_ADDRESS, 0x11333111 },
- { GMMx262C_ADDRESS, 0x21444222 },
- { GMMx2634_ADDRESS, 0x00000043 },
- { GMMx279C_ADDRESS, 0xfcfcfdfc },
- { GMMx27A0_ADDRESS, 0xfcfcfdfc }
-};
-
-TABLE_INDIRECT_PTR GmcPerformanceTuningTablePtr = {
- sizeof (GmcPerformanceTuningTable) / sizeof (GMM_REG_ENTRY),
- GmcPerformanceTuningTable
-};
-
-
-/*----------------------------------------------------------------------------------------
- * GMC Misc init table
- *----------------------------------------------------------------------------------------
- */
-GMM_REG_ENTRY GmcMiscInitTable [] = {
- { GMMx25C8_ADDRESS, 0x007F605F },
- { GMMx25CC_ADDRESS, 0x00007F7E },
- { GMMx28EC_ADDRESS, 0x00187000 },
- { GMMx202C_ADDRESS, 0x0003FFFF }
-};
-
-TABLE_INDIRECT_PTR GmcMiscInitTablePtr = {
- sizeof (GmcMiscInitTable) / sizeof (GMM_REG_ENTRY),
- GmcMiscInitTable
-};
-
-
-/*----------------------------------------------------------------------------------------
- * GMC Remove blackout
- *----------------------------------------------------------------------------------------
- */
-GMM_REG_ENTRY GmcRemoveBlackoutTable [] = {
- { GMMx25C0_ADDRESS, 0x00000000 },
- { GMMx20EC_ADDRESS, 0x000001FC },
- { GMMx20D4_ADDRESS, 0x00000016 }
-};
-
-TABLE_INDIRECT_PTR GmcRemoveBlackoutTablePtr = {
- sizeof (GmcRemoveBlackoutTable) / sizeof (GMM_REG_ENTRY),
- GmcRemoveBlackoutTable
-};
-
-
-
-/*----------------------------------------------------------------------------------------
- * GMC Register Engine Init Table
- *----------------------------------------------------------------------------------------
- */
-
-GMM_REG_ENTRY GmcRegisterEngineInitTable [] = {
- { GMMx2B8C_ADDRESS, 0x00000000 },
- { GMMx2B90_ADDRESS, 0x001e0a07 },
- { GMMx2B8C_ADDRESS, 0x00000020 },
- { GMMx2B90_ADDRESS, 0x00050500 },
- { GMMx2B8C_ADDRESS, 0x00000027 },
- { GMMx2B90_ADDRESS, 0x0001050c },
- { GMMx2B8C_ADDRESS, 0x0000002a },
- { GMMx2B90_ADDRESS, 0x0001051c },
- { GMMx2B8C_ADDRESS, 0x0000002d },
- { GMMx2B90_ADDRESS, 0x00030534 },
- { GMMx2B8C_ADDRESS, 0x00000032 },
- { GMMx2B90_ADDRESS, 0x0001053e },
- { GMMx2B8C_ADDRESS, 0x00000035 },
- { GMMx2B90_ADDRESS, 0x00010546 },
- { GMMx2B8C_ADDRESS, 0x00000038 },
- { GMMx2B90_ADDRESS, 0x0002054e },
- { GMMx2B8C_ADDRESS, 0x0000003c },
- { GMMx2B90_ADDRESS, 0x00010557 },
- { GMMx2B8C_ADDRESS, 0x0000003f },
- { GMMx2B90_ADDRESS, 0x0001055f },
- { GMMx2B8C_ADDRESS, 0x00000042 },
- { GMMx2B90_ADDRESS, 0x00010567 },
- { GMMx2B8C_ADDRESS, 0x00000045 },
- { GMMx2B90_ADDRESS, 0x0001056f },
- { GMMx2B8C_ADDRESS, 0x00000048 },
- { GMMx2B90_ADDRESS, 0x00050572 },
- { GMMx2B8C_ADDRESS, 0x0000004f },
- { GMMx2B90_ADDRESS, 0x00000800 },
- { GMMx2B8C_ADDRESS, 0x00000051 },
- { GMMx2B90_ADDRESS, 0x00260801 },
- { GMMx2B8C_ADDRESS, 0x00000079 },
- { GMMx2B90_ADDRESS, 0x004b082d },
- { GMMx2B8C_ADDRESS, 0x000000c6 },
- { GMMx2B90_ADDRESS, 0x0013088d },
- { GMMx2B8C_ADDRESS, 0x000000db },
- { GMMx2B90_ADDRESS, 0x100008a1 },
- { GMMx2B90_ADDRESS, 0x00000040 },
- { GMMx2B90_ADDRESS, 0x00000040 },
- { GMMx2B8C_ADDRESS, 0x000000df },
- { GMMx2B90_ADDRESS, 0x000008a2 },
- { GMMx2B8C_ADDRESS, 0x000000e1 },
- { GMMx2B90_ADDRESS, 0x005a08cd },
- { GMMx2B8C_ADDRESS, 0x0000013d },
- { GMMx2B90_ADDRESS, 0x0001094d },
- { GMMx2B8C_ADDRESS, 0x00000140 },
- { GMMx2B90_ADDRESS, 0x00000952 },
- { GMMx2B8C_ADDRESS, 0x00000142 },
- { GMMx2B90_ADDRESS, 0x00010954 },
- { GMMx2B8C_ADDRESS, 0x00000145 },
- { GMMx2B90_ADDRESS, 0x0009095a },
- { GMMx2B8C_ADDRESS, 0x00000150 },
- { GMMx2B90_ADDRESS, 0x0029096d },
- { GMMx2B8C_ADDRESS, 0x0000017b },
- { GMMx2B90_ADDRESS, 0x000e0997 },
- { GMMx2B8C_ADDRESS, 0x0000018b },
- { GMMx2B90_ADDRESS, 0x100009a6 },
- { GMMx2B90_ADDRESS, 0x00000040 },
- { GMMx2B90_ADDRESS, 0x00000040 },
- { GMMx2B8C_ADDRESS, 0x0000018f },
- { GMMx2B90_ADDRESS, 0x000009a7 },
- { GMMx2B8C_ADDRESS, 0x00000191 },
- { GMMx2B90_ADDRESS, 0x002e09d7 },
- { GMMx2B8C_ADDRESS, 0x000001c1 },
- { GMMx2B90_ADDRESS, 0x00170a26 },
- { GMMx2B94_ADDRESS, 0x765d9000 },
- { GMMx2B98_ADDRESS, 0x410af020 }
-};
-
-TABLE_INDIRECT_PTR GmcRegisterEngineInitTablePtr = {
- sizeof (GmcRegisterEngineInitTable) / sizeof (GMM_REG_ENTRY),
- GmcRegisterEngineInitTable
-};
-
-
-/*----------------------------------------------------------------------------------------
- * GMC Address Translation Table
- *----------------------------------------------------------------------------------------
- */
-REGISTER_COPY_ENTRY CnbToGncRegisterCopyTable [] = {
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x040_ADDRESS),
- GMMx281C_ADDRESS,
- 0,
- 31,
- 0,
- 31
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x140_ADDRESS),
- GMMx2820_ADDRESS,
- 0,
- 31,
- 0,
- 31
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x044_ADDRESS),
- GMMx2824_ADDRESS,
- 0,
- 31,
- 0,
- 31
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x144_ADDRESS),
- GMMx2828_ADDRESS,
- 0,
- 31,
- 0,
- 31
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x048_ADDRESS),
- GMMx282C_ADDRESS,
- 0,
- 31,
- 0,
- 31
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x148_ADDRESS),
- GMMx2830_ADDRESS,
- 0,
- 31,
- 0,
- 31
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x04C_ADDRESS),
- GMMx2834_ADDRESS,
- 0,
- 31,
- 0,
- 31
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x14C_ADDRESS),
- GMMx2838_ADDRESS,
- 0,
- 31,
- 0,
- 31
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x060_ADDRESS),
- GMMx283C_ADDRESS,
- 0,
- 31,
- 0,
- 31
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x064_ADDRESS),
- GMMx2840_ADDRESS,
- 0,
- 31,
- 0,
- 31
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x160_ADDRESS),
- GMMx2844_ADDRESS,
- 0,
- 31,
- 0,
- 31
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x164_ADDRESS),
- GMMx2848_ADDRESS,
- 0,
- 31,
- 0,
- 31
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x080_ADDRESS),
- GMMx284C_ADDRESS,
- D18F2x080_Dimm0AddrMap_OFFSET,
- D18F2x080_Dimm0AddrMap_WIDTH + D18F2x080_Dimm1AddrMap_WIDTH,
- GMMx284C_Dimm0AddrMap_OFFSET,
- GMMx284C_Dimm0AddrMap_WIDTH + GMMx284C_Dimm1AddrMap_WIDTH
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x094_ADDRESS),
- GMMx284C_ADDRESS,
- D18F2x094_BankSwizzleMode_OFFSET,
- D18F2x094_BankSwizzleMode_WIDTH,
- GMMx284C_BankSwizzleMode_OFFSET,
- GMMx284C_BankSwizzleMode_WIDTH
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x0A8_ADDRESS),
- GMMx284C_ADDRESS,
- D18F2x0A8_BankSwap_OFFSET,
- D18F2x0A8_BankSwap_WIDTH,
- GMMx284C_BankSwap_OFFSET,
- GMMx284C_BankSwap_WIDTH
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x180_ADDRESS),
- GMMx2850_ADDRESS,
- D18F2x180_Dimm0AddrMap_OFFSET,
- D18F2x180_Dimm0AddrMap_WIDTH + D18F2x180_Dimm1AddrMap_WIDTH,
- GMMx2850_Dimm0AddrMap_OFFSET,
- GMMx2850_Dimm0AddrMap_WIDTH + GMMx2850_Dimm1AddrMap_WIDTH
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x194_ADDRESS),
- GMMx2850_ADDRESS,
- D18F2x194_BankSwizzleMode_OFFSET,
- D18F2x194_BankSwizzleMode_WIDTH,
- GMMx2850_BankSwizzleMode_OFFSET,
- GMMx2850_BankSwizzleMode_WIDTH
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x1A8_ADDRESS),
- GMMx2850_ADDRESS,
- D18F2x1A8_BankSwap_OFFSET,
- D18F2x1A8_BankSwap_WIDTH,
- GMMx2850_BankSwap_OFFSET,
- GMMx2850_BankSwap_WIDTH
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x110_ADDRESS),
- GMMx2854_ADDRESS,
- 0,
- 31,
- 0,
- 31
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x114_ADDRESS),
- GMMx2858_ADDRESS,
- 0,
- 31,
- 0,
- 31
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 1, D18F1xF0_ADDRESS),
- GMMx285C_ADDRESS,
- 0,
- 31,
- 0,
- 31
- },
- {
- MAKE_SBDFO (0, 0, 0x18, 2, D18F2x10C_ADDRESS),
- GMMx2860_ADDRESS,
- 0,
- 31,
- 0,
- 31
- }
-};
-
-
-TABLE_INDIRECT_PTR CnbToGncRegisterCopyTablePtr = {
- sizeof (CnbToGncRegisterCopyTable) / sizeof (REGISTER_COPY_ENTRY),
- CnbToGncRegisterCopyTable
-};
-