PERFORCE change 154032 for review
    Sam Leffler 
    sam at FreeBSD.org
       
    Wed Dec  3 18:08:12 PST 2008
    
    
  
http://perforce.freebsd.org/chv.cgi?CH=154032
Change 154032 by sam at sam_ebb on 2008/12/04 02:07:57
	correct ixp425 ram sizing
Affected files ...
.. //depot/projects/vap/sys/arm/xscale/ixp425/ixp425_mem.c#4 edit
Differences ...
==== //depot/projects/vap/sys/arm/xscale/ixp425/ixp425_mem.c#4 (text+ko) ====
@@ -87,14 +87,16 @@
 uint32_t
 ixp435_ddram_size(void)
 {
-#define MCU_REG_READ(x)	(*(volatile uint32_t *)(IXP435_MCU_VBASE + (x)))
+#define MCU_REG_READ(x)	(*(volatile uint32_t *)(IXP425_MCU_VBASE + (x)))
+	uint32_t sbr0;
 
-printf("sdir 0x%x\n", MCU_REG_READ(MCU_DDR_SDIR));/*XXX*/
-printf("sdcr0 0x%x\n", MCU_REG_READ(MCU_DDR_SDCR0));/*XXX*/
-printf("sdcr1 0x%x\n", MCU_REG_READ(MCU_DDR_SDCR1));/*XXX*/
-printf("sdbr 0x%x\n", MCU_REG_READ(MCU_DDR_SDBR));/*XXX*/
-printf("sbr0 0x%x\n", MCU_REG_READ(MCU_DDR_SBR0));/*XXX*/
-printf("sbr1 0x%x\n", MCU_REG_READ(MCU_DDR_SBR1));/*XXX*/
-	return 128*1024*1024;	/*XXX*/
+	/*
+	 * Table 198, page 516 shows DDR-I/II SDRAM bank sizes
+	 * for SBR0 and SBR1.  The manual states both banks must
+	 * be programmed to be the same size.  We just assume
+	 * it's done right and calculate 2x for the memory size.
+	 */
+	sbr0 = MCU_REG_READ(MCU_DDR_SBR0);
+	return 2 * 16*(sbr0 & 0x7f) * 1024 * 1024;
 #undef MCU_REG_READ
 }
    
    
More information about the p4-projects
mailing list