aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm47xx/patches-3.0/0014-ssb-move-flash-to-chipcommon.patch
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@openwrt.org>2011-08-12 16:37:22 +0000
committerHauke Mehrtens <hauke@openwrt.org>2011-08-12 16:37:22 +0000
commit159917d09d776fd16d633cc0bc99e169c71a09c2 (patch)
tree90071b1d6f7a70eb5da415f060a1b39e87c1c9db /target/linux/brcm47xx/patches-3.0/0014-ssb-move-flash-to-chipcommon.patch
parentd652a4b38a266284266d0b3aa957d2ac5bd8ec82 (diff)
downloadupstream-159917d09d776fd16d633cc0bc99e169c71a09c2.tar.gz
upstream-159917d09d776fd16d633cc0bc99e169c71a09c2.tar.bz2
upstream-159917d09d776fd16d633cc0bc99e169c71a09c2.zip
brcm47xx: fix flash detection on chipcommon less devices.
This closes #9906 Thank you for the report Kim git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27967 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/brcm47xx/patches-3.0/0014-ssb-move-flash-to-chipcommon.patch')
-rw-r--r--target/linux/brcm47xx/patches-3.0/0014-ssb-move-flash-to-chipcommon.patch50
1 files changed, 28 insertions, 22 deletions
diff --git a/target/linux/brcm47xx/patches-3.0/0014-ssb-move-flash-to-chipcommon.patch b/target/linux/brcm47xx/patches-3.0/0014-ssb-move-flash-to-chipcommon.patch
index 0d478883f3..91d8acb267 100644
--- a/target/linux/brcm47xx/patches-3.0/0014-ssb-move-flash-to-chipcommon.patch
+++ b/target/linux/brcm47xx/patches-3.0/0014-ssb-move-flash-to-chipcommon.patch
@@ -1,4 +1,4 @@
-From be495ba9c365a31cf6a9fa0f67df9a9a9e0f1a1f Mon Sep 17 00:00:00 2001
+From e8afde87ecf56beff67c7d5371cabaa4fc018541 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sat, 23 Jul 2011 23:57:06 +0200
Subject: [PATCH 14/26] ssb: move flash to chipcommon
@@ -8,10 +8,10 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
arch/mips/bcm47xx/nvram.c | 8 +++---
arch/mips/bcm47xx/wgt634u.c | 8 +++---
- drivers/ssb/driver_mipscore.c | 31 +++++++++++++++++++---------
- include/linux/ssb/ssb_driver_chipcommon.h | 18 ++++++++++++++++
+ drivers/ssb/driver_mipscore.c | 36 +++++++++++++++++++++-------
+ include/linux/ssb/ssb_driver_chipcommon.h | 18 ++++++++++++++
include/linux/ssb/ssb_driver_mips.h | 4 ---
- 5 files changed, 47 insertions(+), 22 deletions(-)
+ 5 files changed, 53 insertions(+), 21 deletions(-)
--- a/arch/mips/bcm47xx/nvram.c
+++ b/arch/mips/bcm47xx/nvram.c
@@ -56,7 +56,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
ARRAY_SIZE(wgt634u_devices));
--- a/drivers/ssb/driver_mipscore.c
+++ b/drivers/ssb/driver_mipscore.c
-@@ -190,16 +190,27 @@ static void ssb_mips_flash_detect(struct
+@@ -190,16 +190,34 @@ static void ssb_mips_flash_detect(struct
{
struct ssb_bus *bus = mcore->dev->bus;
@@ -64,12 +64,16 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
- if (bus->chipco.dev) {
- mcore->flash_window = 0x1c000000;
- mcore->flash_window_size = 0x02000000;
-- if ((ssb_read32(bus->chipco.dev, SSB_CHIPCO_FLASH_CFG)
-- & SSB_CHIPCO_CFG_DS16) == 0)
-- mcore->flash_buswidth = 1;
-- } else {
-- mcore->flash_window = 0x1fc00000;
-- mcore->flash_window_size = 0x00400000;
++ /* When there is no chipcommon on the bus there is 4MB flash */
++ if (!bus->chipco.dev) {
++ pr_info("found parallel flash.\n");
++ bus->chipco.flash_type = SSB_PFLASH;
++ bus->chipco.pflash.window = SSB_FLASH1;
++ bus->chipco.pflash.window_size = SSB_FLASH1_SZ;
++ bus->chipco.pflash.buswidth = 2;
++ return;
++ }
++
+ switch (bus->chipco.capabilities & SSB_CHIPCO_CAP_FLASHT) {
+ case SSB_CHIPCO_FLASHT_STSER:
+ case SSB_CHIPCO_FLASHT_ATSER:
@@ -78,17 +82,19 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+ case SSB_CHIPCO_FLASHT_PARA:
+ pr_info("found parallel flash.\n");
+ bus->chipco.flash_type = SSB_PFLASH;
-+ bus->chipco.pflash.buswidth = 2;
-+ if (bus->chipco.dev) {
-+ bus->chipco.pflash.window = 0x1c000000;
-+ bus->chipco.pflash.window_size = 0x02000000;
-+ if ((ssb_read32(bus->chipco.dev, SSB_CHIPCO_FLASH_CFG)
-+ & SSB_CHIPCO_CFG_DS16) == 0)
-+ bus->chipco.pflash.buswidth = 1;
-+ } else {
-+ bus->chipco.pflash.window = 0x1fc00000;
-+ bus->chipco.pflash.window_size = 0x00400000;
-+ }
++ bus->chipco.pflash.window = SSB_FLASH2;
++ bus->chipco.pflash.window_size = SSB_FLASH2_SZ;
+ if ((ssb_read32(bus->chipco.dev, SSB_CHIPCO_FLASH_CFG)
+- & SSB_CHIPCO_CFG_DS16) == 0)
+- mcore->flash_buswidth = 1;
+- } else {
+- mcore->flash_window = 0x1fc00000;
+- mcore->flash_window_size = 0x00400000;
++ & SSB_CHIPCO_CFG_DS16) == 0)
++ bus->chipco.pflash.buswidth = 1;
++ else
++ bus->chipco.pflash.buswidth = 2;
++ break;
+ default:
+ pr_err("flash not supported.\n");
}