Skip to contentSkip to conversation

MIPS: BCM63xx: fix SDRAM size computation for BCM6345

PATCH In review Florian Fainelli 2 participants 2 messages Nov 16, 2011 – Nov 17, 2011 MIPS

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/3 MIPS: BCM63xx: fix SDRAM size computation for BCM6345

Instead of hardcoding the amount of available RAM, read the number of effective multiples of 8MB from SDRAM_MBASE_REG.

---
Changes since v1:
- rebased against mips-for-linux-next
- folded patch 1 and 2 together

arch/mips/bcm63xx/cpu.c +4 -2
index 8094168..8f0d6c7 100644
@@ -170,8 +170,10 @@ static unsigned int detect_memory_size(void)
 	unsigned int cols = 0, rows = 0, is_32bits = 0, banks = 0;
 	u32 val;
 
-	if (BCMCPU_IS_6345())
-		return (8 * 1024 * 1024);
+	if (BCMCPU_IS_6345()) {
+		val = bcm_sdram_readl(SDRAM_MBASE_REG);
+		return (val * 8 * 1024 * 1024);
+	}
 
 	if (BCMCPU_IS_6338() || BCMCPU_IS_6348()) {
 		val = bcm_sdram_readl(SDRAM_CFG_REG);
arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h +2 -0
index 5005750..6c9940f 100644
@@ -895,6 +895,8 @@
 #define SDRAM_CFG_BANK_SHIFT		13
 #define SDRAM_CFG_BANK_MASK		(1 << SDRAM_CFG_BANK_SHIFT)
 
+#define SDRAM_MBASE_REG			0xc
+
 #define SDRAM_PRIO_REG			0x2C
 #define SDRAM_PRIO_MIPS_SHIFT		29
 #define SDRAM_PRIO_MIPS_MASK		(1 << SDRAM_PRIO_MIPS_SHIFT)
Signature · 1 line
1.7.5.4