#define MICRON_DDR 0
#define NUMONYX_MCP 1
+#define MICRON_MCP 2
int identify_xm_ddr()
{
int mfr, id;
return MICRON_DDR;
if ((mfr == 0x20) && (id == 0xba))
return NUMONYX_MCP;
+ if ((mfr == 0x2c) && (id == 0xbc))
+ return MICRON_MCP;
}
/*********************************************************************
* config_3430sdram_ddr() - Init DDR on 3430SDP dev board.
__raw_writel(NUMONYX_V_ACTIMB_165, SDRC_ACTIM_CTRLB_1);
__raw_writel(SDP_3430_SDRC_RFR_CTRL_165MHz, SDRC_RFR_CTRL_0);
__raw_writel(SDP_3430_SDRC_RFR_CTRL_165MHz, SDRC_RFR_CTRL_1);
+ } else if (identify_xm_ddr() == MICRON_MCP) {
+ /* Beagleboard Rev C5 */
+ __raw_writel(0x2, SDRC_CS_CFG); /* 256MB/bank */
+ __raw_writel(SDP_SDRC_MDCFG_0_DDR_MICRON_XM, SDRC_MCFG_0);
+ __raw_writel(SDP_SDRC_MDCFG_0_DDR_MICRON_XM, SDRC_MCFG_1);
+ __raw_writel(MICRON_V_ACTIMA_200, SDRC_ACTIM_CTRLA_0);
+ __raw_writel(MICRON_V_ACTIMB_200, SDRC_ACTIM_CTRLB_0);
+ __raw_writel(MICRON_V_ACTIMA_200, SDRC_ACTIM_CTRLA_1);
+ __raw_writel(MICRON_V_ACTIMB_200, SDRC_ACTIM_CTRLB_1);
+ __raw_writel(SDP_3430_SDRC_RFR_CTRL_200MHz, SDRC_RFR_CTRL_0);
+ __raw_writel(SDP_3430_SDRC_RFR_CTRL_200MHz, SDRC_RFR_CTRL_1);
} else {
__raw_writel(0x1, SDRC_CS_CFG); /* 128MB/bank */
__raw_writel(SDP_SDRC_MDCFG_0_DDR, SDRC_MCFG_0);
case REVISION_C4:
if (identify_xm_ddr() == NUMONYX_MCP)
printf("Beagle Rev C4 from Special Computing\n");
+ else if(identify_xm_ddr() == MICRON_MCP)
+ printf("Beagle Rev C5\n");
else
printf("Beagle Rev C4\n");
break;