linux-mips
[Top] [All Lists]

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

To: Ralf Baechle <ralf@linux-mips.org>, linux-mips@linux-mips.org
Subject: [PATCH 1/3 v2] MIPS: BCM63xx: fix SDRAM size computation for BCM6345
From: Florian Fainelli <florian@openwrt.org>
Date: Wed, 16 Nov 2011 20:10:36 +0100
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=sender:from:to:subject:date:user-agent:mime-version:content-type :content-transfer-encoding:message-id; bh=WV9hU6qHdMEzlbK+w61BFjhCHLr/uX3oIcegm8LYpL0=; b=XAyjL8MRXuUwBnGlA8kRPRU2zwegj3UKTyHMFRcSZz7Q1y143YkrRrbZY7Ws/tJLJV TIJPUZp5/FP2lSx+tR223/JNglGij0Vl6ctvEYCNtaMRC3GEhC9dIE3giKT8VFIXm+o4 Gth9U5TL+wC3HDuyTBaNNSLy54URWfVTMW7v0=
Sender: linux-mips-bounce@linux-mips.org
User-agent: KMail/1.13.7 (Linux/3.1.0-rc7-amd64; KDE/4.6.5; x86_64; ; )
Instead of hardcoding the amount of available RAM, read the number of
effective multiples of 8MB from SDRAM_MBASE_REG.

Signed-off-by: Florian Fainelli <florian@openwrt.org>
---
Changes since v1:
- rebased against mips-for-linux-next
- folded patch 1 and 2 together

diff --git a/arch/mips/bcm63xx/cpu.c b/arch/mips/bcm63xx/cpu.c
index 8094168..8f0d6c7 100644
--- a/arch/mips/bcm63xx/cpu.c
+++ b/arch/mips/bcm63xx/cpu.c
@@ -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);
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h 
b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
index 5005750..6c9940f 100644
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
@@ -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)
-- 
1.7.5.4


<Prev in Thread] Current Thread [Next in Thread>