linux-mips
[Top] [All Lists]

[PATCH 2/3 v2] MIPS: BCM63xx: remove BCM6345 hacks to read base boot add

To: Ralf Baechle <ralf@linux-mips.org>, linux-mips@linux-mips.org
Subject: [PATCH 2/3 v2] MIPS: BCM63xx: remove BCM6345 hacks to read base boot address
From: Florian Fainelli <florian@openwrt.org>
Date: Wed, 16 Nov 2011 20:11:12 +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=TEd6S5VxNgbZAnO0EvVIQe78Fj0JE5zjfrXH5vlHNME=; b=erWDqOloDEPi+9PeNEEuczX1aBmDkMlgcEuvY5PpZiaks7OVGmCfWZh3OC601HMb6J Ys/ug10NQykmT2qxV1WreXB36xMXVtqi0g8i7+eR6VZQ7/TX1PROBPKeYchklbyHQbVX 1zV/4dTjuakf1c5xfLI23E97s0qPivOqMZ8pg=
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; ; )
Though BCM6345 does not technically have the same MPI register layout
than the other SoCs, reading the chip-select registers is done the same
way, and particularly for chip-select 0, which is the boot flash.

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

diff --git a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
b/arch/mips/bcm63xx/boards/board_bcm963xx.c
index 40b223b..ac948c2 100644
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -709,15 +709,9 @@ void __init board_prom_init(void)
        char cfe_version[32];
        u32 val;
 
-       /* read base address of boot chip select (0)
-        * 6345 does not have MPI but boots from standard
-        * MIPS Flash address */
-       if (BCMCPU_IS_6345())
-               val = 0x1fc00000;
-       else {
-               val = bcm_mpi_readl(MPI_CSBASE_REG(0));
-               val &= MPI_CSBASE_BASE_MASK;
-       }
+       /* read base address of boot chip select (0) */
+       val = bcm_mpi_readl(MPI_CSBASE_REG(0));
+       val &= MPI_CSBASE_BASE_MASK;
        boot_addr = (u8 *)KSEG1ADDR(val);
 
        /* dump cfe version */
@@ -893,12 +887,9 @@ int __init board_register_devices(void)
                bcm63xx_dsp_register(&board.dsp);
 
        /* read base address of boot chip select (0) */
-       if (BCMCPU_IS_6345())
-               val = 0x1fc00000;
-       else {
-               val = bcm_mpi_readl(MPI_CSBASE_REG(0));
-               val &= MPI_CSBASE_BASE_MASK;
-       }
+       val = bcm_mpi_readl(MPI_CSBASE_REG(0));
+       val &= MPI_CSBASE_BASE_MASK;
+
        mtd_resources[0].start = val;
        mtd_resources[0].end = 0x1FFFFFFF;
 
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h 
b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
index 23403a3..5b8d15b 100644
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
@@ -215,7 +215,7 @@ enum bcm63xx_regs_set {
 #define BCM_6345_ENETDMAS_BASE         (0xfffe2a00)
 #define BCM_6345_ENETSW_BASE           (0xdeadbeef)
 #define BCM_6345_PCMCIA_BASE           (0xfffe2028)
-#define BCM_6345_MPI_BASE              (0xdeadbeef)
+#define BCM_6345_MPI_BASE              (0xfffe2000)
 #define BCM_6345_OHCI0_BASE            (0xfffe2100)
 #define BCM_6345_OHCI_PRIV_BASE                (0xfffe2200)
 #define BCM_6345_USBH_PRIV_BASE                (0xdeadbeef)
-- 
1.7.5.4


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