|
|
@@ -1,144 +0,0 @@
|
|
|
-From f888824d352df894ab721a5ca067b0313500efe7 Mon Sep 17 00:00:00 2001
|
|
|
-From: Jonas Gorski <[email protected]>
|
|
|
-Date: Thu, 3 May 2012 12:17:54 +0200
|
|
|
-Subject: [PATCH 38/59] MIPS: BCM63XX: store the flash type in global variable
|
|
|
-
|
|
|
----
|
|
|
- arch/mips/bcm63xx/dev-flash.c | 36 +++++++++++++------
|
|
|
- .../include/asm/mach-bcm63xx/bcm63xx_dev_flash.h | 2 +
|
|
|
- 2 files changed, 26 insertions(+), 12 deletions(-)
|
|
|
-
|
|
|
---- a/arch/mips/bcm63xx/dev-flash.c
|
|
|
-+++ b/arch/mips/bcm63xx/dev-flash.c
|
|
|
-@@ -25,6 +25,8 @@
|
|
|
- #include <bcm63xx_regs.h>
|
|
|
- #include <bcm63xx_io.h>
|
|
|
-
|
|
|
-+int bcm63xx_attached_flash = -1;
|
|
|
-+
|
|
|
- static struct mtd_partition mtd_partitions[] = {
|
|
|
- {
|
|
|
- .name = "cfe",
|
|
|
-@@ -81,7 +83,8 @@ static int __init bcm63xx_detect_flash_t
|
|
|
- case BCM6318_CPU_ID:
|
|
|
- /* only support serial flash */
|
|
|
- bcm63xx_spi_flash_info[0].max_speed_hz = 62500000;
|
|
|
-- return BCM63XX_FLASH_TYPE_SERIAL;
|
|
|
-+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_SERIAL;
|
|
|
-+ break;
|
|
|
- case BCM6328_CPU_ID:
|
|
|
- val = bcm_misc_readl(MISC_STRAPBUS_6328_REG);
|
|
|
- if (val & STRAPBUS_6328_HSSPI_CLK_FAST)
|
|
|
-@@ -90,21 +93,24 @@ static int __init bcm63xx_detect_flash_t
|
|
|
- bcm63xx_spi_flash_info[0].max_speed_hz = 16666667;
|
|
|
-
|
|
|
- if (val & STRAPBUS_6328_BOOT_SEL_SERIAL)
|
|
|
-- return BCM63XX_FLASH_TYPE_SERIAL;
|
|
|
-+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_SERIAL;
|
|
|
- else
|
|
|
-- return BCM63XX_FLASH_TYPE_NAND;
|
|
|
-+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_NAND;
|
|
|
-+ break;
|
|
|
- case BCM6338_CPU_ID:
|
|
|
- case BCM6345_CPU_ID:
|
|
|
- case BCM6348_CPU_ID:
|
|
|
- /* no way to auto detect so assume parallel */
|
|
|
-- return BCM63XX_FLASH_TYPE_PARALLEL;
|
|
|
-+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_PARALLEL;
|
|
|
-+ break;
|
|
|
- case BCM3368_CPU_ID:
|
|
|
- case BCM6358_CPU_ID:
|
|
|
- val = bcm_gpio_readl(GPIO_STRAPBUS_REG);
|
|
|
- if (val & STRAPBUS_6358_BOOT_SEL_PARALLEL)
|
|
|
-- return BCM63XX_FLASH_TYPE_PARALLEL;
|
|
|
-+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_PARALLEL;
|
|
|
- else
|
|
|
-- return BCM63XX_FLASH_TYPE_SERIAL;
|
|
|
-+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_SERIAL;
|
|
|
-+ break;
|
|
|
- case BCM6362_CPU_ID:
|
|
|
- val = bcm_misc_readl(MISC_STRAPBUS_6362_REG);
|
|
|
- if (val & STRAPBUS_6362_HSSPI_CLK_FAST)
|
|
|
-@@ -113,9 +119,10 @@ static int __init bcm63xx_detect_flash_t
|
|
|
- bcm63xx_spi_flash_info[0].max_speed_hz = 20000000;
|
|
|
-
|
|
|
- if (val & STRAPBUS_6362_BOOT_SEL_SERIAL)
|
|
|
-- return BCM63XX_FLASH_TYPE_SERIAL;
|
|
|
-+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_SERIAL;
|
|
|
- else
|
|
|
-- return BCM63XX_FLASH_TYPE_NAND;
|
|
|
-+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_NAND;
|
|
|
-+ break;
|
|
|
- case BCM6368_CPU_ID:
|
|
|
- val = bcm_gpio_readl(GPIO_STRAPBUS_REG);
|
|
|
- if (val & STRAPBUS_6368_SPI_CLK_FAST)
|
|
|
-@@ -123,11 +130,16 @@ static int __init bcm63xx_detect_flash_t
|
|
|
-
|
|
|
- switch (val & STRAPBUS_6368_BOOT_SEL_MASK) {
|
|
|
- case STRAPBUS_6368_BOOT_SEL_NAND:
|
|
|
-- return BCM63XX_FLASH_TYPE_NAND;
|
|
|
-+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_NAND;
|
|
|
-+ break;
|
|
|
- case STRAPBUS_6368_BOOT_SEL_SERIAL:
|
|
|
-- return BCM63XX_FLASH_TYPE_SERIAL;
|
|
|
-+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_SERIAL;
|
|
|
-+ break;
|
|
|
- case STRAPBUS_6368_BOOT_SEL_PARALLEL:
|
|
|
-- return BCM63XX_FLASH_TYPE_PARALLEL;
|
|
|
-+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_PARALLEL;
|
|
|
-+ break;
|
|
|
-+ default:
|
|
|
-+ return -EINVAL;
|
|
|
- }
|
|
|
- case BCM63268_CPU_ID:
|
|
|
- val = bcm_misc_readl(MISC_STRAPBUS_63268_REG);
|
|
|
-@@ -137,22 +149,24 @@ static int __init bcm63xx_detect_flash_t
|
|
|
- bcm63xx_spi_flash_info[0].max_speed_hz = 20000000;
|
|
|
-
|
|
|
- if (val & STRAPBUS_63268_BOOT_SEL_SERIAL)
|
|
|
-- return BCM63XX_FLASH_TYPE_SERIAL;
|
|
|
-+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_SERIAL;
|
|
|
- else
|
|
|
-- return BCM63XX_FLASH_TYPE_NAND;
|
|
|
-+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_NAND;
|
|
|
- default:
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
-+
|
|
|
-+ return 0;
|
|
|
- }
|
|
|
-
|
|
|
- int __init bcm63xx_flash_register(void)
|
|
|
- {
|
|
|
-- int flash_type;
|
|
|
- u32 val;
|
|
|
-
|
|
|
-- flash_type = bcm63xx_detect_flash_type();
|
|
|
-
|
|
|
-- switch (flash_type) {
|
|
|
-+ bcm63xx_detect_flash_type();
|
|
|
-+
|
|
|
-+ switch (bcm63xx_attached_flash) {
|
|
|
- case BCM63XX_FLASH_TYPE_PARALLEL:
|
|
|
- /* read base address of boot chip select (0) */
|
|
|
- val = bcm_mpi_readl(MPI_CSBASE_REG(0));
|
|
|
-@@ -177,7 +191,7 @@ int __init bcm63xx_flash_register(void)
|
|
|
- return -ENODEV;
|
|
|
- default:
|
|
|
- pr_err("flash detection failed for BCM%x: %d\n",
|
|
|
-- bcm63xx_get_cpu_id(), flash_type);
|
|
|
-+ bcm63xx_get_cpu_id(), bcm63xx_attached_flash);
|
|
|
- return -ENODEV;
|
|
|
- }
|
|
|
- }
|
|
|
---- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h
|
|
|
-+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h
|
|
|
-@@ -7,6 +7,8 @@ enum {
|
|
|
- BCM63XX_FLASH_TYPE_NAND,
|
|
|
- };
|
|
|
-
|
|
|
-+extern int bcm63xx_attached_flash;
|
|
|
-+
|
|
|
- int __init bcm63xx_flash_register(void);
|
|
|
-
|
|
|
- #endif /* __BCM63XX_FLASH_H */
|