From 9e84720de1c4062419510c2892cc43d5ba792415 Mon Sep 17 00:00:00 2001 From: Joel Fernandes Date: Fri, 15 Jul 2011 11:22:01 +0530 Subject: [PATCH] Beagle Rev C5 support This patch adds Rev C5 support for a new memory chip that was added to the Beagleboard Revision C5. The chip is 256MB SDRAM and the following patch enables it. The micron memory chip part is: MT29C4G48MAZAPAKQ-5 IT. Signed-off-by: Joel A Fernandes Signed-off-by: Koen Kooi Signed-off-by: Anand Gadiyar --- board/omap3530beagle/omap3530beagle.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/board/omap3530beagle/omap3530beagle.c b/board/omap3530beagle/omap3530beagle.c index c85bebf..102c6d9 100644 --- a/board/omap3530beagle/omap3530beagle.c +++ b/board/omap3530beagle/omap3530beagle.c @@ -213,6 +213,7 @@ int beagle_revision(void) #define MICRON_DDR 0 #define NUMONYX_MCP 1 +#define MICRON_MCP 2 int identify_xm_ddr() { int mfr, id; @@ -235,6 +236,8 @@ int identify_xm_ddr() 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. @@ -261,6 +264,17 @@ void config_3430sdram_ddr(void) __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); @@ -561,6 +575,8 @@ int misc_init_r(void) 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; -- 2.39.2