add io resource patch from #800, merge flash map stuff from linux 2.4 to support the wl-hdd without breaking the netgear wgt634u
SVN-Revision: 5134
This commit is contained in:
parent
c867eea4b4
commit
140f6cc62c
2 changed files with 43 additions and 32 deletions
|
@ -11329,7 +11329,7 @@ diff -urN linux.old/arch/mips/bcm947xx/pci.c linux.dev/arch/mips/bcm947xx/pci.c
|
|||
+static struct resource ext_pci_io_resource = {
|
||||
+ .name = "Ext PCI I/O resources",
|
||||
+ .start = 0x100,
|
||||
+ .end = 0x1FF,
|
||||
+ .end = 0x7FF,
|
||||
+ .flags = IORESOURCE_IO,
|
||||
+};
|
||||
+
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
diff -urN linux.old/drivers/mtd/maps/bcm47xx-flash.c linux.dev/drivers/mtd/maps/bcm47xx-flash.c
|
||||
--- linux.old/drivers/mtd/maps/bcm47xx-flash.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ linux.dev/drivers/mtd/maps/bcm47xx-flash.c 2006-06-23 19:54:06.000000000 +0200
|
||||
@@ -0,0 +1,452 @@
|
||||
@@ -0,0 +1,490 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2006 Felix Fietkau <nbd@openwrt.org>
|
||||
+ * Copyright (C) 2005 Waldemar Brodkorb <wbx@openwrt.org>
|
||||
|
@ -56,14 +56,22 @@ diff -urN linux.old/drivers/mtd/maps/bcm47xx-flash.c linux.dev/drivers/mtd/maps/
|
|||
+#include <linux/crc32.h>
|
||||
+#include <asm/io.h>
|
||||
+
|
||||
+#include <typedefs.h>
|
||||
+#include <osl.h>
|
||||
+#include <bcmnvram.h>
|
||||
+#include <bcmutils.h>
|
||||
+#include <sbconfig.h>
|
||||
+#include <sbchipc.h>
|
||||
+#include <sbutils.h>
|
||||
+#include <trxhdr.h>
|
||||
+
|
||||
+#define ROUNDUP(x, y) ((((x)+((y)-1))/(y))*(y))
|
||||
+#define NVRAM_SPACE 0x8000
|
||||
+#define WINDOW_ADDR 0x1c000000
|
||||
+#define WINDOW_SIZE 0x800000
|
||||
+#define WINDOW_ADDR 0x1fc00000
|
||||
+#define WINDOW_SIZE 0x400000
|
||||
+#define BUSWIDTH 2
|
||||
+
|
||||
+extern sb_t *sbh;
|
||||
+static struct mtd_info *bcm947xx_mtd;
|
||||
+
|
||||
+static void bcm947xx_map_copy_from(struct map_info *map, void *to, unsigned long from, ssize_t len)
|
||||
|
@ -394,6 +402,10 @@ diff -urN linux.old/drivers/mtd/maps/bcm47xx-flash.c linux.dev/drivers/mtd/maps/
|
|||
+
|
||||
+int __init init_bcm947xx_map(void)
|
||||
+{
|
||||
+ uint coreidx;
|
||||
+ chipcregs_t *cc;
|
||||
+ uint32 fltype;
|
||||
+ uint window_addr = 0, window_size = 0;
|
||||
+ size_t size;
|
||||
+ int ret = 0;
|
||||
+#ifdef CONFIG_MTD_PARTITIONS
|
||||
|
@ -401,7 +413,33 @@ diff -urN linux.old/drivers/mtd/maps/bcm47xx-flash.c linux.dev/drivers/mtd/maps/
|
|||
+ int i;
|
||||
+#endif
|
||||
+
|
||||
+ bcm947xx_map.virt = ioremap(WINDOW_ADDR, WINDOW_SIZE);
|
||||
+ coreidx = sb_coreidx(sbh);
|
||||
+
|
||||
+ /* Check strapping option if chipcommon exists */
|
||||
+ if ((cc = sb_setcore(sbh, SB_CC, 0))) {
|
||||
+ fltype = readl(&cc->capabilities) & CAP_FLASH_MASK;
|
||||
+ if (fltype == PFLASH) {
|
||||
+ bcm947xx_map.map_priv_2 = 1;
|
||||
+ window_addr = 0x1c000000;
|
||||
+ bcm947xx_map.size = window_size = 32 * 1024 * 1024;
|
||||
+ if ((readl(&cc->flash_config) & CC_CFG_DS) == 0)
|
||||
+ bcm947xx_map.bankwidth = 1;
|
||||
+ }
|
||||
+ } else {
|
||||
+ fltype = PFLASH;
|
||||
+ bcm947xx_map.map_priv_2 = 0;
|
||||
+ window_addr = WINDOW_ADDR;
|
||||
+ window_size = WINDOW_SIZE;
|
||||
+ }
|
||||
+
|
||||
+ sb_setcoreidx(sbh, coreidx);
|
||||
+
|
||||
+ if (fltype != PFLASH) {
|
||||
+ printk(KERN_ERR "pflash: found no supported devices\n");
|
||||
+ ret = -ENODEV;
|
||||
+ goto fail;
|
||||
+ }
|
||||
+ bcm947xx_map.virt = ioremap(window_addr, window_size);
|
||||
+
|
||||
+ if (!bcm947xx_map.virt) {
|
||||
+ printk("Failed to ioremap\n");
|
||||
|
@ -454,30 +492,3 @@ diff -urN linux.old/drivers/mtd/maps/bcm47xx-flash.c linux.dev/drivers/mtd/maps/
|
|||
+
|
||||
+module_init(init_bcm947xx_map);
|
||||
+module_exit(cleanup_bcm947xx_map);
|
||||
diff -urN linux.old/drivers/mtd/maps/Kconfig linux.dev/drivers/mtd/maps/Kconfig
|
||||
--- linux.old/drivers/mtd/maps/Kconfig 2006-06-23 19:13:51.000000000 +0200
|
||||
+++ linux.dev/drivers/mtd/maps/Kconfig 2006-06-23 18:47:58.000000000 +0200
|
||||
@@ -299,6 +299,12 @@
|
||||
Mapping for the Flaga digital module. If you don't have one, ignore
|
||||
this setting.
|
||||
|
||||
+config MTD_BCM47XX
|
||||
+ tristate "BCM47xx flash device"
|
||||
+ depends on MIPS && MTD_CFI && BCM947XX
|
||||
+ help
|
||||
+ Support for the flash chips on the BCM947xx board.
|
||||
+
|
||||
config MTD_BEECH
|
||||
tristate "CFI Flash device mapped on IBM 405LP Beech"
|
||||
depends on MTD_CFI && BEECH
|
||||
diff -urN linux.old/drivers/mtd/maps/Makefile linux.dev/drivers/mtd/maps/Makefile
|
||||
--- linux.old/drivers/mtd/maps/Makefile 2006-06-23 19:13:51.000000000 +0200
|
||||
+++ linux.dev/drivers/mtd/maps/Makefile 2006-06-23 18:47:58.000000000 +0200
|
||||
@@ -30,6 +30,7 @@
|
||||
obj-$(CONFIG_MTD_PCMCIA) += pcmciamtd.o
|
||||
obj-$(CONFIG_MTD_RPXLITE) += rpxlite.o
|
||||
obj-$(CONFIG_MTD_TQM8XXL) += tqm8xxl.o
|
||||
+obj-$(CONFIG_MTD_BCM47XX) += bcm47xx-flash.o
|
||||
obj-$(CONFIG_MTD_SA1100) += sa1100-flash.o
|
||||
obj-$(CONFIG_MTD_IPAQ) += ipaq-flash.o
|
||||
obj-$(CONFIG_MTD_SBC_GXX) += sbc_gxx.o
|
||||
|
|
Loading…
Reference in a new issue