From eab5523713e33e7e94548bb73087df68b703bac1 Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Mon, 21 Oct 2013 14:18:37 +0200 Subject: colibri_t30: add DDR speed definition for 400MHz/800MHz This gives the DDR3L memory settings for 400MHz/800MHz. The boot memory speed must be 400MHz for this to work, i.e. the 400MHz BCT must be used. --- arch/arm/mach-tegra/board-colibri_t30-memory.c | 731 ++++++++----------------- 1 file changed, 241 insertions(+), 490 deletions(-) diff --git a/arch/arm/mach-tegra/board-colibri_t30-memory.c b/arch/arm/mach-tegra/board-colibri_t30-memory.c index c264cd7b0a24..22575b48ba0c 100644 --- a/arch/arm/mach-tegra/board-colibri_t30-memory.c +++ b/arch/arm/mach-tegra/board-colibri_t30-memory.c @@ -24,502 +24,253 @@ #include "tegra3_emc.h" #include "fuse.h" -static const struct tegra_emc_table colibri_t30_emc_tables_mt41k256m16re_15e[] = { - { +static const struct tegra_emc_table colibri_t30_emc_tables_nt5cc256m16cp[] = { + { 0x32, /* Rev 3.2 */ -//ToDo: dblcheck with Max -#if 1 - 30000, /* SDRAM frequency [kHz] */ -#else - 200000, /* SDRAM frequency [kHz] */ -#endif - { - 0x0000000a, /* EmcRc */ - 0x00000033, /* EmcRfc */ - 0x00000007, /* EmcRas */ - 0x00000002, /* EmcRp */ - 0x00000003, /* EmcR2w */ - 0x00000009, /* EmcW2r */ - 0x00000005, /* EmcR2p */ - 0x0000000a, /* EmcW2p */ - 0x00000002, /* EmcRdRcd */ - 0x00000002, /* EmcWrRcd */ - 0x00000003, /* EmcRrd */ - 0x00000001, /* EmcRext */ - 0x00000000, /* EmcWext */ - 0x00000004, /* EmcWdv */ - 0x00000005, /* EmcQUse */ - 0x00000004, /* EmcQRst */ - 0x00000009, /* EmcQSafe */ - 0x0000000b, /* EmcRdv */ - 0x000005e9, /* EmcRefresh */ - 0x00000000, /* EmcBurstRefreshNum */ - 0x0000017a, /* EmcPreRefreshReqCnt */ - 0x00000002, /* EmcPdEx2Wr */ - 0x00000002, /* EmcPdEx2Rd */ - 0x00000001, /* EmcPChg2Pden */ - 0x00000000, /* EmcAct2Pden */ - 0x00000007, /* EmcAr2Pden */ - 0x0000000e, /* EmcRw2Pden */ - 0x00000036, /* EmcTxsr */ - 0x00000134, /* EmcTxsrDll */ - 0x00000004, /* EmcTcke */ - 0x0000000a, /* EmcTfaw */ - 0x00000000, /* EmcTrpab */ - 0x00000004, /* EmcTClkStable */ - 0x00000005, /* EmcTClkStop */ - 0x00000618, /* EmcTRefBw */ - 0x00000006, /* EmcQUseExtra */ - 0x00000004, /* EmcFbioCfg6 */ - 0x00000000, /* EmcOdtWrite */ - 0x00000000, /* EmcOdtRead */ - 0x00004288, /* EmcFbioCfg5 */ - 0x004600a4, /* EmcCfgDigDll */ - 0x00008000, /* EmcCfgDigDllPeriod */ - 0x00080000, /* EmcDllXformDqs0 */ - 0x00080000, /* EmcDllXformDqs1 */ - 0x00080000, /* EmcDllXformDqs2 */ - 0x00080000, /* EmcDllXformDqs3 */ - 0x00080000, /* EmcDllXformDqs4 */ - 0x00080000, /* EmcDllXformDqs5 */ - 0x00080000, /* EmcDllXformDqs6 */ - 0x00080000, /* EmcDllXformDqs7 */ - 0x00000000, /* EmcDllXformQUse0 */ - 0x00000000, /* EmcDllXformQUse1 */ - 0x00000000, /* EmcDllXformQUse2 */ - 0x00000000, /* EmcDllXformQUse3 */ - 0x00000000, /* EmcDllXformQUse4 */ - 0x00000000, /* EmcDllXformQUse5 */ - 0x00000000, /* EmcDllXformQUse6 */ - 0x00000000, /* EmcDllXformQUse7 */ - 0x00000000, /* EmcDliTrimTxDqs0 */ - 0x00000000, /* EmcDliTrimTxDqs1 */ - 0x00000000, /* EmcDliTrimTxDqs2 */ - 0x00000000, /* EmcDliTrimTxDqs3 */ - 0x00000000, /* EmcDliTrimTxDqs4 */ - 0x00000000, /* EmcDliTrimTxDqs5 */ - 0x00000000, /* EmcDliTrimTxDqs6 */ - 0x00000000, /* EmcDliTrimTxDqs7 */ - 0x00080000, /* EmcDllXformDq0 */ - 0x00080000, /* EmcDllXformDq1 */ - 0x00080000, /* EmcDllXformDq2 */ - 0x00080000, /* EmcDllXformDq3 */ - 0x000002a0, /* EmcXm2CmdPadCtrl */ - 0x0800211c, /* EmcXm2DqsPadCtrl2 */ - 0x00000000, /* EmcXm2DqPadCtrl2 */ - 0x77fff884, /* EmcXm2ClkPadCtrl */ - 0x01f1f108, /* EmcXm2CompPadCtrl */ - 0x05057404, /* EmcXm2VttGenPadCtrl */ - 0x54000007, /* EmcXm2VttGenPadCtrl2 */ - 0x08000168, /* EmcXm2QUsePadCtrl */ - 0x08000000, /* EmcXm2DqsPadCtrl3 */ - 0x00000802, /* EmcCttTermCtrl */ - 0x00020000, /* EmcZcalInterval */ - 0x00000040, /* EmcZcalWaitCnt */ - 0x000c000c, /* EmcMrsWaitCnt */ - 0x001fffff, /* EmcAutoCalInterval */ - 0x00000000, /* EmcCtt */ - 0x00000000, /* EmcCttDuration */ - 0x80000ce6, /* EmcDynSelfRefControl */ - 0x00000003, /* McEmemArbCfg */ - 0xc0000024, /* McEmemArbOutstandingReq */ - 0x00000001, /* McEmemArbTimingRcd */ - 0x00000001, /* McEmemArbTimingRp */ - 0x00000005, /* McEmemArbTimingRc */ - 0x00000002, /* McEmemArbTimingRas */ - 0x00000004, /* McEmemArbTimingFaw */ - 0x00000001, /* McEmemArbTimingRrd */ - 0x00000003, /* McEmemArbTimingRap2Pre */ - 0x00000007, /* McEmemArbTimingWap2Pre */ - 0x00000002, /* McEmemArbTimingR2R */ - 0x00000001, /* McEmemArbTimingW2W */ - 0x00000003, /* McEmemArbTimingR2W */ - 0x00000006, /* McEmemArbTimingW2R */ - 0x06030102, /* McEmemArbDaTurns */ - 0x00090505, /* McEmemArbDaCovers */ - 0x76a30906, /* McEmemArbMisc0 */ - 0x001f0000, /* McEmemArbRing1Throttle */ - 0xe8000000, /* EmcFbioSpare */ - 0xff00ff00, /* EmcCfgRsv */ - }, - 0x00000040, /* EmcZcalWaitCnt */ - 0x00020000, /* EmcZcalInterval */ - 0x00000001, /* EmcCfg bit 27PERIODIC_QRST */ - 0x80001221, /* EmcMrs */ - 0x80100003, /* EmcEmrs */ - 0x00000000, /* EmcMrw1 */ - 0x00000001, /* EmcCfg bit 28 DYN_SELF_REF */ - }, - { - 0x32, /* Rev 3.2 */ - 300000, /* SDRAM frequency [kHz] */ - { - 0x00000010, /* EmcRc */ - 0x0000004d, /* EmcRfc */ - 0x0000000b, /* EmcRas */ - 0x00000003, /* EmcRp */ - 0x00000002, /* EmcR2w */ - 0x00000008, /* EmcW2r */ - 0x00000003, /* EmcR2p */ - 0x00000009, /* EmcW2p */ - 0x00000003, /* EmcRdRcd */ - 0x00000002, /* EmcWrRcd */ - 0x00000002, /* EmcRrd */ - 0x00000001, /* EmcRext */ - 0x00000000, /* EmcWext */ - 0x00000004, /* EmcWdv */ - 0x00000006, /* EmcQUse */ - 0x00000004, /* EmcQRst */ - 0x0000000a, /* EmcQSafe */ - 0x0000000c, /* EmcRdv */ - 0x000008e6, /* EmcRefresh */ - 0x00000000, /* EmcBurstRefreshNum */ - 0x00000240, /* EmcPreRefreshReqCnt */ - 0x0000000a, /* EmcPdEx2Wr */ - 0x00000008, /* EmcPdEx2Rd */ - 0x00000007, /* EmcPChg2Pden */ - 0x00000000, /* EmcAct2Pden */ - 0x00000007, /* EmcAr2Pden */ - 0x0000000e, /* EmcRw2Pden */ - 0x000000b4, /* EmcTxsr */ - 0x00000200, /* EmcTxsrDll */ - 0x00000004, /* EmcTcke */ - 0x00000010, /* EmcTfaw */ - 0x00000000, /* EmcTrpab */ - 0x00000004, /* EmcTClkStable */ - 0x00000005, /* EmcTClkStop */ - 0x00000927, /* EmcTRefBw */ - 0x00000007, /* EmcQUseExtra */ - 0x00000004, /* EmcFbioCfg6 */ - 0x00000000, /* EmcOdtWrite */ - 0x00000000, /* EmcOdtRead */ - 0x00005288, /* EmcFbioCfg5 */ - 0x002b00a4, /* EmcCfgDigDll */ - 0x00008000, /* EmcCfgDigDllPeriod */ - 0x00014000, /* EmcDllXformDqs0 */ - 0x00014000, /* EmcDllXformDqs1 */ - 0x00014000, /* EmcDllXformDqs2 */ - 0x00014000, /* EmcDllXformDqs3 */ - 0x00014000, /* EmcDllXformDqs4 */ - 0x00014000, /* EmcDllXformDqs5 */ - 0x00014000, /* EmcDllXformDqs6 */ - 0x00014000, /* EmcDllXformDqs7 */ - 0x00000000, /* EmcDllXformQUse0 */ - 0x00000000, /* EmcDllXformQUse1 */ - 0x00000000, /* EmcDllXformQUse2 */ - 0x00000000, /* EmcDllXformQUse3 */ - 0x00000000, /* EmcDllXformQUse4 */ - 0x00000000, /* EmcDllXformQUse5 */ - 0x00000000, /* EmcDllXformQUse6 */ - 0x00000000, /* EmcDllXformQUse7 */ - 0x00000000, /* EmcDliTrimTxDqs0 */ - 0x00000000, /* EmcDliTrimTxDqs1 */ - 0x00000000, /* EmcDliTrimTxDqs2 */ - 0x00000000, /* EmcDliTrimTxDqs3 */ - 0x00000000, /* EmcDliTrimTxDqs4 */ - 0x00000000, /* EmcDliTrimTxDqs5 */ - 0x00000000, /* EmcDliTrimTxDqs6 */ - 0x00000000, /* EmcDliTrimTxDqs7 */ - 0x00020000, /* EmcDllXformDq0 */ - 0x00020000, /* EmcDllXformDq1 */ - 0x00020000, /* EmcDllXformDq2 */ - 0x00020000, /* EmcDllXformDq3 */ - 0x000002a0, /* EmcXm2CmdPadCtrl */ - 0x0800211c, /* EmcXm2DqsPadCtrl2 */ - 0x00000000, /* EmcXm2DqPadCtrl2 */ - 0x77fff884, /* EmcXm2ClkPadCtrl */ - 0x01f1f508, /* EmcXm2CompPadCtrl */ - 0x05057404, /* EmcXm2VttGenPadCtrl */ - 0x54000007, /* EmcXm2VttGenPadCtrl2 */ - 0x08000168, /* EmcXm2QUsePadCtrl */ - 0x08000000, /* EmcXm2DqsPadCtrl3 */ - 0x00000802, /* EmcCttTermCtrl */ - 0x00020000, /* EmcZcalInterval */ - 0x00000040, /* EmcZcalWaitCnt */ - 0x0172000c, /* EmcMrsWaitCnt */ - 0x001fffff, /* EmcAutoCalInterval */ - 0x00000000, /* EmcCtt */ - 0x00000000, /* EmcCttDuration */ - 0x800012db, /* EmcDynSelfRefControl */ - 0x00000004, /* McEmemArbCfg */ - 0x80000037, /* McEmemArbOutstandingReq */ - 0x00000001, /* McEmemArbTimingRcd */ - 0x00000001, /* McEmemArbTimingRp */ - 0x00000007, /* McEmemArbTimingRc */ - 0x00000004, /* McEmemArbTimingRas */ - 0x00000007, /* McEmemArbTimingFaw */ - 0x00000001, /* McEmemArbTimingRrd */ - 0x00000002, /* McEmemArbTimingRap2Pre */ - 0x00000007, /* McEmemArbTimingWap2Pre */ - 0x00000002, /* McEmemArbTimingR2R */ - 0x00000002, /* McEmemArbTimingW2W */ - 0x00000005, /* McEmemArbTimingR2W */ - 0x00000006, /* McEmemArbTimingW2R */ - 0x06030202, /* McEmemArbDaTurns */ - 0x000a0507, /* McEmemArbDaCovers */ - 0x70850e08, /* McEmemArbMisc0 */ - 0x001f0000, /* McEmemArbRing1Throttle */ - 0xe8000000, /* EmcFbioSpare */ - 0xff00ff88, /* EmcCfgRsv */ - }, - 0x00000040, /* EmcZcalWaitCnt */ - 0x00020000, /* EmcZcalInterval */ - 0x00000001, /* EmcCfg bit 27PERIODIC_QRST */ - 0x80000321, /* EmcMrs */ - 0x80100002, /* EmcEmrs */ - 0x00000000, /* EmcMrw1 */ - 0x00000000, /* EmcCfg bit 28 DYN_SELF_REF */ - }, - { - 0x32, /* Rev 3.2 */ - 333000, /* SDRAM frequency [kHz] */ - { - 0x00000010, /* EmcRc */ - 0x00000055, /* EmcRfc */ - 0x0000000c, /* EmcRas */ - 0x00000004, /* EmcRp */ - 0x00000006, /* EmcR2w */ - 0x00000008, /* EmcW2r */ - 0x00000003, /* EmcR2p */ - 0x00000009, /* EmcW2p */ - 0x00000004, /* EmcRdRcd */ - 0x00000003, /* EmcWrRcd */ - 0x00000002, /* EmcRrd */ - 0x00000001, /* EmcRext */ - 0x00000000, /* EmcWext */ - 0x00000004, /* EmcWdv */ - 0x00000006, /* EmcQUse */ - 0x00000004, /* EmcQRst */ - 0x0000000a, /* EmcQSafe */ - 0x0000000c, /* EmcRdv */ - 0x000009e8, /* EmcRefresh */ - 0x00000000, /* EmcBurstRefreshNum */ - 0x0000027e, /* EmcPreRefreshReqCnt */ - 0x0000000a, /* EmcPdEx2Wr */ - 0x00000008, /* EmcPdEx2Rd */ - 0x00000007, /* EmcPChg2Pden */ - 0x00000000, /* EmcAct2Pden */ - 0x00000007, /* EmcAr2Pden */ - 0x0000000e, /* EmcRw2Pden */ - 0x000000b4, /* EmcTxsr */ - 0x00000200, /* EmcTxsrDll */ - 0x00000004, /* EmcTcke */ - 0x00000015, /* EmcTfaw */ - 0x00000000, /* EmcTrpab */ - 0x00000004, /* EmcTClkStable */ - 0x00000005, /* EmcTClkStop */ - 0x00000a28, /* EmcTRefBw */ - 0x00000000, /* EmcQUseExtra */ - 0x00000006, /* EmcFbioCfg6 */ - 0x00000000, /* EmcOdtWrite */ - 0x00000000, /* EmcOdtRead */ - 0x00007088, /* EmcFbioCfg5 */ - 0x002600a4, /* EmcCfgDigDll */ - 0x00008000, /* EmcCfgDigDllPeriod */ - 0x00014000, /* EmcDllXformDqs0 */ - 0x00014000, /* EmcDllXformDqs1 */ - 0x00014000, /* EmcDllXformDqs2 */ - 0x00014000, /* EmcDllXformDqs3 */ - 0x00014000, /* EmcDllXformDqs4 */ - 0x00014000, /* EmcDllXformDqs5 */ - 0x00014000, /* EmcDllXformDqs6 */ - 0x00014000, /* EmcDllXformDqs7 */ - 0x00000000, /* EmcDllXformQUse0 */ - 0x00000000, /* EmcDllXformQUse1 */ - 0x00000000, /* EmcDllXformQUse2 */ - 0x00000000, /* EmcDllXformQUse3 */ - 0x00000000, /* EmcDllXformQUse4 */ - 0x00000000, /* EmcDllXformQUse5 */ - 0x00000000, /* EmcDllXformQUse6 */ - 0x00000000, /* EmcDllXformQUse7 */ - 0x00000000, /* EmcDliTrimTxDqs0 */ - 0x00000000, /* EmcDliTrimTxDqs1 */ - 0x00000000, /* EmcDliTrimTxDqs2 */ - 0x00000000, /* EmcDliTrimTxDqs3 */ - 0x00000000, /* EmcDliTrimTxDqs4 */ - 0x00000000, /* EmcDliTrimTxDqs5 */ - 0x00000000, /* EmcDliTrimTxDqs6 */ - 0x00000000, /* EmcDliTrimTxDqs7 */ - 0x00020000, /* EmcDllXformDq0 */ - 0x00020000, /* EmcDllXformDq1 */ - 0x00020000, /* EmcDllXformDq2 */ - 0x00020000, /* EmcDllXformDq3 */ - 0x000002a0, /* EmcXm2CmdPadCtrl */ - 0x0800013d, /* EmcXm2DqsPadCtrl2 */ - 0x00000000, /* EmcXm2DqPadCtrl2 */ - 0x77fff884, /* EmcXm2ClkPadCtrl */ - 0x01f1f508, /* EmcXm2CompPadCtrl */ - 0x05057404, /* EmcXm2VttGenPadCtrl */ - 0x54000007, /* EmcXm2VttGenPadCtrl2 */ - 0x080001e8, /* EmcXm2QUsePadCtrl */ - 0x08000021, /* EmcXm2DqsPadCtrl3 */ - 0x00000802, /* EmcCttTermCtrl */ - 0x00020000, /* EmcZcalInterval */ - 0x00000040, /* EmcZcalWaitCnt */ - 0x016a000c, /* EmcMrsWaitCnt */ - 0x001fffff, /* EmcAutoCalInterval */ - 0x00000000, /* EmcCtt */ - 0x00000000, /* EmcCttDuration */ - 0x800014d2, /* EmcDynSelfRefControl */ - 0x00000005, /* McEmemArbCfg */ - 0x8000003c, /* McEmemArbOutstandingReq */ - 0x00000001, /* McEmemArbTimingRcd */ - 0x00000002, /* McEmemArbTimingRp */ - 0x00000008, /* McEmemArbTimingRc */ - 0x00000005, /* McEmemArbTimingRas */ - 0x0000000a, /* McEmemArbTimingFaw */ - 0x00000001, /* McEmemArbTimingRrd */ - 0x00000002, /* McEmemArbTimingRap2Pre */ - 0x00000007, /* McEmemArbTimingWap2Pre */ - 0x00000002, /* McEmemArbTimingR2R */ - 0x00000002, /* McEmemArbTimingW2W */ - 0x00000005, /* McEmemArbTimingR2W */ - 0x00000006, /* McEmemArbTimingW2R */ - 0x06030202, /* McEmemArbDaTurns */ - 0x000b0608, /* McEmemArbDaCovers */ - 0x70850f09, /* McEmemArbMisc0 */ - 0x001f0000, /* McEmemArbRing1Throttle */ - 0xe8000000, /* EmcFbioSpare */ - 0xff00ff88, /* EmcCfgRsv */ - }, - 0x00000040, /* EmcZcalWaitCnt */ - 0x00020000, /* EmcZcalInterval */ - 0x00000000, /* EmcCfg bit 27PERIODIC_QRST */ - 0x80000321, /* EmcMrs */ - 0x80100002, /* EmcEmrs */ - 0x00000000, /* EmcMrw1 */ - 0x00000000, /* EmcCfg bit 28 DYN_SELF_REF */ + 400000, /* SDRAM frequency */ + { + 0x00000012, /* EMC_RC */ + 0x0000008a, /* EMC_RFC */ + 0x0000000c, /* EMC_RAS */ + 0x00000004, /* EMC_RP */ + 0x00000003, /* EMC_R2W */ + 0x00000008, /* EMC_W2R */ + 0x00000002, /* EMC_R2P */ + 0x0000000a, /* EMC_W2P */ + 0x00000004, /* EMC_RD_RCD */ + 0x00000004, /* EMC_WR_RCD */ + 0x00000002, /* EMC_RRD */ + 0x00000001, /* EMC_REXT */ + 0x00000000, /* EMC_WEXT */ + 0x00000004, /* EMC_WDV */ + 0x00000006, /* EMC_QUSE */ + 0x00000004, /* EMC_QRST */ + 0x00000009, /* EMC_QSAFE */ + 0x0000000c, /* EMC_RDV */ + 0x00000bf5, /* EMC_REFRESH */ + 0x00000000, /* EMC_BURST_REFRESH_NUM */ + 0x000002fd, /* EMC_PRE_REFRESH_REQ_CNT */ + 0x00000001, /* EMC_PDEX2WR */ + 0x00000008, /* EMC_PDEX2RD */ + 0x00000001, /* EMC_PCHG2PDEN */ + 0x00000000, /* EMC_ACT2PDEN */ + 0x00000008, /* EMC_AR2PDEN */ + 0x0000000f, /* EMC_RW2PDEN */ + 0x00000090, /* EMC_TXSR */ + 0x00000200, /* EMC_TXSRDLL */ + 0x00000004, /* EMC_TCKE */ + 0x00000010, /* EMC_TFAW */ + 0x00000000, /* EMC_TRPAB */ + 0x00000004, /* EMC_TCLKSTABLE */ + 0x00000005, /* EMC_TCLKSTOP */ + 0x00000c35, /* EMC_TREFBW */ + 0x00000000, /* EMC_QUSE_EXTRA */ + 0x00000004, /* EMC_FBIO_CFG6 */ + 0x00000000, /* EMC_ODT_WRITE */ + 0x00000000, /* EMC_ODT_READ */ + 0x00007088, /* EMC_FBIO_CFG5 */ + 0x00360084, /* EMC_CFG_DIG_DLL */ + 0x00008000, /* EMC_CFG_DIG_DLL_PERIOD */ + 0x0000c002, /* EMC_DLL_XFORM_DQS0 */ + 0x00014002, /* EMC_DLL_XFORM_DQS1 */ + 0x0000c002, /* EMC_DLL_XFORM_DQS2 */ + 0x00014002, /* EMC_DLL_XFORM_DQS3 */ + 0x00014000, /* EMC_DLL_XFORM_DQS4 */ + 0x00014000, /* EMC_DLL_XFORM_DQS5 */ + 0x00014000, /* EMC_DLL_XFORM_DQS6 */ + 0x00014000, /* EMC_DLL_XFORM_DQS7 */ + 0x00000000, /* EMC_DLL_XFORM_QUSE0 */ + 0x00000000, /* EMC_DLL_XFORM_QUSE1 */ + 0x00000000, /* EMC_DLL_XFORM_QUSE2 */ + 0x00000000, /* EMC_DLL_XFORM_QUSE3 */ + 0x00000000, /* EMC_DLL_XFORM_QUSE4 */ + 0x00000000, /* EMC_DLL_XFORM_QUSE5 */ + 0x00000000, /* EMC_DLL_XFORM_QUSE6 */ + 0x00000000, /* EMC_DLL_XFORM_QUSE7 */ + 0x00000000, /* EMC_DLI_TRIM_TXDQS0 */ + 0x00000000, /* EMC_DLI_TRIM_TXDQS1 */ + 0x00000000, /* EMC_DLI_TRIM_TXDQS2 */ + 0x00000000, /* EMC_DLI_TRIM_TXDQS3 */ + 0x00000000, /* EMC_DLI_TRIM_TXDQS4 */ + 0x00000000, /* EMC_DLI_TRIM_TXDQS5 */ + 0x00000000, /* EMC_DLI_TRIM_TXDQS6 */ + 0x00000000, /* EMC_DLI_TRIM_TXDQS7 */ + 0x00018000, /* EMC_DLL_XFORM_DQ0 */ + 0x00018000, /* EMC_DLL_XFORM_DQ1 */ + 0x00018000, /* EMC_DLL_XFORM_DQ2 */ + 0x00018000, /* EMC_DLL_XFORM_DQ3 */ + 0x000002a0, /* EMC_XM2CMDPADCTRL */ + 0x0a00013d, /* EMC_XM2DQSPADCTRL2 */ + 0x00000000, /* EMC_XM2DQPADCTRL2 */ + 0x77fff884, /* EMC_XM2CLKPADCTRL */ + 0x01f1f508, /* EMC_XM2COMPPADCTRL */ + 0x05057404, /* EMC_XM2VTTGENPADCTRL */ + 0x54000007, /* EMC_XM2VTTGENPADCTRL2 */ + 0x080001e8, /* EMC_XM2QUSEPADCTRL */ + 0x08000021, /* EMC_XM2DQSPADCTRL3 */ + 0x00000802, /* EMC_CTT_TERM_CTRL */ + 0x00020000, /* EMC_ZCAL_INTERVAL */ + 0x00000100, /* EMC_ZCAL_WAIT_CNT */ + 0x0134000c, /* EMC_MRS_WAIT_CNT */ + 0xa0f10000, /* EMC_AUTO_CAL_CONFIG */ + 0x00000000, /* EMC_CTT */ + 0x00000000, /* EMC_CTT_DURATION */ + 0x800018d1, /* EMC_DYN_SELF_REF_CONTROL */ + 0x00000006, /* MC_EMEM_ARB_CFG */ + 0x80000048, /* MC_EMEM_ARB_OUTSTANDING_REQ */ + 0x00000001, /* MC_EMEM_ARB_TIMING_RCD */ + 0x00000002, /* MC_EMEM_ARB_TIMING_RP */ + 0x00000009, /* MC_EMEM_ARB_TIMING_RC */ + 0x00000005, /* MC_EMEM_ARB_TIMING_RAS */ + 0x00000007, /* MC_EMEM_ARB_TIMING_FAW */ + 0x00000001, /* MC_EMEM_ARB_TIMING_RRD */ + 0x00000002, /* MC_EMEM_ARB_TIMING_RAP2PRE */ + 0x00000008, /* MC_EMEM_ARB_TIMING_WAP2PRE */ + 0x00000002, /* MC_EMEM_ARB_TIMING_R2R */ + 0x00000002, /* MC_EMEM_ARB_TIMING_W2W */ + 0x00000003, /* MC_EMEM_ARB_TIMING_R2W */ + 0x00000006, /* MC_EMEM_ARB_TIMING_W2R */ + 0x06030202, /* MC_EMEM_ARB_DA_TURNS */ + 0x000d0709, /* MC_EMEM_ARB_DA_COVERS */ + 0x7086120a, /* MC_EMEM_ARB_MISC0 */ + 0x001f0000, /* MC_EMEM_ARB_RING1_THROTTLE */ + 0xe8000000, /* EMC_FBIO_SPARE */ + 0xff00ff88, /* EMC_CFG_RSV */ + }, + 0x00000040, /* EMC_ZCAL_WAIT_CNT after clock change */ + 0x001fffff, /* EMC_AUTO_CAL_INTERVAL */ + 0x00000000, /* EMC_CFG.PERIODIC_QRST */ + 0x80000521, /* Mode Register 0 */ + 0x80100002, /* Mode Register 1 */ + 0x80200000, /* Mode Register 2 */ + 0x00000000, /* EMC_CFG.DYN_SELF_REF */ + }, + { + 0x32, /* Rev 3.2 */ + 800000, /* SDRAM frequency */ + { + 0x00000025, /* EMC_RC */ + 0x00000116, /* EMC_RFC */ + 0x0000001a, /* EMC_RAS */ + 0x00000009, /* EMC_RP */ + 0x00000005, /* EMC_R2W */ + 0x0000000d, /* EMC_W2R */ + 0x00000004, /* EMC_R2P */ + 0x00000013, /* EMC_W2P */ + 0x00000009, /* EMC_RD_RCD */ + 0x00000009, /* EMC_WR_RCD */ + 0x00000006, /* EMC_RRD */ + 0x00000001, /* EMC_REXT */ + 0x00000000, /* EMC_WEXT */ + 0x00000007, /* EMC_WDV */ + 0x0000000a, /* EMC_QUSE */ + 0x00000009, /* EMC_QRST */ + 0x0000000b, /* EMC_QSAFE */ + 0x00000011, /* EMC_RDV */ + 0x0000182a, /* EMC_REFRESH */ + 0x00000000, /* EMC_BURST_REFRESH_NUM */ + 0x0000060a, /* EMC_PRE_REFRESH_REQ_CNT */ + 0x00000003, /* EMC_PDEX2WR */ + 0x00000012, /* EMC_PDEX2RD */ + 0x00000001, /* EMC_PCHG2PDEN */ + 0x00000000, /* EMC_ACT2PDEN */ + 0x0000000f, /* EMC_AR2PDEN */ + 0x00000018, /* EMC_RW2PDEN */ + 0x00000120, /* EMC_TXSR */ + 0x00000200, /* EMC_TXSRDLL */ + 0x00000005, /* EMC_TCKE */ + 0x00000020, /* EMC_TFAW */ + 0x00000000, /* EMC_TRPAB */ + 0x00000007, /* EMC_TCLKSTABLE */ + 0x00000008, /* EMC_TCLKSTOP */ + 0x0000186a, /* EMC_TREFBW */ + 0x0000000b, /* EMC_QUSE_EXTRA */ + 0x00000006, /* EMC_FBIO_CFG6 */ + 0x00000000, /* EMC_ODT_WRITE */ + 0x00000000, /* EMC_ODT_READ */ + 0x00005088, /* EMC_FBIO_CFG5 */ + 0xf01a0191, /* EMC_CFG_DIG_DLL */ + 0x00008000, /* EMC_CFG_DIG_DLL_PERIOD */ + 0x007fc00c, /* EMC_DLL_XFORM_DQS0 */ + 0x0000400c, /* EMC_DLL_XFORM_DQS1 */ + 0x007f800c, /* EMC_DLL_XFORM_DQS2 */ + 0x0000400c, /* EMC_DLL_XFORM_DQS3 */ + 0x0000000c, /* EMC_DLL_XFORM_DQS4 */ + 0x0000000c, /* EMC_DLL_XFORM_DQS5 */ + 0x0000000c, /* EMC_DLL_XFORM_DQS6 */ + 0x0000000c, /* EMC_DLL_XFORM_DQS7 */ + 0x00018000, /* EMC_DLL_XFORM_QUSE0 */ + 0x00000000, /* EMC_DLL_XFORM_QUSE1 */ + 0x00000000, /* EMC_DLL_XFORM_QUSE2 */ + 0x00000000, /* EMC_DLL_XFORM_QUSE3 */ + 0x00000000, /* EMC_DLL_XFORM_QUSE4 */ + 0x00000000, /* EMC_DLL_XFORM_QUSE5 */ + 0x00000000, /* EMC_DLL_XFORM_QUSE6 */ + 0x00000000, /* EMC_DLL_XFORM_QUSE7 */ + 0x00000002, /* EMC_DLI_TRIM_TXDQS0 */ + 0x00000002, /* EMC_DLI_TRIM_TXDQS1 */ + 0x00000002, /* EMC_DLI_TRIM_TXDQS2 */ + 0x00000002, /* EMC_DLI_TRIM_TXDQS3 */ + 0x00000002, /* EMC_DLI_TRIM_TXDQS4 */ + 0x00000002, /* EMC_DLI_TRIM_TXDQS5 */ + 0x00000002, /* EMC_DLI_TRIM_TXDQS6 */ + 0x00000002, /* EMC_DLI_TRIM_TXDQS7 */ + 0x00000008, /* EMC_DLL_XFORM_DQ0 */ + 0x00000008, /* EMC_DLL_XFORM_DQ1 */ + 0x00000008, /* EMC_DLL_XFORM_DQ2 */ + 0x00000008, /* EMC_DLL_XFORM_DQ3 */ + 0x000602a0, /* EMC_XM2CMDPADCTRL */ + 0x0a00013d, /* EMC_XM2DQSPADCTRL2 */ + 0x22220000, /* EMC_XM2DQPADCTRL2 */ + 0x77fff884, /* EMC_XM2CLKPADCTRL */ + 0x01f1f501, /* EMC_XM2COMPPADCTRL */ + 0x07077404, /* EMC_XM2VTTGENPADCTRL */ + 0x54000000, /* EMC_XM2VTTGENPADCTRL2 */ + 0x080001e8, /* EMC_XM2QUSEPADCTRL */ + 0x08000021, /* EMC_XM2DQSPADCTRL3 */ + 0x00000802, /* EMC_CTT_TERM_CTRL */ + 0x00020000, /* EMC_ZCAL_INTERVAL */ + 0x00000100, /* EMC_ZCAL_WAIT_CNT */ + 0x00a8000c, /* EMC_MRS_WAIT_CNT */ + 0xa0f10000, /* EMC_AUTO_CAL_CONFIG */ + 0x00000000, /* EMC_CTT */ + 0x00000000, /* EMC_CTT_DURATION */ + 0x8000309f, /* EMC_DYN_SELF_REF_CONTROL */ + 0x0000000c, /* MC_EMEM_ARB_CFG */ + 0x80000090, /* MC_EMEM_ARB_OUTSTANDING_REQ */ + 0x00000004, /* MC_EMEM_ARB_TIMING_RCD */ + 0x00000005, /* MC_EMEM_ARB_TIMING_RP */ + 0x00000013, /* MC_EMEM_ARB_TIMING_RC */ + 0x0000000c, /* MC_EMEM_ARB_TIMING_RAS */ + 0x0000000f, /* MC_EMEM_ARB_TIMING_FAW */ + 0x00000003, /* MC_EMEM_ARB_TIMING_RRD */ + 0x00000003, /* MC_EMEM_ARB_TIMING_RAP2PRE */ + 0x0000000c, /* MC_EMEM_ARB_TIMING_WAP2PRE */ + 0x00000002, /* MC_EMEM_ARB_TIMING_R2R */ + 0x00000002, /* MC_EMEM_ARB_TIMING_W2W */ + 0x00000004, /* MC_EMEM_ARB_TIMING_R2W */ + 0x00000008, /* MC_EMEM_ARB_TIMING_W2R */ + 0x08040202, /* MC_EMEM_ARB_DA_TURNS */ + 0x00160d13, /* MC_EMEM_ARB_DA_COVERS */ + 0x712c2414, /* MC_EMEM_ARB_MISC0 */ + 0x001f0000, /* MC_EMEM_ARB_RING1_THROTTLE */ + 0xf8000000, /* EMC_FBIO_SPARE */ + 0xff00ff49, /* EMC_CFG_RSV */ + }, + 0x00000040, /* EMC_ZCAL_WAIT_CNT after clock change */ + 0x001fffff, /* EMC_AUTO_CAL_INTERVAL */ + 0x00000001, /* EMC_CFG.PERIODIC_QRST */ + 0x80000d71, /* Mode Register 0 */ + 0x80100002, /* Mode Register 1 */ + 0x80200018, /* Mode Register 2 */ + 0x00000000, /* EMC_CFG.DYN_SELF_REF */ }, -//copy of 333 MHz - { - 0x32, /* Rev 3.2 */ - 408000, /* SDRAM frequency [kHz] */ - { - 0x00000010, /* EmcRc */ - 0x00000055, /* EmcRfc */ - 0x0000000c, /* EmcRas */ - 0x00000004, /* EmcRp */ - 0x00000006, /* EmcR2w */ - 0x00000008, /* EmcW2r */ - 0x00000003, /* EmcR2p */ - 0x00000009, /* EmcW2p */ - 0x00000004, /* EmcRdRcd */ - 0x00000003, /* EmcWrRcd */ - 0x00000002, /* EmcRrd */ - 0x00000001, /* EmcRext */ - 0x00000000, /* EmcWext */ - 0x00000004, /* EmcWdv */ - 0x00000006, /* EmcQUse */ - 0x00000004, /* EmcQRst */ - 0x0000000a, /* EmcQSafe */ - 0x0000000c, /* EmcRdv */ - 0x000009e8, /* EmcRefresh */ - 0x00000000, /* EmcBurstRefreshNum */ - 0x0000027e, /* EmcPreRefreshReqCnt */ - 0x0000000a, /* EmcPdEx2Wr */ - 0x00000008, /* EmcPdEx2Rd */ - 0x00000007, /* EmcPChg2Pden */ - 0x00000000, /* EmcAct2Pden */ - 0x00000007, /* EmcAr2Pden */ - 0x0000000e, /* EmcRw2Pden */ - 0x000000b4, /* EmcTxsr */ - 0x00000200, /* EmcTxsrDll */ - 0x00000004, /* EmcTcke */ - 0x00000015, /* EmcTfaw */ - 0x00000000, /* EmcTrpab */ - 0x00000004, /* EmcTClkStable */ - 0x00000005, /* EmcTClkStop */ - 0x00000a28, /* EmcTRefBw */ - 0x00000000, /* EmcQUseExtra */ - 0x00000006, /* EmcFbioCfg6 */ - 0x00000000, /* EmcOdtWrite */ - 0x00000000, /* EmcOdtRead */ - 0x00007088, /* EmcFbioCfg5 */ - 0x002600a4, /* EmcCfgDigDll */ - 0x00008000, /* EmcCfgDigDllPeriod */ - 0x00014000, /* EmcDllXformDqs0 */ - 0x00014000, /* EmcDllXformDqs1 */ - 0x00014000, /* EmcDllXformDqs2 */ - 0x00014000, /* EmcDllXformDqs3 */ - 0x00014000, /* EmcDllXformDqs4 */ - 0x00014000, /* EmcDllXformDqs5 */ - 0x00014000, /* EmcDllXformDqs6 */ - 0x00014000, /* EmcDllXformDqs7 */ - 0x00000000, /* EmcDllXformQUse0 */ - 0x00000000, /* EmcDllXformQUse1 */ - 0x00000000, /* EmcDllXformQUse2 */ - 0x00000000, /* EmcDllXformQUse3 */ - 0x00000000, /* EmcDllXformQUse4 */ - 0x00000000, /* EmcDllXformQUse5 */ - 0x00000000, /* EmcDllXformQUse6 */ - 0x00000000, /* EmcDllXformQUse7 */ - 0x00000000, /* EmcDliTrimTxDqs0 */ - 0x00000000, /* EmcDliTrimTxDqs1 */ - 0x00000000, /* EmcDliTrimTxDqs2 */ - 0x00000000, /* EmcDliTrimTxDqs3 */ - 0x00000000, /* EmcDliTrimTxDqs4 */ - 0x00000000, /* EmcDliTrimTxDqs5 */ - 0x00000000, /* EmcDliTrimTxDqs6 */ - 0x00000000, /* EmcDliTrimTxDqs7 */ - 0x00020000, /* EmcDllXformDq0 */ - 0x00020000, /* EmcDllXformDq1 */ - 0x00020000, /* EmcDllXformDq2 */ - 0x00020000, /* EmcDllXformDq3 */ - 0x000002a0, /* EmcXm2CmdPadCtrl */ - 0x0800013d, /* EmcXm2DqsPadCtrl2 */ - 0x00000000, /* EmcXm2DqPadCtrl2 */ - 0x77fff884, /* EmcXm2ClkPadCtrl */ - 0x01f1f508, /* EmcXm2CompPadCtrl */ - 0x05057404, /* EmcXm2VttGenPadCtrl */ - 0x54000007, /* EmcXm2VttGenPadCtrl2 */ - 0x080001e8, /* EmcXm2QUsePadCtrl */ - 0x08000021, /* EmcXm2DqsPadCtrl3 */ - 0x00000802, /* EmcCttTermCtrl */ - 0x00020000, /* EmcZcalInterval */ - 0x00000040, /* EmcZcalWaitCnt */ - 0x016a000c, /* EmcMrsWaitCnt */ - 0x001fffff, /* EmcAutoCalInterval */ - 0x00000000, /* EmcCtt */ - 0x00000000, /* EmcCttDuration */ - 0x800014d2, /* EmcDynSelfRefControl */ - 0x00000005, /* McEmemArbCfg */ - 0x8000003c, /* McEmemArbOutstandingReq */ - 0x00000001, /* McEmemArbTimingRcd */ - 0x00000002, /* McEmemArbTimingRp */ - 0x00000008, /* McEmemArbTimingRc */ - 0x00000005, /* McEmemArbTimingRas */ - 0x0000000a, /* McEmemArbTimingFaw */ - 0x00000001, /* McEmemArbTimingRrd */ - 0x00000002, /* McEmemArbTimingRap2Pre */ - 0x00000007, /* McEmemArbTimingWap2Pre */ - 0x00000002, /* McEmemArbTimingR2R */ - 0x00000002, /* McEmemArbTimingW2W */ - 0x00000005, /* McEmemArbTimingR2W */ - 0x00000006, /* McEmemArbTimingW2R */ - 0x06030202, /* McEmemArbDaTurns */ - 0x000b0608, /* McEmemArbDaCovers */ - 0x70850f09, /* McEmemArbMisc0 */ - 0x001f0000, /* McEmemArbRing1Throttle */ - 0xe8000000, /* EmcFbioSpare */ - 0xff00ff88, /* EmcCfgRsv */ - }, - 0x00000040, /* EmcZcalWaitCnt */ - 0x00020000, /* EmcZcalInterval */ - 0x00000000, /* EmcCfg bit 27PERIODIC_QRST */ - 0x80000321, /* EmcMrs */ - 0x80100002, /* EmcEmrs */ - 0x00000000, /* EmcMrw1 */ - 0x00000000, /* EmcCfg bit 28 DYN_SELF_REF */ - }, }; int colibri_t30_emc_init(void) { -//27, 54, 108, 416, 533 -//25.5, 51, 102, 408, 533, 750 -//25.5, 51, 102, 204, 533 - tegra_init_emc(colibri_t30_emc_tables_mt41k256m16re_15e, - ARRAY_SIZE(colibri_t30_emc_tables_mt41k256m16re_15e)); + tegra_init_emc(colibri_t30_emc_tables_nt5cc256m16cp, + ARRAY_SIZE(colibri_t30_emc_tables_nt5cc256m16cp)); return 0; } -- cgit v1.2.3