diff options
Diffstat (limited to 'target/linux/brcm-2.6/patches')
| -rw-r--r-- | target/linux/brcm-2.6/patches/001-bcm947xx.patch | 2 | ||||
| -rw-r--r-- | target/linux/brcm-2.6/patches/002-flash-map.patch | 73 | 
2 files changed, 43 insertions, 32 deletions
diff --git a/target/linux/brcm-2.6/patches/001-bcm947xx.patch b/target/linux/brcm-2.6/patches/001-bcm947xx.patch index 380e8190e..786b9af78 100644 --- a/target/linux/brcm-2.6/patches/001-bcm947xx.patch +++ b/target/linux/brcm-2.6/patches/001-bcm947xx.patch @@ -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,  +};  + diff --git a/target/linux/brcm-2.6/patches/002-flash-map.patch b/target/linux/brcm-2.6/patches/002-flash-map.patch index 9d568930d..0f9c5ada9 100644 --- a/target/linux/brcm-2.6/patches/002-flash-map.patch +++ b/target/linux/brcm-2.6/patches/002-flash-map.patch @@ -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  | 
