mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2024-11-18 14:47:46 +01:00
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
@ -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 = {
|
+static struct resource ext_pci_io_resource = {
|
||||||
+ .name = "Ext PCI I/O resources",
|
+ .name = "Ext PCI I/O resources",
|
||||||
+ .start = 0x100,
|
+ .start = 0x100,
|
||||||
+ .end = 0x1FF,
|
+ .end = 0x7FF,
|
||||||
+ .flags = IORESOURCE_IO,
|
+ .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
|
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.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
|
+++ 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) 2006 Felix Fietkau <nbd@openwrt.org>
|
||||||
+ * Copyright (C) 2005 Waldemar Brodkorb <wbx@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 <linux/crc32.h>
|
||||||
+#include <asm/io.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>
|
+#include <trxhdr.h>
|
||||||
+
|
+
|
||||||
+#define ROUNDUP(x, y) ((((x)+((y)-1))/(y))*(y))
|
+#define ROUNDUP(x, y) ((((x)+((y)-1))/(y))*(y))
|
||||||
+#define NVRAM_SPACE 0x8000
|
+#define NVRAM_SPACE 0x8000
|
||||||
+#define WINDOW_ADDR 0x1c000000
|
+#define WINDOW_ADDR 0x1fc00000
|
||||||
+#define WINDOW_SIZE 0x800000
|
+#define WINDOW_SIZE 0x400000
|
||||||
+#define BUSWIDTH 2
|
+#define BUSWIDTH 2
|
||||||
+
|
+
|
||||||
|
+extern sb_t *sbh;
|
||||||
+static struct mtd_info *bcm947xx_mtd;
|
+static struct mtd_info *bcm947xx_mtd;
|
||||||
+
|
+
|
||||||
+static void bcm947xx_map_copy_from(struct map_info *map, void *to, unsigned long from, ssize_t len)
|
+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)
|
+int __init init_bcm947xx_map(void)
|
||||||
+{
|
+{
|
||||||
|
+ uint coreidx;
|
||||||
|
+ chipcregs_t *cc;
|
||||||
|
+ uint32 fltype;
|
||||||
|
+ uint window_addr = 0, window_size = 0;
|
||||||
+ size_t size;
|
+ size_t size;
|
||||||
+ int ret = 0;
|
+ int ret = 0;
|
||||||
+#ifdef CONFIG_MTD_PARTITIONS
|
+#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;
|
+ int i;
|
||||||
+#endif
|
+#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) {
|
+ if (!bcm947xx_map.virt) {
|
||||||
+ printk("Failed to ioremap\n");
|
+ 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_init(init_bcm947xx_map);
|
||||||
+module_exit(cleanup_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 New Issue
Block a user