diff options
| author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2005-08-22 01:57:20 +0000 | 
|---|---|---|
| committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2005-08-22 01:57:20 +0000 | 
| commit | f050795a944bb77d75051abd5850f854e17f4c5e (patch) | |
| tree | c60d6e6921180db63260fda8f150391942f74f65 | |
| parent | 09be88a645e4de184dd368adeb20e34a55693bb6 (diff) | |
add wrt54g v4 support
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@1716 3c298f89-4303-0410-b956-a3cf2f4a3e73
| -rw-r--r-- | target/linux/linux-2.4/patches/brcm/001-bcm47xx.patch | 2034 | 
1 files changed, 1482 insertions, 552 deletions
diff --git a/target/linux/linux-2.4/patches/brcm/001-bcm47xx.patch b/target/linux/linux-2.4/patches/brcm/001-bcm47xx.patch index 055a3dc6e..5d162c43d 100644 --- a/target/linux/linux-2.4/patches/brcm/001-bcm47xx.patch +++ b/target/linux/linux-2.4/patches/brcm/001-bcm47xx.patch @@ -1,6 +1,167 @@ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/compressed/Makefile linux-2.4.30-brcm/arch/mips/bcm947xx/compressed/Makefile +diff -urN linux-2.4.30/Makefile linux-2.4.30.dev/Makefile +--- linux-2.4.30/Makefile	2005-08-22 01:29:09.268391576 +0200 ++++ linux-2.4.30.dev/Makefile	2005-08-22 01:34:46.669098872 +0200 +@@ -17,9 +17,9 @@ + FINDHPATH	= $(HPATH)/asm $(HPATH)/linux $(HPATH)/scsi $(HPATH)/net $(HPATH)/math-emu +  + HOSTCC  	= gcc +-HOSTCFLAGS	= -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer ++HOSTCFLAGS	= -Wall -Wstrict-prototypes -Os -fomit-frame-pointer +  +-CROSS_COMPILE 	= ++CROSS_COMPILE= +  + # + # Include the make variables (CC, etc...) +@@ -91,8 +91,10 @@ +  + CPPFLAGS := -D__KERNEL__ -I$(HPATH) +  +-CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \ ++CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -Os \ + 	  -fno-strict-aliasing -fno-common ++ ++ + ifndef CONFIG_FRAME_POINTER + CFLAGS += -fomit-frame-pointer + endif +@@ -354,7 +356,7 @@ + 	@rm -f .ver1 +  + include/linux/version.h: ./Makefile +-	@expr length "$(KERNELRELEASE)" \<= $(uts_len) > /dev/null || \ ++	@-expr length "$(KERNELRELEASE)" \<= $(uts_len) > /dev/null || \ + 	  (echo KERNELRELEASE \"$(KERNELRELEASE)\" exceeds $(uts_len) characters >&2; false) + 	@echo \#define UTS_RELEASE \"$(KERNELRELEASE)\" > .ver + 	@echo \#define LINUX_VERSION_CODE `expr $(VERSION) \\* 65536 + $(PATCHLEVEL) \\* 256 + $(SUBLEVEL)` >> .ver +@@ -501,7 +503,7 @@ + ifdef CONFIG_MODVERSIONS + 	$(MAKE) update-modverfile + endif +-	scripts/mkdep -- `find $(FINDHPATH) \( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name modversions.h -print` > .hdepend ++	(find $(FINDHPATH) \( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name modversions.h -print | xargs -r scripts/mkdep -- ) > .hdepend + 	scripts/mkdep -- init/*.c > .depend +  + ifdef CONFIG_MODVERSIONS +diff -urN linux-2.4.30/Rules.make linux-2.4.30.dev/Rules.make +--- linux-2.4.30/Rules.make	2004-02-18 14:36:30.000000000 +0100 ++++ linux-2.4.30.dev/Rules.make	2005-08-22 01:34:46.683096744 +0200 +@@ -176,7 +176,14 @@ + _modinst__: dummy + ifneq "$(strip $(ALL_MOBJS))" "" + 	mkdir -p $(MODLIB)/kernel/$(MOD_DESTDIR) +-	cp $(sort $(ALL_MOBJS)) $(MODLIB)/kernel/$(MOD_DESTDIR) ++	#@cp $(sort $(ALL_MOBJS)) $(MODLIB)/kernel/$(MOD_DESTDIR) ++	for f in $(ALL_MOBJS) ; do \ ++		$(OBJCOPY) -R __ksymtab -R .comment -R .note -x \ ++		`$(NM) $$f | cut -f3- -d' ' | sed -n \ ++			-e 's/__module_parm_\(.*\)/-K \1/p' \ ++			-e 's/__ks..tab_\(.*\)/-K \1/p'` \ ++		$$f $(MODLIB)/kernel/$(MOD_DESTDIR)$(MOD_TARGET)$$f; \ ++	done + endif +  + .PHONY: modules_install +diff -urN linux-2.4.30/arch/mips/Makefile linux-2.4.30.dev/arch/mips/Makefile +--- linux-2.4.30/arch/mips/Makefile	2005-08-22 01:29:09.270391272 +0200 ++++ linux-2.4.30.dev/arch/mips/Makefile	2005-08-22 01:34:46.370144320 +0200 +@@ -46,10 +46,10 @@ + GCCFLAGS	:= -I $(TOPDIR)/include/asm/gcc + GCCFLAGS	+= -G 0 -mno-abicalls -fno-pic -pipe + GCCFLAGS	+= $(call check_gcc, -finline-limit=100000,) +-LINKFLAGS	+= -G 0 -static -n +-MODFLAGS	+= -mlong-calls ++LINKFLAGS	+= -G 0 -static -n -nostdlib ++MODFLAGS	+= -mlong-calls -fno-common +  +-ifdef CONFIG_DEBUG_INFO ++ifdef CONFIG_REMOTE_DEBUG + GCCFLAGS	+= -g + ifdef CONFIG_SB1XXX_CORELIS + GCCFLAGS	+= -mno-sched-prolog -fno-omit-frame-pointer +@@ -71,13 +71,13 @@ + set_gccflags = $(shell \ + while :; do \ + 	cpu=$(1); isa=-$(2); \ +-	for gcc_opt in -march= -mcpu=; do \ ++	for gcc_opt in -march= -mtune=; do \ + 		$(CC) $$gcc_opt$$cpu $$isa -S -o /dev/null \ + 			-xc /dev/null > /dev/null 2>&1 && \ + 			break 2; \ + 	done; \ + 	cpu=$(3); isa=-$(4); \ +-	for gcc_opt in -march= -mcpu=; do \ ++	for gcc_opt in -march= -mtune=; do \ + 		$(CC) $$gcc_opt$$cpu $$isa -S -o /dev/null \ + 			-xc /dev/null > /dev/null 2>&1 && \ + 			break 2; \ +@@ -92,7 +92,7 @@ + fi; \ + gas_abi=-Wa,-32; gas_cpu=$$cpu; gas_isa=-Wa,$$isa; \ + while :; do \ +-	for gas_opt in -Wa,-march= -Wa,-mcpu=; do \ ++	for gas_opt in -Wa,-march= -Wa,-mtune=; do \ + 		$(CC) $$gas_abi $$gas_opt$$cpu $$gas_isa -Wa,-Z -c \ + 			-o /dev/null -xassembler /dev/null > /dev/null 2>&1 && \ + 			break 2; \ +@@ -174,6 +174,7 @@ + endif +  + AFLAGS		+= $(GCCFLAGS) ++ASFLAGS		+= $(GCCFLAGS) + CFLAGS		+= $(GCCFLAGS) +  + LD		+= -m $(ld-emul) +@@ -727,6 +728,19 @@ + endif +  + # ++# Broadcom BCM947XX variants ++# ++ifdef CONFIG_BCM947XX ++LIBS		+= arch/mips/bcm947xx/generic/brcm.o arch/mips/bcm947xx/bcm947xx.o  ++SUBDIRS		+= arch/mips/bcm947xx/generic arch/mips/bcm947xx  ++LOADADDR	:= 0x80001000 ++ ++zImage: vmlinux ++	$(MAKE) -C arch/$(ARCH)/bcm947xx/compressed ++export LOADADDR ++endif ++ ++# + # Choosing incompatible machines durings configuration will result in + # error messages during linking.  Select a default linkscript if + # none has been choosen above. +@@ -779,6 +793,7 @@ + 	$(MAKE) -C arch/$(ARCH)/tools clean + 	$(MAKE) -C arch/mips/baget clean + 	$(MAKE) -C arch/mips/lasat clean ++	$(MAKE) -C arch/mips/bcm947xx/compressed clean +  + archmrproper: + 	@$(MAKEBOOT) mrproper +diff -urN linux-2.4.30/arch/mips/bcm947xx/Makefile linux-2.4.30.dev/arch/mips/bcm947xx/Makefile +--- linux-2.4.30/arch/mips/bcm947xx/Makefile	1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/Makefile	2005-08-22 01:34:46.340148880 +0200 +@@ -0,0 +1,15 @@ ++# ++# Makefile for the BCM947xx specific kernel interface routines ++# under Linux. ++# ++ ++EXTRA_CFLAGS+=-I$(TOPDIR)/arch/mips/bcm947xx/include -DBCMDRIVER ++ ++O_TARGET        := bcm947xx.o ++ ++export-objs     := nvram_linux.o setup.o ++obj-y		:= prom.o setup.o time.o sbmips.o gpio.o ++obj-y		+= nvram.o nvram_linux.o ++obj-$(CONFIG_PCI) += sbpci.o pcibios.o ++ ++include $(TOPDIR)/Rules.make +diff -urN linux-2.4.30/arch/mips/bcm947xx/compressed/Makefile linux-2.4.30.dev/arch/mips/bcm947xx/compressed/Makefile  --- linux-2.4.30/arch/mips/bcm947xx/compressed/Makefile	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/compressed/Makefile	2005-05-26 03:29:22.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/compressed/Makefile	2005-08-22 01:34:46.261160888 +0200  @@ -0,0 +1,33 @@  +#  +# Makefile for Broadcom BCM947XX boards @@ -35,9 +196,28 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/compressed/Makefile linux-2.4.30-brcm/  +  +clean:  +	rm -f vmlinuz piggy -diff -Nur linux-2.4.30/arch/mips/bcm947xx/generic/int-handler.S linux-2.4.30-brcm/arch/mips/bcm947xx/generic/int-handler.S +diff -urN linux-2.4.30/arch/mips/bcm947xx/generic/Makefile linux-2.4.30.dev/arch/mips/bcm947xx/generic/Makefile +--- linux-2.4.30/arch/mips/bcm947xx/generic/Makefile	1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/generic/Makefile	2005-08-22 01:34:46.280158000 +0200 +@@ -0,0 +1,15 @@ ++# ++# Makefile for the BCM947xx specific kernel interface routines ++# under Linux. ++# ++ ++.S.s: ++	$(CPP) $(AFLAGS) $< -o $*.s ++.S.o: ++	$(CC) $(AFLAGS) -c $< -o $*.o ++ ++O_TARGET        := brcm.o ++ ++obj-y	:= int-handler.o irq.o ++ ++include $(TOPDIR)/Rules.make +diff -urN linux-2.4.30/arch/mips/bcm947xx/generic/int-handler.S linux-2.4.30.dev/arch/mips/bcm947xx/generic/int-handler.S  --- linux-2.4.30/arch/mips/bcm947xx/generic/int-handler.S	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/generic/int-handler.S	2005-05-22 22:55:51.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/generic/int-handler.S	2005-08-22 01:34:46.280158000 +0200  @@ -0,0 +1,51 @@  +/*  + * Generic interrupt handler for Broadcom MIPS boards @@ -90,9 +270,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/generic/int-handler.S linux-2.4.30-brc  +	 nop  +		  +	END(brcmIRQ) -diff -Nur linux-2.4.30/arch/mips/bcm947xx/generic/irq.c linux-2.4.30-brcm/arch/mips/bcm947xx/generic/irq.c +diff -urN linux-2.4.30/arch/mips/bcm947xx/generic/irq.c linux-2.4.30.dev/arch/mips/bcm947xx/generic/irq.c  --- linux-2.4.30/arch/mips/bcm947xx/generic/irq.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/generic/irq.c	2005-05-22 22:55:51.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/generic/irq.c	2005-08-22 01:34:46.280158000 +0200  @@ -0,0 +1,130 @@  +/*  + * Generic interrupt control functions for Broadcom MIPS boards @@ -224,28 +404,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/generic/irq.c linux-2.4.30-brcm/arch/m  +	breakpoint();   +#endif  +} -diff -Nur linux-2.4.30/arch/mips/bcm947xx/generic/Makefile linux-2.4.30-brcm/arch/mips/bcm947xx/generic/Makefile ---- linux-2.4.30/arch/mips/bcm947xx/generic/Makefile	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/generic/Makefile	2005-05-25 18:53:41.000000000 +0200 -@@ -0,0 +1,15 @@ -+# -+# Makefile for the BCM947xx specific kernel interface routines -+# under Linux. -+# -+ -+.S.s: -+	$(CPP) $(AFLAGS) $< -o $*.s -+.S.o: -+	$(CC) $(AFLAGS) -c $< -o $*.o -+ -+O_TARGET        := brcm.o -+ -+obj-y	:= int-handler.o irq.o -+ -+include $(TOPDIR)/Rules.make -diff -Nur linux-2.4.30/arch/mips/bcm947xx/gpio.c linux-2.4.30-brcm/arch/mips/bcm947xx/gpio.c +diff -urN linux-2.4.30/arch/mips/bcm947xx/gpio.c linux-2.4.30.dev/arch/mips/bcm947xx/gpio.c  --- linux-2.4.30/arch/mips/bcm947xx/gpio.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/gpio.c	2005-05-22 22:55:51.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/gpio.c	2005-08-22 01:34:46.281157848 +0200  @@ -0,0 +1,158 @@  +/*  + * GPIO char driver @@ -405,9 +566,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/gpio.c linux-2.4.30-brcm/arch/mips/bcm  +  +module_init(gpio_init);  +module_exit(gpio_exit); -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmdevs.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmdevs.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/bcmdevs.h linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmdevs.h  --- linux-2.4.30/arch/mips/bcm947xx/include/bcmdevs.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmdevs.h	2005-05-25 20:30:26.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmdevs.h	2005-08-22 01:34:46.282157696 +0200  @@ -0,0 +1,369 @@  +/*  + * Broadcom device-specific manifest constants. @@ -778,9 +939,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmdevs.h linux-2.4.30-brcm/ar  +#define GPIO_NUMPINS		16  +  +#endif /* _BCMDEVS_H */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmendian.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmendian.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/bcmendian.h linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmendian.h  --- linux-2.4.30/arch/mips/bcm947xx/include/bcmendian.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmendian.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmendian.h	2005-08-22 01:34:46.282157696 +0200  @@ -0,0 +1,168 @@  +/*  + * local version of endian.h - byte order defines @@ -950,9 +1111,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmendian.h linux-2.4.30-brcm/  +#endif  +  +#endif /* _BCMENDIAN_H_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmenet47xx.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmenet47xx.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/bcmenet47xx.h linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmenet47xx.h  --- linux-2.4.30/arch/mips/bcm947xx/include/bcmenet47xx.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmenet47xx.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmenet47xx.h	2005-08-22 01:34:46.284157392 +0200  @@ -0,0 +1,229 @@  +/*  + * Hardware-specific definitions for @@ -1183,9 +1344,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmenet47xx.h linux-2.4.30-brc  +#define	EMC_RZ		((uint32)1 << 0)	/* autoclear on read */  +  +#endif	/* _bcmenet_47xx_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmenetmib.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmenetmib.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/bcmenetmib.h linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmenetmib.h  --- linux-2.4.30/arch/mips/bcm947xx/include/bcmenetmib.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmenetmib.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmenetmib.h	2005-08-22 01:34:46.284157392 +0200  @@ -0,0 +1,81 @@  +/*  + * Hardware-specific MIB definition for @@ -1268,9 +1429,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmenetmib.h linux-2.4.30-brcm  +} bcmenetmib_t;  +  +#endif	/* _bcmenetmib_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmenetphy.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmenetphy.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/bcmenetphy.h linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmenetphy.h  --- linux-2.4.30/arch/mips/bcm947xx/include/bcmenetphy.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmenetphy.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmenetphy.h	2005-08-22 01:34:46.284157392 +0200  @@ -0,0 +1,58 @@  +/*  + * Misc Broadcom BCM47XX MDC/MDIO enet phy definitions. @@ -1330,9 +1491,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmenetphy.h linux-2.4.30-brcm  +#define	AUX_DUPLEX	(1 << 0)		/* duplex 0=half 1=full */  +  +#endif	/* _bcmenetphy_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmenetrxh.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmenetrxh.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/bcmenetrxh.h linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmenetrxh.h  --- linux-2.4.30/arch/mips/bcm947xx/include/bcmenetrxh.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmenetrxh.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmenetrxh.h	2005-08-22 01:34:46.285157240 +0200  @@ -0,0 +1,43 @@  +/*  + * Hardware-specific Receive Data Header for the @@ -1377,9 +1538,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmenetrxh.h linux-2.4.30-brcm  +#define	RXF_OV		((uint16)1 << 0)	/* fifo overflow */  +  +#endif	/* _bcmenetrxh_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmnvram.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmnvram.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/bcmnvram.h linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmnvram.h  --- linux-2.4.30/arch/mips/bcm947xx/include/bcmnvram.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmnvram.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmnvram.h	2005-08-22 01:34:46.285157240 +0200  @@ -0,0 +1,132 @@  +/*  + * NVRAM variable manipulation @@ -1513,9 +1674,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmnvram.h linux-2.4.30-brcm/a  +#define NVRAM_SPACE		0x8000  +  +#endif /* _bcmnvram_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmparams.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmparams.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/bcmparams.h linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmparams.h  --- linux-2.4.30/arch/mips/bcm947xx/include/bcmparams.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmparams.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmparams.h	2005-08-22 01:34:46.286157088 +0200  @@ -0,0 +1,23 @@  +/*  + * Misc system wide parameters. @@ -1540,9 +1701,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmparams.h linux-2.4.30-brcm/  +#define DEV_NUMIFS	16	/* Max. # of devices/interfaces supported */  +  +#endif -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmsrom.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmsrom.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/bcmsrom.h linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmsrom.h  --- linux-2.4.30/arch/mips/bcm947xx/include/bcmsrom.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmsrom.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmsrom.h	2005-08-22 01:34:46.286157088 +0200  @@ -0,0 +1,22 @@  +/*  + * Misc useful routines to access NIC local SROM/OTP . @@ -1566,9 +1727,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmsrom.h linux-2.4.30-brcm/ar  +extern int srom_write(uint bus, void *curmap, void *osh, uint byteoff, uint nbytes, uint16 *buf);  +	     +#endif	/* _bcmsrom_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmutils.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmutils.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/bcmutils.h linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmutils.h  --- linux-2.4.30/arch/mips/bcm947xx/include/bcmutils.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/bcmutils.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/bcmutils.h	2005-08-22 01:34:46.314152832 +0200  @@ -0,0 +1,239 @@  +/*  + * Misc useful os-independent macros and functions. @@ -1809,9 +1970,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bcmutils.h linux-2.4.30-brcm/a  +#define	mboolmaskset(mb, mask, val)	((mb) = (((mb) & ~(mask)) | (val)))  +  +#endif	/* _bcmutils_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bitfuncs.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/bitfuncs.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/bitfuncs.h linux-2.4.30.dev/arch/mips/bcm947xx/include/bitfuncs.h  --- linux-2.4.30/arch/mips/bcm947xx/include/bitfuncs.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/bitfuncs.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/bitfuncs.h	2005-08-22 01:34:46.314152832 +0200  @@ -0,0 +1,85 @@  +/*  + * bit manipulation utility functions @@ -1898,9 +2059,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/bitfuncs.h linux-2.4.30-brcm/a  +#endif  +  +#endif /* _BITFUNCS_H */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/cfe_osl.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/cfe_osl.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/cfe_osl.h linux-2.4.30.dev/arch/mips/bcm947xx/include/cfe_osl.h  --- linux-2.4.30/arch/mips/bcm947xx/include/cfe_osl.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/cfe_osl.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/cfe_osl.h	2005-08-22 01:34:46.315152680 +0200  @@ -0,0 +1,184 @@  +/*  + * CFE boot loader OS Abstraction Layer. @@ -2086,9 +2247,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/cfe_osl.h linux-2.4.30-brcm/ar  +extern struct lbuf *osl_pktdup(struct lbuf *lb);  +  +#endif	/* _cfe_osl_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/epivers.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/epivers.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/epivers.h linux-2.4.30.dev/arch/mips/bcm947xx/include/epivers.h  --- linux-2.4.30/arch/mips/bcm947xx/include/epivers.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/epivers.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/epivers.h	2005-08-22 01:34:46.315152680 +0200  @@ -0,0 +1,69 @@  +/*  + * Copyright 2005, Broadcom Corporation @@ -2159,9 +2320,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/epivers.h linux-2.4.30-brcm/ar  +#define	EPI_ROUTER_VERSION_STR	"3.91.23.0"  +  +#endif /* _epivers_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/epivers.h.in linux-2.4.30-brcm/arch/mips/bcm947xx/include/epivers.h.in +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/epivers.h.in linux-2.4.30.dev/arch/mips/bcm947xx/include/epivers.h.in  --- linux-2.4.30/arch/mips/bcm947xx/include/epivers.h.in	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/epivers.h.in	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/epivers.h.in	2005-08-22 01:34:46.316152528 +0200  @@ -0,0 +1,69 @@  +/*  + * Copyright 2005, Broadcom Corporation @@ -2232,9 +2393,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/epivers.h.in linux-2.4.30-brcm  +#define	EPI_ROUTER_VERSION_STR	"@EPI_ROUTER_VERSION_STR@"  +  +#endif /* _epivers_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/etsockio.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/etsockio.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/etsockio.h linux-2.4.30.dev/arch/mips/bcm947xx/include/etsockio.h  --- linux-2.4.30/arch/mips/bcm947xx/include/etsockio.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/etsockio.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/etsockio.h	2005-08-22 01:34:46.316152528 +0200  @@ -0,0 +1,59 @@  +/*  + * Driver-specific socket ioctls @@ -2295,9 +2456,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/etsockio.h linux-2.4.30-brcm/a  +};  +  +#endif -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/flash.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/flash.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/flash.h linux-2.4.30.dev/arch/mips/bcm947xx/include/flash.h  --- linux-2.4.30/arch/mips/bcm947xx/include/flash.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/flash.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/flash.h	2005-08-22 01:34:46.317152376 +0200  @@ -0,0 +1,188 @@  +/*  + * flash.h: Common definitions for flash access. @@ -2487,9 +2648,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/flash.h linux-2.4.30-brcm/arch  +extern flash_desc_t flashes[];  +  +#endif -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/flashutl.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/flashutl.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/flashutl.h linux-2.4.30.dev/arch/mips/bcm947xx/include/flashutl.h  --- linux-2.4.30/arch/mips/bcm947xx/include/flashutl.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/flashutl.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/flashutl.h	2005-08-22 01:34:46.317152376 +0200  @@ -0,0 +1,27 @@  +/*  + * BCM47XX FLASH driver interface @@ -2518,9 +2679,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/flashutl.h linux-2.4.30-brcm/a  +#endif	/* _LANGUAGE_ASSEMBLY */  +  +#endif /* _flashutl_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/hnddma.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/hnddma.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/hnddma.h linux-2.4.30.dev/arch/mips/bcm947xx/include/hnddma.h  --- linux-2.4.30/arch/mips/bcm947xx/include/hnddma.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/hnddma.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/hnddma.h	2005-08-22 01:34:46.318152224 +0200  @@ -0,0 +1,184 @@  +/*  + * Generic Broadcom Home Networking Division (HND) DMA engine definitions. @@ -2706,9 +2867,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/hnddma.h linux-2.4.30-brcm/arc  +  +  +#endif	/* _hnddma_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/hndmips.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/hndmips.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/hndmips.h linux-2.4.30.dev/arch/mips/bcm947xx/include/hndmips.h  --- linux-2.4.30/arch/mips/bcm947xx/include/hndmips.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/hndmips.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/hndmips.h	2005-08-22 01:34:46.318152224 +0200  @@ -0,0 +1,16 @@  +/*  + * Alternate include file for HND sbmips.h since CFE also ships with @@ -2726,9 +2887,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/hndmips.h linux-2.4.30-brcm/ar  + */  +  +#include "sbmips.h" -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/linux_osl.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/linux_osl.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/linux_osl.h linux-2.4.30.dev/arch/mips/bcm947xx/include/linux_osl.h  --- linux-2.4.30/arch/mips/bcm947xx/include/linux_osl.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/linux_osl.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/linux_osl.h	2005-08-22 01:34:46.319152072 +0200  @@ -0,0 +1,341 @@  +/*  + * Linux OS Independent Layer @@ -3071,9 +3232,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/linux_osl.h linux-2.4.30-brcm/  +#define	PKTBUFSZ	2048  +  +#endif	/* _linux_osl_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/linuxver.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/linuxver.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/linuxver.h linux-2.4.30.dev/arch/mips/bcm947xx/include/linuxver.h  --- linux-2.4.30/arch/mips/bcm947xx/include/linuxver.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/linuxver.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/linuxver.h	2005-08-22 01:34:46.320151920 +0200  @@ -0,0 +1,399 @@  +/*  + * Linux-specific abstractions to gain some independence from linux kernel versions. @@ -3474,9 +3635,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/linuxver.h linux-2.4.30-brcm/a  +#endif  +  +#endif /* _linuxver_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/min_osl.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/min_osl.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/min_osl.h linux-2.4.30.dev/arch/mips/bcm947xx/include/min_osl.h  --- linux-2.4.30/arch/mips/bcm947xx/include/min_osl.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/min_osl.h	2005-05-25 03:31:09.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/min_osl.h	2005-08-22 01:34:46.321151768 +0200  @@ -0,0 +1,120 @@  +/*  + * HND Minimal OS Abstraction Layer. @@ -3598,9 +3759,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/min_osl.h linux-2.4.30-brcm/ar  +extern int getintvar(char *vars, char *name);  +  +#endif	/* _min_osl_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/mipsinc.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/mipsinc.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/mipsinc.h linux-2.4.30.dev/arch/mips/bcm947xx/include/mipsinc.h  --- linux-2.4.30/arch/mips/bcm947xx/include/mipsinc.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/mipsinc.h	2005-05-26 02:34:15.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/mipsinc.h	2005-08-22 01:34:46.322151616 +0200  @@ -0,0 +1,524 @@  +/*  + * HND Run Time Environment for standalone MIPS programs. @@ -4126,9 +4287,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/mipsinc.h linux-2.4.30-brcm/ar  +  +  +#endif	/* _MISPINC_H */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/nvports.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/nvports.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/nvports.h linux-2.4.30.dev/arch/mips/bcm947xx/include/nvports.h  --- linux-2.4.30/arch/mips/bcm947xx/include/nvports.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/nvports.h	2005-02-02 23:41:24.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/nvports.h	2005-08-22 01:34:46.322151616 +0200  @@ -0,0 +1,55 @@  +/*  + * BCM53xx RoboSwitch utility functions @@ -4185,9 +4346,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/nvports.h linux-2.4.30-brcm/ar  +  +  + -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/osl.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/osl.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/osl.h linux-2.4.30.dev/arch/mips/bcm947xx/include/osl.h  --- linux-2.4.30/arch/mips/bcm947xx/include/osl.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/osl.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/osl.h	2005-08-22 01:34:46.323151464 +0200  @@ -0,0 +1,39 @@  +/*  + * OS Independent Layer @@ -4228,9 +4389,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/osl.h linux-2.4.30-brcm/arch/m  +#define	MAXPRIO		7	/* 0-7 */  +  +#endif	/* _osl_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/pcicfg.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/pcicfg.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/pcicfg.h linux-2.4.30.dev/arch/mips/bcm947xx/include/pcicfg.h  --- linux-2.4.30/arch/mips/bcm947xx/include/pcicfg.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/pcicfg.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/pcicfg.h	2005-08-22 01:34:46.323151464 +0200  @@ -0,0 +1,369 @@  +/*  + * pcicfg.h: PCI configuration  constants and structures. @@ -4601,9 +4762,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/pcicfg.h linux-2.4.30-brcm/arc  +#define PCI_CFG_CMD_STAT_TA	0x08000000	/* target abort status */  +  +#endif -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/pmon_osl.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/pmon_osl.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/pmon_osl.h linux-2.4.30.dev/arch/mips/bcm947xx/include/pmon_osl.h  --- linux-2.4.30/arch/mips/bcm947xx/include/pmon_osl.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/pmon_osl.h	2005-02-02 23:16:39.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/pmon_osl.h	2005-08-22 01:34:46.324151312 +0200  @@ -0,0 +1,126 @@  +/*  + * MIPS PMON boot loader OS Abstraction Layer. @@ -4731,9 +4892,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/pmon_osl.h linux-2.4.30-brcm/a  +extern void et_pktfree(void *drv, struct lbuf *lb, bool send);  +  +#endif	/* _pmon_osl_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/proto/802.11.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/proto/802.11.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/proto/802.11.h linux-2.4.30.dev/arch/mips/bcm947xx/include/proto/802.11.h  --- linux-2.4.30/arch/mips/bcm947xx/include/proto/802.11.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/proto/802.11.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/proto/802.11.h	2005-08-22 01:34:46.326151008 +0200  @@ -0,0 +1,897 @@  +/*  + * Copyright 2005, Broadcom Corporation       @@ -5632,9 +5793,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/proto/802.11.h linux-2.4.30-br  +#endif  +  +#endif /* _802_11_H_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/proto/bcmeth.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/proto/bcmeth.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/proto/bcmeth.h linux-2.4.30.dev/arch/mips/bcm947xx/include/proto/bcmeth.h  --- linux-2.4.30/arch/mips/bcm947xx/include/proto/bcmeth.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/proto/bcmeth.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/proto/bcmeth.h	2005-08-22 01:34:46.327150856 +0200  @@ -0,0 +1,97 @@  +/*  + * Broadcom Ethernettype  protocol definitions @@ -5733,9 +5894,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/proto/bcmeth.h linux-2.4.30-br  +#endif  +  +#endif -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/proto/ethernet.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/proto/ethernet.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/proto/ethernet.h linux-2.4.30.dev/arch/mips/bcm947xx/include/proto/ethernet.h  --- linux-2.4.30/arch/mips/bcm947xx/include/proto/ethernet.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/proto/ethernet.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/proto/ethernet.h	2005-08-22 01:34:46.328150704 +0200  @@ -0,0 +1,161 @@  +/*******************************************************************************  + * $Id$ @@ -5898,9 +6059,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/proto/ethernet.h linux-2.4.30-  +#endif  +  +#endif /* _NET_ETHERNET_H_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/proto/vlan.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/proto/vlan.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/proto/vlan.h linux-2.4.30.dev/arch/mips/bcm947xx/include/proto/vlan.h  --- linux-2.4.30/arch/mips/bcm947xx/include/proto/vlan.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/proto/vlan.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/proto/vlan.h	2005-08-22 01:34:46.328150704 +0200  @@ -0,0 +1,50 @@  +/*  + * 802.1Q VLAN protocol definitions @@ -5952,9 +6113,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/proto/vlan.h linux-2.4.30-brcm  +#endif  +  +#endif /* _vlan_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/proto/wpa.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/proto/wpa.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/proto/wpa.h linux-2.4.30.dev/arch/mips/bcm947xx/include/proto/wpa.h  --- linux-2.4.30/arch/mips/bcm947xx/include/proto/wpa.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/proto/wpa.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/proto/wpa.h	2005-08-22 01:34:46.329150552 +0200  @@ -0,0 +1,140 @@  +/*  + * Fundamental types and constants relating to WPA @@ -6096,9 +6257,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/proto/wpa.h linux-2.4.30-brcm/  +#endif  +  +#endif /* _proto_wpa_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/rts/crc.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/rts/crc.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/rts/crc.h linux-2.4.30.dev/arch/mips/bcm947xx/include/rts/crc.h  --- linux-2.4.30/arch/mips/bcm947xx/include/rts/crc.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/rts/crc.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/rts/crc.h	2005-08-22 01:34:46.329150552 +0200  @@ -0,0 +1,69 @@  +/*******************************************************************************  + * $Id$ @@ -6169,9 +6330,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/rts/crc.h linux-2.4.30-brcm/ar  +#endif  +  +#endif /* _RTS_CRC_H_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbchipc.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbchipc.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/sbchipc.h linux-2.4.30.dev/arch/mips/bcm947xx/include/sbchipc.h  --- linux-2.4.30/arch/mips/bcm947xx/include/sbchipc.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbchipc.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/sbchipc.h	2005-08-22 01:34:46.330150400 +0200  @@ -0,0 +1,394 @@  +/*  + * SiliconBackplane Chipcommon core hardware definitions. @@ -6567,9 +6728,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbchipc.h linux-2.4.30-brcm/ar  +#define	OTP_MAGIC	0x4e56  +  +#endif	/* _SBCHIPC_H */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbconfig.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbconfig.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/sbconfig.h linux-2.4.30.dev/arch/mips/bcm947xx/include/sbconfig.h  --- linux-2.4.30/arch/mips/bcm947xx/include/sbconfig.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbconfig.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/sbconfig.h	2005-08-22 01:34:46.331150248 +0200  @@ -0,0 +1,324 @@  +/*  + * Broadcom SiliconBackplane hardware register definitions. @@ -6895,9 +7056,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbconfig.h linux-2.4.30-brcm/a  +#define	BISZ_BSSEND_IDX		6		/*	6: text start */  +  +#endif	/* _SBCONFIG_H */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbextif.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbextif.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/sbextif.h linux-2.4.30.dev/arch/mips/bcm947xx/include/sbextif.h  --- linux-2.4.30/arch/mips/bcm947xx/include/sbextif.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbextif.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/sbextif.h	2005-08-22 01:34:46.332150096 +0200  @@ -0,0 +1,242 @@  +/*  + * Hardware-specific External Interface I/O core definitions @@ -7141,9 +7302,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbextif.h linux-2.4.30-brcm/ar  +#define	CC_CLOCK_BASE	24000000	/* Half the clock freq. in the 4710 */  +  +#endif	/* _SBEXTIF_H */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbmemc.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbmemc.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/sbmemc.h linux-2.4.30.dev/arch/mips/bcm947xx/include/sbmemc.h  --- linux-2.4.30/arch/mips/bcm947xx/include/sbmemc.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbmemc.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/sbmemc.h	2005-08-22 01:34:46.333149944 +0200  @@ -0,0 +1,147 @@  +/*  + * BCM47XX Sonics SiliconBackplane DDR/SDRAM controller core hardware definitions. @@ -7292,9 +7453,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbmemc.h linux-2.4.30-brcm/arc  +#define MEMC_CONFIG_DDR		0x00000001  +  +#endif	/* _SBMEMC_H */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbmips.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbmips.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/sbmips.h linux-2.4.30.dev/arch/mips/bcm947xx/include/sbmips.h  --- linux-2.4.30/arch/mips/bcm947xx/include/sbmips.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbmips.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/sbmips.h	2005-08-22 01:34:46.333149944 +0200  @@ -0,0 +1,60 @@  +/*  + * Broadcom SiliconBackplane MIPS definitions @@ -7356,9 +7517,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbmips.h linux-2.4.30-brcm/arc  +#endif /* _LANGUAGE_ASSEMBLY */  +  +#endif	/* _SBMIPS_H */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbpci.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbpci.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/sbpci.h linux-2.4.30.dev/arch/mips/bcm947xx/include/sbpci.h  --- linux-2.4.30/arch/mips/bcm947xx/include/sbpci.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbpci.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/sbpci.h	2005-08-22 01:34:46.334149792 +0200  @@ -0,0 +1,117 @@  +/*  + * BCM47XX Sonics SiliconBackplane PCI core hardware definitions. @@ -7477,9 +7638,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbpci.h linux-2.4.30-brcm/arch  +#endif /* !_LANGUAGE_ASSEMBLY */  +  +#endif	/* _SBPCI_H */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbpcmcia.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbpcmcia.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/sbpcmcia.h linux-2.4.30.dev/arch/mips/bcm947xx/include/sbpcmcia.h  --- linux-2.4.30/arch/mips/bcm947xx/include/sbpcmcia.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbpcmcia.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/sbpcmcia.h	2005-08-22 01:34:46.334149792 +0200  @@ -0,0 +1,139 @@  +/*  + * BCM43XX Sonics SiliconBackplane PCMCIA core hardware definitions. @@ -7620,9 +7781,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbpcmcia.h linux-2.4.30-brcm/a  +#define SBTMH_INT_STATUS	0x40000		/* sb interrupt status */  +  +#endif	/* _SBPCMCIA_H */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbsdram.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbsdram.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/sbsdram.h linux-2.4.30.dev/arch/mips/bcm947xx/include/sbsdram.h  --- linux-2.4.30/arch/mips/bcm947xx/include/sbsdram.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbsdram.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/sbsdram.h	2005-08-22 01:34:46.335149640 +0200  @@ -0,0 +1,75 @@  +/*  + * BCM47XX Sonics SiliconBackplane SDRAM controller core hardware definitions. @@ -7699,9 +7860,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbsdram.h linux-2.4.30-brcm/ar  +#define MEM8MX16X2	0xc29	/* 32 MB */  +  +#endif	/* _SBSDRAM_H */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbsocram.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbsocram.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/sbsocram.h linux-2.4.30.dev/arch/mips/bcm947xx/include/sbsocram.h  --- linux-2.4.30/arch/mips/bcm947xx/include/sbsocram.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbsocram.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/sbsocram.h	2005-08-22 01:34:46.335149640 +0200  @@ -0,0 +1,37 @@  +/*  + * BCM47XX Sonics SiliconBackplane embedded ram core @@ -7740,9 +7901,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbsocram.h linux-2.4.30-brcm/a  +#define SOCRAM_MEMSIZE_BASESHIFT 16  +  +#endif	/* _SBSOCRAM_H */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbutils.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbutils.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/sbutils.h linux-2.4.30.dev/arch/mips/bcm947xx/include/sbutils.h  --- linux-2.4.30/arch/mips/bcm947xx/include/sbutils.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/sbutils.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/sbutils.h	2005-08-22 01:34:46.336149488 +0200  @@ -0,0 +1,87 @@  +/*  + * Misc utility routines for accessing chip-specific features @@ -7831,9 +7992,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sbutils.h linux-2.4.30-brcm/ar  +#define	CLK_DYNAMIC	2			/* enable dynamic power control */  +  +#endif	/* _sbutils_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sflash.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/sflash.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/sflash.h linux-2.4.30.dev/arch/mips/bcm947xx/include/sflash.h  --- linux-2.4.30/arch/mips/bcm947xx/include/sflash.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/sflash.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/sflash.h	2005-08-22 01:34:46.336149488 +0200  @@ -0,0 +1,36 @@  +/*  + * Broadcom SiliconBackplane chipcommon serial flash interface @@ -7871,9 +8032,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/sflash.h linux-2.4.30-brcm/arc  +extern struct sflash * sflash_init(chipcregs_t *cc);  +  +#endif /* _sflash_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/trxhdr.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/trxhdr.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/trxhdr.h linux-2.4.30.dev/arch/mips/bcm947xx/include/trxhdr.h  --- linux-2.4.30/arch/mips/bcm947xx/include/trxhdr.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/trxhdr.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/trxhdr.h	2005-08-22 01:34:46.337149336 +0200  @@ -0,0 +1,33 @@  +/*  + * TRX image file header format. @@ -7908,9 +8069,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/trxhdr.h linux-2.4.30-brcm/arc  +  +/* Compatibility */  +typedef struct trx_header TRXHDR, *PTRXHDR; -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/typedefs.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/typedefs.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/typedefs.h linux-2.4.30.dev/arch/mips/bcm947xx/include/typedefs.h  --- linux-2.4.30/arch/mips/bcm947xx/include/typedefs.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/typedefs.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/typedefs.h	2005-08-22 01:34:46.338149184 +0200  @@ -0,0 +1,322 @@  +/*  + * Copyright 2005, Broadcom Corporation       @@ -8234,9 +8395,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/typedefs.h linux-2.4.30-brcm/a  +#endif /* USE_TYPEDEF_DEFAULTS */  +  +#endif /* _TYPEDEFS_H_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/wlioctl.h linux-2.4.30-brcm/arch/mips/bcm947xx/include/wlioctl.h +diff -urN linux-2.4.30/arch/mips/bcm947xx/include/wlioctl.h linux-2.4.30.dev/arch/mips/bcm947xx/include/wlioctl.h  --- linux-2.4.30/arch/mips/bcm947xx/include/wlioctl.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/include/wlioctl.h	2005-02-02 23:16:40.000000000 +0100 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/include/wlioctl.h	2005-08-22 01:34:46.339149032 +0200  @@ -0,0 +1,825 @@  +/*  + * Custom OID/ioctl definitions for @@ -9063,28 +9224,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/include/wlioctl.h linux-2.4.30-brcm/ar  +#endif  +  +#endif /* _wlioctl_h_ */ -diff -Nur linux-2.4.30/arch/mips/bcm947xx/Makefile linux-2.4.30-brcm/arch/mips/bcm947xx/Makefile ---- linux-2.4.30/arch/mips/bcm947xx/Makefile	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/Makefile	2005-05-26 15:07:37.000000000 +0200 -@@ -0,0 +1,15 @@ -+# -+# Makefile for the BCM947xx specific kernel interface routines -+# under Linux. -+# -+ -+EXTRA_CFLAGS+=-I$(TOPDIR)/arch/mips/bcm947xx/include -DBCMDRIVER -+ -+O_TARGET        := bcm947xx.o -+ -+export-objs     := nvram_linux.o setup.o -+obj-y		:= prom.o setup.o time.o sbmips.o gpio.o -+obj-y		+= nvram.o nvram_linux.o -+obj-$(CONFIG_PCI) += sbpci.o pcibios.o -+ -+include $(TOPDIR)/Rules.make -diff -Nur linux-2.4.30/arch/mips/bcm947xx/nvram.c linux-2.4.30-brcm/arch/mips/bcm947xx/nvram.c +diff -urN linux-2.4.30/arch/mips/bcm947xx/nvram.c linux-2.4.30.dev/arch/mips/bcm947xx/nvram.c  --- linux-2.4.30/arch/mips/bcm947xx/nvram.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/nvram.c	2005-05-24 17:58:29.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/nvram.c	2005-08-22 01:34:46.341148728 +0200  @@ -0,0 +1,321 @@  +/*  + * NVRAM variable manipulation (common) @@ -9407,9 +9549,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/nvram.c linux-2.4.30-brcm/arch/mips/bc  +{  +	BCMINIT(nvram_free)();  +} -diff -Nur linux-2.4.30/arch/mips/bcm947xx/nvram_linux.c linux-2.4.30-brcm/arch/mips/bcm947xx/nvram_linux.c +diff -urN linux-2.4.30/arch/mips/bcm947xx/nvram_linux.c linux-2.4.30.dev/arch/mips/bcm947xx/nvram_linux.c  --- linux-2.4.30/arch/mips/bcm947xx/nvram_linux.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/nvram_linux.c	2005-05-25 20:02:50.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/nvram_linux.c	2005-08-22 01:34:46.342148576 +0200  @@ -0,0 +1,617 @@  +/*  + * NVRAM variable manipulation (Linux kernel half) @@ -10028,9 +10170,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/nvram_linux.c linux-2.4.30-brcm/arch/m  +  +module_init(dev_nvram_init);  +module_exit(dev_nvram_exit); -diff -Nur linux-2.4.30/arch/mips/bcm947xx/pcibios.c linux-2.4.30-brcm/arch/mips/bcm947xx/pcibios.c +diff -urN linux-2.4.30/arch/mips/bcm947xx/pcibios.c linux-2.4.30.dev/arch/mips/bcm947xx/pcibios.c  --- linux-2.4.30/arch/mips/bcm947xx/pcibios.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/pcibios.c	2005-05-26 01:15:53.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/pcibios.c	2005-08-22 01:34:46.343148424 +0200  @@ -0,0 +1,355 @@  +/*  + * Low-Level PCI and SB support for BCM47xx (Linux support code) @@ -10387,9 +10529,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/pcibios.c linux-2.4.30-brcm/arch/mips/  +	pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat);  +}  + -diff -Nur linux-2.4.30/arch/mips/bcm947xx/prom.c linux-2.4.30-brcm/arch/mips/bcm947xx/prom.c +diff -urN linux-2.4.30/arch/mips/bcm947xx/prom.c linux-2.4.30.dev/arch/mips/bcm947xx/prom.c  --- linux-2.4.30/arch/mips/bcm947xx/prom.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/prom.c	2005-05-22 22:55:51.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/prom.c	2005-08-22 01:34:46.343148424 +0200  @@ -0,0 +1,41 @@  +/*  + * Early initialization code for BCM94710 boards @@ -10432,9 +10574,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/prom.c linux-2.4.30-brcm/arch/mips/bcm  +prom_free_prom_memory(void)  +{  +} -diff -Nur linux-2.4.30/arch/mips/bcm947xx/sbmips.c linux-2.4.30-brcm/arch/mips/bcm947xx/sbmips.c +diff -urN linux-2.4.30/arch/mips/bcm947xx/sbmips.c linux-2.4.30.dev/arch/mips/bcm947xx/sbmips.c  --- linux-2.4.30/arch/mips/bcm947xx/sbmips.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/sbmips.c	2005-05-25 05:06:08.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/sbmips.c	2005-08-22 01:34:46.345148120 +0200  @@ -0,0 +1,982 @@  +/*  + * BCM47XX Sonics SiliconBackplane MIPS core routines @@ -11418,14 +11560,14 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/sbmips.c linux-2.4.30-brcm/arch/mips/b  +	else   +		return 0x15;  +} -diff -Nur linux-2.4.30/arch/mips/bcm947xx/sbpci.c linux-2.4.30-brcm/arch/mips/bcm947xx/sbpci.c +diff -urN linux-2.4.30/arch/mips/bcm947xx/sbpci.c linux-2.4.30.dev/arch/mips/bcm947xx/sbpci.c  --- linux-2.4.30/arch/mips/bcm947xx/sbpci.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/sbpci.c	2005-05-26 21:56:08.000000000 +0200 -@@ -0,0 +1,569 @@ ++++ linux-2.4.30.dev/arch/mips/bcm947xx/sbpci.c	2005-08-22 01:35:16.403578544 +0200 +@@ -0,0 +1,588 @@  +/*  + * Low-Level PCI and SB support for BCM47xx  + * -+ * Copyright 2004, Broadcom Corporation ++ * Copyright 2005, Broadcom Corporation  + * All Rights Reserved.  + *   + * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY @@ -11433,7 +11575,7 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/sbpci.c linux-2.4.30-brcm/arch/mips/bc  + * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS  + * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.  + * -+ * $Id$ ++ * $Id: sbpci.c,v 1.7 2005/03/07 08:35:32 kanki Exp $  + */  +  +#include <typedefs.h> @@ -11670,40 +11812,27 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/sbpci.c linux-2.4.30-brcm/arch/mips/bc  +		pci_ban[pci_banned++] = core;  +}  + -+int __init -+sbpci_init(void *sbh) ++static int ++sbpci_init_pci(void *sbh)  +{ -+	uint chip, chiprev, chippkg, coreidx, host, i; ++	uint chip, chiprev, chippkg, host;  +	uint32 boardflags;  +	sbpciregs_t *pci;  +	sbconfig_t *sb; -+	pci_config_regs *cfg; -+	void *regs; -+	char varname[8];  +	int CT4712_WR; -+	uint wlidx = 0; -+	uint16 vendor, core; -+	uint8 class, subclass, progif;  +	uint32 val; -+	uint32 sbips_int_mask[] = { 0, SBIPS_INT1_MASK, SBIPS_INT2_MASK, SBIPS_INT3_MASK, SBIPS_INT4_MASK }; -+	uint32 sbips_int_shift[] = { 0, 0, SBIPS_INT2_SHIFT, SBIPS_INT3_SHIFT, SBIPS_INT4_SHIFT };  +  +	chip = sb_chip(sbh);  +	chiprev = sb_chiprev(sbh);  +	chippkg = sb_chippkg(sbh); -+	coreidx = sb_coreidx(sbh);  + -+	if (!(pci = (sbpciregs_t *) sb_setcore(sbh, SB_PCI, 0))) ++	if (!(pci = (sbpciregs_t *) sb_setcore(sbh, SB_PCI, 0))) { ++		printf("PCI: no core\n"); ++		pci_disabled = TRUE;  +		return -1; ++	}  +	sb_core_reset(sbh, 0);  + -+	/* In some board, -+	if(nvram_match("boardtype", "bcm94710dev")) -+		CT4712_WR = 0; -+	else -+		CT4712_WR = 1; -+	*/ -+  +	boardflags = (uint32) getintvar(NULL, "boardflags");  +  +	if ((chip == BCM4310_DEVICE_ID) && (chiprev == 0)) @@ -11716,7 +11845,8 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/sbpci.c linux-2.4.30-brcm/arch/mips/bc  +	 */  +	if (((chip == BCM4712_DEVICE_ID) &&  +	     ((chippkg == BCM4712SMALL_PKG_ID) || -+	      (chippkg == BCM4712MID_PKG_ID))) ) ++	      (chippkg == BCM4712MID_PKG_ID))) || ++	    (boardflags & BFL_NOPCI))  +		pci_disabled = TRUE;  +  +	/* @@ -11771,6 +11901,29 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/sbpci.c linux-2.4.30-brcm/arch/mips/bc  +		/* Enable PCI interrupts */  +		W_REG(&pci->intmask, PCI_INTA);  +	} ++	 ++	return 0; ++} ++ ++static int ++sbpci_init_cores(void *sbh) ++{ ++	uint chip, chiprev, chippkg, coreidx, i; ++	sbconfig_t *sb; ++	pci_config_regs *cfg; ++	void *regs; ++	char varname[8]; ++	uint wlidx = 0; ++	uint16 vendor, core; ++	uint8 class, subclass, progif; ++	uint32 val; ++	uint32 sbips_int_mask[] = { 0, SBIPS_INT1_MASK, SBIPS_INT2_MASK, SBIPS_INT3_MASK, SBIPS_INT4_MASK }; ++	uint32 sbips_int_shift[] = { 0, 0, SBIPS_INT2_SHIFT, SBIPS_INT3_SHIFT, SBIPS_INT4_SHIFT }; ++ ++	chip = sb_chip(sbh); ++	chiprev = sb_chiprev(sbh); ++	chippkg = sb_chippkg(sbh); ++	coreidx = sb_coreidx(sbh);  +  +	/* Scan the SB bus */  +	bzero(sb_config_regs, sizeof(sb_config_regs)); @@ -11933,6 +12086,14 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/sbpci.c linux-2.4.30-brcm/arch/mips/bc  +	return 0;  +}  + ++int __init ++sbpci_init(void *sbh) ++{ ++	sbpci_init_pci(sbh); ++	sbpci_init_cores(sbh); ++	return 0; ++} ++  +void  +sbpci_check(void *sbh)  +{ @@ -11991,9 +12152,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/sbpci.c linux-2.4.30-brcm/arch/mips/bc  +  +	sb_setcoreidx(sbh, coreidx);  +} -diff -Nur linux-2.4.30/arch/mips/bcm947xx/setup.c linux-2.4.30-brcm/arch/mips/bcm947xx/setup.c +diff -urN linux-2.4.30/arch/mips/bcm947xx/setup.c linux-2.4.30.dev/arch/mips/bcm947xx/setup.c  --- linux-2.4.30/arch/mips/bcm947xx/setup.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/setup.c	2005-05-25 17:50:08.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/setup.c	2005-08-22 01:34:46.347147816 +0200  @@ -0,0 +1,261 @@  +/*  + * Generic setup routines for Broadcom MIPS boards @@ -12256,9 +12417,9 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/setup.c linux-2.4.30-brcm/arch/mips/bc  +EXPORT_SYMBOL(init_mtd_partitions);  +  +#endif -diff -Nur linux-2.4.30/arch/mips/bcm947xx/time.c linux-2.4.30-brcm/arch/mips/bcm947xx/time.c +diff -urN linux-2.4.30/arch/mips/bcm947xx/time.c linux-2.4.30.dev/arch/mips/bcm947xx/time.c  --- linux-2.4.30/arch/mips/bcm947xx/time.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/bcm947xx/time.c	2005-05-22 22:55:51.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/bcm947xx/time.c	2005-08-22 01:34:46.347147816 +0200  @@ -0,0 +1,117 @@  +/*  + * Copyright 2004, Broadcom Corporation @@ -12377,10 +12538,10 @@ diff -Nur linux-2.4.30/arch/mips/bcm947xx/time.c linux-2.4.30-brcm/arch/mips/bcm  +	/* Enable the timer interrupt */  +	setup_irq(7, &bcm947xx_timer_irqaction);  +} -diff -Nur linux-2.4.30/arch/mips/config-shared.in linux-2.4.30-brcm/arch/mips/config-shared.in ---- linux-2.4.30/arch/mips/config-shared.in	2005-01-19 15:09:27.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/config-shared.in	2005-05-26 16:34:10.000000000 +0200 -@@ -205,6 +205,14 @@ +diff -urN linux-2.4.30/arch/mips/config-shared.in linux-2.4.30.dev/arch/mips/config-shared.in +--- linux-2.4.30/arch/mips/config-shared.in	2005-08-22 01:29:11.665027232 +0200 ++++ linux-2.4.30.dev/arch/mips/config-shared.in	2005-08-22 01:34:46.362145536 +0200 +@@ -208,6 +208,14 @@      fi      define_bool CONFIG_MIPS_RTC y   fi @@ -12395,7 +12556,7 @@ diff -Nur linux-2.4.30/arch/mips/config-shared.in linux-2.4.30-brcm/arch/mips/co   bool 'Support for SNI RM200 PCI' CONFIG_SNI_RM200_PCI   bool 'Support for TANBAC TB0226 (Mbase)' CONFIG_TANBAC_TB0226   bool 'Support for TANBAC TB0229 (VR4131DIMM)' CONFIG_TANBAC_TB0229 -@@ -226,6 +234,11 @@ +@@ -229,6 +237,11 @@   define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n   # @@ -12407,7 +12568,7 @@ diff -Nur linux-2.4.30/arch/mips/config-shared.in linux-2.4.30-brcm/arch/mips/co   # Select some configuration options automatically based on user selections.   #   if [ "$CONFIG_ACER_PICA_61" = "y" ]; then -@@ -533,6 +546,13 @@ +@@ -554,6 +567,13 @@      define_bool CONFIG_SWAP_IO_SPACE_L y      define_bool CONFIG_BOOT_ELF32 y   fi @@ -12421,7 +12582,7 @@ diff -Nur linux-2.4.30/arch/mips/config-shared.in linux-2.4.30-brcm/arch/mips/co   if [ "$CONFIG_SNI_RM200_PCI" = "y" ]; then      define_bool CONFIG_ARC32 y      define_bool CONFIG_ARC_MEMORY y -@@ -1011,7 +1031,11 @@ +@@ -1042,7 +1062,11 @@   bool 'Are you using a crosscompiler' CONFIG_CROSSCOMPILE   bool 'Enable run-time debugging' CONFIG_RUNTIME_DEBUG @@ -12434,10 +12595,10 @@ diff -Nur linux-2.4.30/arch/mips/config-shared.in linux-2.4.30-brcm/arch/mips/co   dep_bool '  Console output to GDB' CONFIG_GDB_CONSOLE $CONFIG_KGDB   if [ "$CONFIG_KGDB" = "y" ]; then      define_bool CONFIG_DEBUG_INFO y -diff -Nur linux-2.4.30/arch/mips/kernel/cpu-probe.c linux-2.4.30-brcm/arch/mips/kernel/cpu-probe.c ---- linux-2.4.30/arch/mips/kernel/cpu-probe.c	2005-01-19 15:09:29.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/kernel/cpu-probe.c	2005-05-22 22:55:51.000000000 +0200 -@@ -174,7 +174,7 @@ +diff -urN linux-2.4.30/arch/mips/kernel/cpu-probe.c linux-2.4.30.dev/arch/mips/kernel/cpu-probe.c +--- linux-2.4.30/arch/mips/kernel/cpu-probe.c	2005-08-22 01:29:09.347379568 +0200 ++++ linux-2.4.30.dev/arch/mips/kernel/cpu-probe.c	2005-08-22 01:34:46.365145080 +0200 +@@ -163,7 +163,7 @@   static inline void cpu_probe_legacy(struct cpuinfo_mips *c)   { @@ -12446,7 +12607,7 @@ diff -Nur linux-2.4.30/arch/mips/kernel/cpu-probe.c linux-2.4.30-brcm/arch/mips/   	case PRID_IMP_R2000:   		c->cputype = CPU_R2000;   		c->isa_level = MIPS_CPU_ISA_I; -@@ -184,7 +184,7 @@ +@@ -173,7 +173,7 @@   		c->tlbsize = 64;   		break;   	case PRID_IMP_R3000: @@ -12455,7 +12616,7 @@ diff -Nur linux-2.4.30/arch/mips/kernel/cpu-probe.c linux-2.4.30-brcm/arch/mips/   			if (cpu_has_confreg())   				c->cputype = CPU_R3081E;   			else -@@ -199,12 +199,12 @@ +@@ -188,12 +188,12 @@   		break;   	case PRID_IMP_R4000:   		if (read_c0_config() & CONF_SC) { @@ -12470,7 +12631,7 @@ diff -Nur linux-2.4.30/arch/mips/kernel/cpu-probe.c linux-2.4.30-brcm/arch/mips/   				c->cputype = CPU_R4400SC;   			else   				c->cputype = CPU_R4000SC; -@@ -450,7 +450,7 @@ +@@ -439,7 +439,7 @@   static inline void cpu_probe_mips(struct cpuinfo_mips *c)   {   	decode_config1(c); @@ -12479,7 +12640,7 @@ diff -Nur linux-2.4.30/arch/mips/kernel/cpu-probe.c linux-2.4.30-brcm/arch/mips/   	case PRID_IMP_4KC:   		c->cputype = CPU_4KC;   		c->isa_level = MIPS_CPU_ISA_M32; -@@ -491,10 +491,10 @@ +@@ -480,10 +480,10 @@   {   	decode_config1(c);   	c->options |= MIPS_CPU_PREFETCH; @@ -12492,7 +12653,7 @@ diff -Nur linux-2.4.30/arch/mips/kernel/cpu-probe.c linux-2.4.30-brcm/arch/mips/   		case 0:    			c->cputype = CPU_AU1000;   			break; -@@ -522,10 +522,34 @@ +@@ -511,10 +511,34 @@   	}   } @@ -12528,7 +12689,7 @@ diff -Nur linux-2.4.30/arch/mips/kernel/cpu-probe.c linux-2.4.30-brcm/arch/mips/   	case PRID_IMP_SB1:   		c->cputype = CPU_SB1;   		c->isa_level = MIPS_CPU_ISA_M64; -@@ -547,7 +571,7 @@ +@@ -536,7 +560,7 @@   static inline void cpu_probe_sandcraft(struct cpuinfo_mips *c)   {   	decode_config1(c); @@ -12537,7 +12698,7 @@ diff -Nur linux-2.4.30/arch/mips/kernel/cpu-probe.c linux-2.4.30-brcm/arch/mips/   	case PRID_IMP_SR71000:   		c->cputype = CPU_SR71000;   		c->isa_level = MIPS_CPU_ISA_M64; -@@ -572,7 +596,7 @@ +@@ -561,7 +585,7 @@   	c->cputype	= CPU_UNKNOWN;   	c->processor_id = read_c0_prid(); @@ -12546,7 +12707,7 @@ diff -Nur linux-2.4.30/arch/mips/kernel/cpu-probe.c linux-2.4.30-brcm/arch/mips/   	case PRID_COMP_LEGACY:   		cpu_probe_legacy(c); -@@ -583,6 +607,9 @@ +@@ -572,6 +596,9 @@   	case PRID_COMP_ALCHEMY:   		cpu_probe_alchemy(c);   		break; @@ -12556,9 +12717,9 @@ diff -Nur linux-2.4.30/arch/mips/kernel/cpu-probe.c linux-2.4.30-brcm/arch/mips/   	case PRID_COMP_SIBYTE:   		cpu_probe_sibyte(c);   		break; -diff -Nur linux-2.4.30/arch/mips/kernel/head.S linux-2.4.30-brcm/arch/mips/kernel/head.S ---- linux-2.4.30/arch/mips/kernel/head.S	2005-01-19 15:09:29.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/kernel/head.S	2005-05-22 22:55:51.000000000 +0200 +diff -urN linux-2.4.30/arch/mips/kernel/head.S linux-2.4.30.dev/arch/mips/kernel/head.S +--- linux-2.4.30/arch/mips/kernel/head.S	2005-08-22 01:29:09.348379416 +0200 ++++ linux-2.4.30.dev/arch/mips/kernel/head.S	2005-08-22 01:34:46.366144928 +0200  @@ -28,12 +28,20 @@   #include <asm/mipsregs.h>   #include <asm/stackframe.h> @@ -12581,9 +12742,9 @@ diff -Nur linux-2.4.30/arch/mips/kernel/head.S linux-2.4.30-brcm/arch/mips/kerne   		/* The following two symbols are used for kernel profiling. */   		EXPORT(stext) -diff -Nur linux-2.4.30/arch/mips/kernel/proc.c linux-2.4.30-brcm/arch/mips/kernel/proc.c +diff -urN linux-2.4.30/arch/mips/kernel/proc.c linux-2.4.30.dev/arch/mips/kernel/proc.c  --- linux-2.4.30/arch/mips/kernel/proc.c	2005-01-19 15:09:29.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/kernel/proc.c	2005-05-22 22:55:51.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/kernel/proc.c	2005-08-22 01:34:46.366144928 +0200  @@ -78,9 +78,10 @@   	[CPU_AU1550]	"Au1550",   	[CPU_24K]	"MIPS 24K", @@ -12596,10 +12757,10 @@ diff -Nur linux-2.4.30/arch/mips/kernel/proc.c linux-2.4.30-brcm/arch/mips/kerne   static int show_cpuinfo(struct seq_file *m, void *v)   {   	unsigned int version = current_cpu_data.processor_id; -diff -Nur linux-2.4.30/arch/mips/kernel/setup.c linux-2.4.30-brcm/arch/mips/kernel/setup.c ---- linux-2.4.30/arch/mips/kernel/setup.c	2005-01-19 15:09:29.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/kernel/setup.c	2005-05-25 19:00:43.000000000 +0200 -@@ -495,6 +495,7 @@ +diff -urN linux-2.4.30/arch/mips/kernel/setup.c linux-2.4.30.dev/arch/mips/kernel/setup.c +--- linux-2.4.30/arch/mips/kernel/setup.c	2005-08-22 01:29:09.349379264 +0200 ++++ linux-2.4.30.dev/arch/mips/kernel/setup.c	2005-08-22 01:34:46.367144776 +0200 +@@ -493,6 +493,7 @@   	void swarm_setup(void);   	void hp_setup(void);   	void au1x00_setup(void); @@ -12607,7 +12768,7 @@ diff -Nur linux-2.4.30/arch/mips/kernel/setup.c linux-2.4.30-brcm/arch/mips/kern   	void frame_info_init(void);   	frame_info_init(); -@@ -693,6 +694,11 @@ +@@ -691,6 +692,11 @@                   pmc_yosemite_setup();                   break;   #endif @@ -12619,10 +12780,10 @@ diff -Nur linux-2.4.30/arch/mips/kernel/setup.c linux-2.4.30-brcm/arch/mips/kern   	default:   		panic("Unsupported architecture");   	} -diff -Nur linux-2.4.30/arch/mips/kernel/traps.c linux-2.4.30-brcm/arch/mips/kernel/traps.c ---- linux-2.4.30/arch/mips/kernel/traps.c	2005-01-19 15:09:29.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/kernel/traps.c	2005-05-22 22:55:51.000000000 +0200 -@@ -913,6 +913,7 @@ +diff -urN linux-2.4.30/arch/mips/kernel/traps.c linux-2.4.30.dev/arch/mips/kernel/traps.c +--- linux-2.4.30/arch/mips/kernel/traps.c	2005-08-22 01:29:09.350379112 +0200 ++++ linux-2.4.30.dev/arch/mips/kernel/traps.c	2005-08-22 01:34:46.369144472 +0200 +@@ -920,6 +920,7 @@   void __init trap_init(void)   {   	extern char except_vec1_generic; @@ -12630,7 +12791,7 @@ diff -Nur linux-2.4.30/arch/mips/kernel/traps.c linux-2.4.30-brcm/arch/mips/kern   	extern char except_vec3_generic, except_vec3_r4000;   	extern char except_vec_ejtag_debug;   	extern char except_vec4; -@@ -922,6 +923,7 @@ +@@ -927,6 +928,7 @@   	/* Copy the generic exception handler code to it's final destination. */   	memcpy((void *)(KSEG0 + 0x80), &except_vec1_generic, 0x80); @@ -12638,7 +12799,7 @@ diff -Nur linux-2.4.30/arch/mips/kernel/traps.c linux-2.4.30-brcm/arch/mips/kern   	/*   	 * Setup default vectors -@@ -980,6 +982,12 @@ +@@ -985,6 +987,12 @@   	set_except_vector(13, handle_tr);   	set_except_vector(22, handle_mdmx); @@ -12651,88 +12812,10 @@ diff -Nur linux-2.4.30/arch/mips/kernel/traps.c linux-2.4.30-brcm/arch/mips/kern   	if (cpu_has_fpu && !cpu_has_nofpuex)   		set_except_vector(15, handle_fpe); -diff -Nur linux-2.4.30/arch/mips/Makefile linux-2.4.30-brcm/arch/mips/Makefile ---- linux-2.4.30/arch/mips/Makefile	2005-01-19 15:09:26.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/Makefile	2005-05-25 18:53:09.000000000 +0200 -@@ -46,10 +46,10 @@ - GCCFLAGS	:= -I $(TOPDIR)/include/asm/gcc - GCCFLAGS	+= -G 0 -mno-abicalls -fno-pic -pipe - GCCFLAGS	+= $(call check_gcc, -finline-limit=100000,) --LINKFLAGS	+= -G 0 -static -n --MODFLAGS	+= -mlong-calls -+LINKFLAGS	+= -G 0 -static -n -nostdlib -+MODFLAGS	+= -mlong-calls -fno-common -  --ifdef CONFIG_DEBUG_INFO -+ifdef CONFIG_REMOTE_DEBUG - GCCFLAGS	+= -g - ifdef CONFIG_SB1XXX_CORELIS - GCCFLAGS	+= -mno-sched-prolog -fno-omit-frame-pointer -@@ -71,13 +71,13 @@ - set_gccflags = $(shell \ - while :; do \ - 	cpu=$(1); isa=-$(2); \ --	for gcc_opt in -march= -mcpu=; do \ -+	for gcc_opt in -march= -mtune=; do \ - 		$(CC) $$gcc_opt$$cpu $$isa -S -o /dev/null \ - 			-xc /dev/null > /dev/null 2>&1 && \ - 			break 2; \ - 	done; \ - 	cpu=$(3); isa=-$(4); \ --	for gcc_opt in -march= -mcpu=; do \ -+	for gcc_opt in -march= -mtune=; do \ - 		$(CC) $$gcc_opt$$cpu $$isa -S -o /dev/null \ - 			-xc /dev/null > /dev/null 2>&1 && \ - 			break 2; \ -@@ -92,7 +92,7 @@ - fi; \ - gas_abi=-Wa,-32; gas_cpu=$$cpu; gas_isa=-Wa,$$isa; \ - while :; do \ --	for gas_opt in -Wa,-march= -Wa,-mcpu=; do \ -+	for gas_opt in -Wa,-march= -Wa,-mtune=; do \ - 		$(CC) $$gas_abi $$gas_opt$$cpu $$gas_isa -Wa,-Z -c \ - 			-o /dev/null -xassembler /dev/null > /dev/null 2>&1 && \ - 			break 2; \ -@@ -174,6 +174,7 @@ - endif -  - AFLAGS		+= $(GCCFLAGS) -+ASFLAGS		+= $(GCCFLAGS) - CFLAGS		+= $(GCCFLAGS) -  - LD		+= -m $(ld-emul) -@@ -715,6 +716,19 @@ - endif -  - # -+# Broadcom BCM947XX variants -+# -+ifdef CONFIG_BCM947XX -+LIBS		+= arch/mips/bcm947xx/generic/brcm.o arch/mips/bcm947xx/bcm947xx.o  -+SUBDIRS		+= arch/mips/bcm947xx/generic arch/mips/bcm947xx  -+LOADADDR	:= 0x80001000 -+ -+zImage: vmlinux -+	$(MAKE) -C arch/$(ARCH)/bcm947xx/compressed -+export LOADADDR -+endif -+ -+# - # Choosing incompatible machines durings configuration will result in - # error messages during linking.  Select a default linkscript if - # none has been choosen above. -@@ -767,6 +781,7 @@ - 	$(MAKE) -C arch/$(ARCH)/tools clean - 	$(MAKE) -C arch/mips/baget clean - 	$(MAKE) -C arch/mips/lasat clean -+	$(MAKE) -C arch/mips/bcm947xx/compressed clean -  - archmrproper: - 	@$(MAKEBOOT) mrproper -diff -Nur linux-2.4.30/arch/mips/mm/c-r4k.c linux-2.4.30-brcm/arch/mips/mm/c-r4k.c ---- linux-2.4.30/arch/mips/mm/c-r4k.c	2005-01-19 15:09:29.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/mm/c-r4k.c	2005-05-26 08:53:48.000000000 +0200 -@@ -1114,3 +1114,47 @@ +diff -urN linux-2.4.30/arch/mips/mm/c-r4k.c linux-2.4.30.dev/arch/mips/mm/c-r4k.c +--- linux-2.4.30/arch/mips/mm/c-r4k.c	2005-08-22 01:29:09.353378656 +0200 ++++ linux-2.4.30.dev/arch/mips/mm/c-r4k.c	2005-08-22 01:34:46.372144016 +0200 +@@ -1118,3 +1118,47 @@   	build_clear_page();   	build_copy_page();   } @@ -12780,9 +12863,9 @@ diff -Nur linux-2.4.30/arch/mips/mm/c-r4k.c linux-2.4.30-brcm/arch/mips/mm/c-r4k  +}  +  + -diff -Nur linux-2.4.30/arch/mips/pci/Makefile linux-2.4.30-brcm/arch/mips/pci/Makefile +diff -urN linux-2.4.30/arch/mips/pci/Makefile linux-2.4.30.dev/arch/mips/pci/Makefile  --- linux-2.4.30/arch/mips/pci/Makefile	2005-01-19 15:09:29.000000000 +0100 -+++ linux-2.4.30-brcm/arch/mips/pci/Makefile	2005-05-26 01:02:53.000000000 +0200 ++++ linux-2.4.30.dev/arch/mips/pci/Makefile	2005-08-22 01:34:46.385142040 +0200  @@ -13,7 +13,9 @@   obj-$(CONFIG_MIPS_MSC)		+= ops-msc.o   obj-$(CONFIG_MIPS_NILE4)	+= ops-nile4.o @@ -12793,10 +12876,10 @@ diff -Nur linux-2.4.30/arch/mips/pci/Makefile linux-2.4.30-brcm/arch/mips/pci/Ma   obj-$(CONFIG_PCI_AUTO)		+= pci_auto.o   include $(TOPDIR)/Rules.make -diff -Nur linux-2.4.30/drivers/char/serial.c linux-2.4.30-brcm/drivers/char/serial.c ---- linux-2.4.30/drivers/char/serial.c	2005-01-19 15:09:50.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/char/serial.c	2005-05-22 22:55:52.000000000 +0200 -@@ -422,6 +422,10 @@ +diff -urN linux-2.4.30/drivers/char/serial.c linux-2.4.30.dev/drivers/char/serial.c +--- linux-2.4.30/drivers/char/serial.c	2005-08-22 01:29:09.495357072 +0200 ++++ linux-2.4.30.dev/drivers/char/serial.c	2005-08-22 01:34:46.431135048 +0200 +@@ -444,6 +444,10 @@   		return inb(info->port+1);   #endif   	case SERIAL_IO_MEM: @@ -12807,7 +12890,7 @@ diff -Nur linux-2.4.30/drivers/char/serial.c linux-2.4.30-brcm/drivers/char/seri   		return readb((unsigned long) info->iomem_base +   			     (offset<<info->iomem_reg_shift));   	default: -@@ -442,6 +446,9 @@ +@@ -464,6 +468,9 @@   	case SERIAL_IO_MEM:   		writeb(value, (unsigned long) info->iomem_base +   			      (offset<<info->iomem_reg_shift)); @@ -12817,7 +12900,7 @@ diff -Nur linux-2.4.30/drivers/char/serial.c linux-2.4.30-brcm/drivers/char/seri   		break;   	default:   		outb(value, info->port+offset); -@@ -5972,6 +5979,13 @@ +@@ -5996,6 +6003,13 @@   	 *	Divisor, bytesize and parity   	 */   	state = rs_table + co->index; @@ -12831,9 +12914,960 @@ diff -Nur linux-2.4.30/drivers/char/serial.c linux-2.4.30-brcm/drivers/char/seri   	if (doflow)   		state->flags |= ASYNC_CONS_FLOW;   	info = &async_sercons; -diff -Nur linux-2.4.30/drivers/mtd/maps/bcm947xx-flash.c linux-2.4.30-brcm/drivers/mtd/maps/bcm947xx-flash.c +diff -urN linux-2.4.30/drivers/mtd/chips/Config.in linux-2.4.30.dev/drivers/mtd/chips/Config.in +--- linux-2.4.30/drivers/mtd/chips/Config.in	2003-06-13 16:51:34.000000000 +0200 ++++ linux-2.4.30.dev/drivers/mtd/chips/Config.in	2005-08-22 01:34:46.435134440 +0200 +@@ -45,6 +45,7 @@ + dep_tristate '  Support for Intel/Sharp flash chips' CONFIG_MTD_CFI_INTELEXT $CONFIG_MTD_GEN_PROBE + dep_tristate '  Support for AMD/Fujitsu flash chips' CONFIG_MTD_CFI_AMDSTD $CONFIG_MTD_GEN_PROBE + dep_tristate '  Support for ST (Advanced Architecture) flash chips' CONFIG_MTD_CFI_STAA $CONFIG_MTD_GEN_PROBE ++dep_tristate '  Support for SST flash chips' CONFIG_MTD_CFI_SSTSTD $CONFIG_MTD_GEN_PROBE +  + dep_tristate '  Support for RAM chips in bus mapping' CONFIG_MTD_RAM $CONFIG_MTD + dep_tristate '  Support for ROM chips in bus mapping' CONFIG_MTD_ROM $CONFIG_MTD +diff -urN linux-2.4.30/drivers/mtd/chips/Makefile linux-2.4.30.dev/drivers/mtd/chips/Makefile +--- linux-2.4.30/drivers/mtd/chips/Makefile	2003-06-13 16:51:34.000000000 +0200 ++++ linux-2.4.30.dev/drivers/mtd/chips/Makefile	2005-08-22 01:34:46.458130944 +0200 +@@ -18,6 +18,7 @@ + obj-$(CONFIG_MTD_AMDSTD)	+= amd_flash.o  + obj-$(CONFIG_MTD_CFI)		+= cfi_probe.o + obj-$(CONFIG_MTD_CFI_STAA)	+= cfi_cmdset_0020.o ++obj-$(CONFIG_MTD_CFI_SSTSTD)   += cfi_cmdset_0701.o + obj-$(CONFIG_MTD_CFI_AMDSTD)	+= cfi_cmdset_0002.o + obj-$(CONFIG_MTD_CFI_INTELEXT)	+= cfi_cmdset_0001.o + obj-$(CONFIG_MTD_GEN_PROBE)	+= gen_probe.o +diff -urN linux-2.4.30/drivers/mtd/chips/cfi_cmdset_0701.c linux-2.4.30.dev/drivers/mtd/chips/cfi_cmdset_0701.c +--- linux-2.4.30/drivers/mtd/chips/cfi_cmdset_0701.c	1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.4.30.dev/drivers/mtd/chips/cfi_cmdset_0701.c	2005-08-22 01:34:46.433134744 +0200 +@@ -0,0 +1,855 @@ ++/* ++ * Common Flash Interface support: ++ *   SST Standard Vendor Command Set (ID 0x0701) ++ * ++ * Copyright (C) 2000 Crossnet Co. <info@crossnet.co.jp> ++ * ++ * 2_by_8 routines added by Simon Munton ++ * ++ * This code is GPL ++ * ++ * $Id: cfi_cmdset_0701.c,v 1.1 2005/03/16 13:50:00 wbx Exp $ ++ * ++ */ ++ ++#include <linux/module.h> ++#include <linux/types.h> ++#include <linux/kernel.h> ++#include <linux/sched.h> ++#include <asm/io.h> ++#include <asm/byteorder.h> ++ ++#include <linux/errno.h> ++#include <linux/slab.h> ++#include <linux/delay.h> ++#include <linux/interrupt.h> ++#include <linux/mtd/map.h> ++#include <linux/mtd/cfi.h> ++ ++static int cfi_sststd_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *); ++static int cfi_sststd_write(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); ++static int cfi_sststd_erase_onesize(struct mtd_info *, struct erase_info *); ++static int cfi_sststd_erase_varsize(struct mtd_info *, struct erase_info *); ++static void cfi_sststd_sync (struct mtd_info *); ++static int cfi_sststd_suspend (struct mtd_info *); ++static void cfi_sststd_resume (struct mtd_info *); ++ ++static void cfi_sststd_destroy(struct mtd_info *); ++ ++struct mtd_info *cfi_cmdset_0701(struct map_info *, int); ++static struct mtd_info *cfi_sststd_setup (struct map_info *); ++ ++ ++static struct mtd_chip_driver cfi_sststd_chipdrv = { ++	probe: NULL, /* Not usable directly */ ++	destroy: cfi_sststd_destroy, ++	name: "cfi_cmdset_0701", ++	module: THIS_MODULE ++}; ++ ++struct mtd_info *cfi_cmdset_0701(struct map_info *map, int primary) ++{ ++	struct cfi_private *cfi = map->fldrv_priv; ++	int ofs_factor = cfi->interleave * cfi->device_type; ++	int i; ++	__u8 major, minor; ++	__u32 base = cfi->chips[0].start; ++ ++	if (cfi->cfi_mode==1){ ++		__u16 adr = primary?cfi->cfiq->P_ADR:cfi->cfiq->A_ADR; ++ ++		cfi_send_gen_cmd(0xAA, 0x5555, base, map, cfi, cfi->device_type, NULL); ++		cfi_send_gen_cmd(0x55, 0x2AAA, base, map, cfi, cfi->device_type, NULL); ++		cfi_send_gen_cmd(0x98, 0x5555, base, map, cfi, cfi->device_type, NULL); ++		 ++		major = cfi_read_query(map, base + (adr+3)*ofs_factor); ++		minor = cfi_read_query(map, base + (adr+4)*ofs_factor); ++		 ++		printk(" SST Query Table v%c.%c at 0x%4.4X\n", ++		       major, minor, adr); ++		cfi_send_gen_cmd(0xf0, 0x5555, base, map, cfi, cfi->device_type, NULL); ++		 ++		cfi_send_gen_cmd(0xAA, 0x5555, base, map, cfi, cfi->device_type, NULL); ++		cfi_send_gen_cmd(0x55, 0x2AAA, base, map, cfi, cfi->device_type, NULL); ++		cfi_send_gen_cmd(0x90, 0x5555, base, map, cfi, cfi->device_type, NULL); ++		cfi->mfr = cfi_read_query(map, base); ++		cfi->id = cfi_read_query(map, base + ofs_factor); ++ ++		cfi_send_gen_cmd(0xAA, 0x5555, base, map, cfi, cfi->device_type, NULL); ++		cfi_send_gen_cmd(0x55, 0x2AAA, base, map, cfi, cfi->device_type, NULL); ++		cfi_send_gen_cmd(0x98, 0x5555, base, map, cfi, cfi->device_type, NULL); ++		 ++		switch (cfi->device_type) { ++		case CFI_DEVICETYPE_X16: ++			cfi->addr_unlock1 = 0x5555; ++			cfi->addr_unlock2 = 0x2AAA; ++			break; ++		default: ++			printk(KERN_NOTICE "Eep. Unknown cfi_cmdset_0701 device type %d\n", cfi->device_type); ++			return NULL; ++		} ++	} /* CFI mode */ ++ ++	for (i=0; i< cfi->numchips; i++) { ++		cfi->chips[i].word_write_time = 1<<cfi->cfiq->WordWriteTimeoutTyp; ++		cfi->chips[i].buffer_write_time = 1<<cfi->cfiq->BufWriteTimeoutTyp; ++		cfi->chips[i].erase_time = 1<<cfi->cfiq->BlockEraseTimeoutTyp; ++	}		 ++	 ++	map->fldrv = &cfi_sststd_chipdrv; ++	MOD_INC_USE_COUNT; ++ ++	cfi_send_gen_cmd(0xf0, 0x5555, base, map, cfi, cfi->device_type, NULL); ++	return cfi_sststd_setup(map); ++} ++ ++static struct mtd_info *cfi_sststd_setup(struct map_info *map) ++{ ++	struct cfi_private *cfi = map->fldrv_priv; ++	struct mtd_info *mtd; ++	unsigned long devsize = (1<<cfi->cfiq->DevSize) * cfi->interleave; ++ ++	mtd = kmalloc(sizeof(*mtd), GFP_KERNEL); ++	printk("number of %s chips: %d\n", (cfi->cfi_mode)?"JEDEC":"CFI",cfi->numchips); ++ ++	if (!mtd) { ++	  printk("Failed to allocate memory for MTD device\n"); ++	  kfree(cfi->cmdset_priv); ++	  return NULL; ++	} ++ ++	memset(mtd, 0, sizeof(*mtd)); ++	mtd->priv = map; ++	mtd->type = MTD_NORFLASH; ++	/* Also select the correct geometry setup too */  ++	mtd->size = devsize * cfi->numchips; ++	 ++	if (cfi->cfiq->NumEraseRegions == 1) { ++		/* No need to muck about with multiple erase sizes */ ++		mtd->erasesize = ((cfi->cfiq->EraseRegionInfo[0] >> 8) & ~0xff) * cfi->interleave; ++	} else { ++		unsigned long offset = 0; ++		int i,j; ++ ++		mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips; ++		mtd->eraseregions = kmalloc(sizeof(struct mtd_erase_region_info) * mtd->numeraseregions, GFP_KERNEL); ++		if (!mtd->eraseregions) {  ++			printk("Failed to allocate memory for MTD erase region info\n"); ++			kfree(cfi->cmdset_priv); ++			return NULL; ++		} ++			 ++		for (i=0; i<cfi->cfiq->NumEraseRegions; i++) { ++			unsigned long ernum, ersize; ++			ersize = ((cfi->cfiq->EraseRegionInfo[i] >> 8) & ~0xff) * cfi->interleave; ++			ernum = (cfi->cfiq->EraseRegionInfo[i] & 0xffff) + 1; ++			 ++			if (mtd->erasesize < ersize) { ++				mtd->erasesize = ersize; ++			} ++			for (j=0; j<cfi->numchips; j++) { ++				mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].offset = (j*devsize)+offset; ++				mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].erasesize = ersize; ++				mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].numblocks = ernum; ++			} ++			offset += (ersize * ernum); ++		} ++ ++		// debug ++		for (i=0; i<mtd->numeraseregions;i++){ ++			printk("%d: offset=0x%x,size=0x%x,blocks=%d\n", ++			       i,mtd->eraseregions[i].offset, ++			       mtd->eraseregions[i].erasesize, ++			       mtd->eraseregions[i].numblocks); ++		} ++	} ++ ++	switch (CFIDEV_BUSWIDTH) ++	{ ++	case 1: ++	case 2: ++	case 4: ++		if (mtd->numeraseregions > 1) ++			mtd->erase = cfi_sststd_erase_varsize; ++		else ++			mtd->erase = cfi_sststd_erase_onesize; ++		mtd->read = cfi_sststd_read; ++		mtd->write = cfi_sststd_write; ++		break; ++ ++	default: ++	        printk("Unsupported buswidth\n"); ++		kfree(mtd); ++		kfree(cfi->cmdset_priv); ++		return NULL; ++		break; ++	} ++	mtd->sync = cfi_sststd_sync; ++	mtd->suspend = cfi_sststd_suspend; ++	mtd->resume = cfi_sststd_resume; ++	mtd->flags = MTD_CAP_NORFLASH; ++	map->fldrv = &cfi_sststd_chipdrv; ++	mtd->name = map->name; ++	MOD_INC_USE_COUNT; ++	return mtd; ++} ++ ++static inline int do_read_onechip(struct map_info *map, struct flchip *chip, loff_t adr, size_t len, u_char *buf) ++{ ++	DECLARE_WAITQUEUE(wait, current); ++	unsigned long timeo = jiffies + HZ; ++ ++ retry: ++	cfi_spin_lock(chip->mutex); ++ ++	if (chip->state != FL_READY){ ++	        printk("Waiting for chip to read, status = %d\n", chip->state); ++		set_current_state(TASK_UNINTERRUPTIBLE); ++		add_wait_queue(&chip->wq, &wait); ++                 ++		cfi_spin_unlock(chip->mutex); ++ ++		schedule(); ++		remove_wait_queue(&chip->wq, &wait); ++		timeo = jiffies + HZ; ++ ++		goto retry; ++	}	 ++ ++	adr += chip->start; ++ ++	chip->state = FL_READY; ++ ++	map->copy_from(map, buf, adr, len); ++ ++	wake_up(&chip->wq); ++	cfi_spin_unlock(chip->mutex); ++ ++	return 0; ++} ++ ++static int cfi_sststd_read (struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf) ++{ ++	struct map_info *map = mtd->priv; ++	struct cfi_private *cfi = map->fldrv_priv; ++	unsigned long ofs; ++	int chipnum; ++	int ret = 0; ++ ++	/* ofs: offset within the first chip that the first read should start */ ++ ++	chipnum = (from >> cfi->chipshift); ++	ofs = from - (chipnum <<  cfi->chipshift); ++ ++ ++	*retlen = 0; ++ ++	while (len) { ++		unsigned long thislen; ++ ++		if (chipnum >= cfi->numchips) ++			break; ++ ++		if ((len + ofs -1) >> cfi->chipshift) ++			thislen = (1<<cfi->chipshift) - ofs; ++		else ++			thislen = len; ++ ++		ret = do_read_onechip(map, &cfi->chips[chipnum], ofs, thislen, buf); ++		if (ret) ++			break; ++ ++		*retlen += thislen; ++		len -= thislen; ++		buf += thislen; ++ ++		ofs = 0; ++		chipnum++; ++	} ++	return ret; ++} ++ ++static int do_write_oneword(struct map_info *map, struct flchip *chip, unsigned long adr, __u32 datum, int fast) ++{ ++	unsigned long timeo = jiffies + HZ; ++	unsigned int Last[4]; ++	unsigned long Count = 0; ++	struct cfi_private *cfi = map->fldrv_priv; ++	DECLARE_WAITQUEUE(wait, current); ++	int ret = 0; ++ ++ retry: ++	cfi_spin_lock(chip->mutex); ++ ++	if (chip->state != FL_READY){ ++	        printk("Waiting for chip to write, status = %d\n", chip->state); ++		set_current_state(TASK_UNINTERRUPTIBLE); ++		add_wait_queue(&chip->wq, &wait); ++                 ++		cfi_spin_unlock(chip->mutex); ++ ++		schedule(); ++		remove_wait_queue(&chip->wq, &wait); ++		printk("Wake up to write:\n"); ++		timeo = jiffies + HZ; ++ ++		goto retry; ++	}	 ++ ++	chip->state = FL_WRITING; ++ ++	adr += chip->start; ++	ENABLE_VPP(map); ++    cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL); ++    cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL); ++    cfi_send_gen_cmd(0xA0, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL); ++ ++	cfi_write(map, datum, adr); ++ ++	cfi_spin_unlock(chip->mutex); ++	cfi_udelay(chip->word_write_time); ++	cfi_spin_lock(chip->mutex); ++ ++	Last[0] = cfi_read(map, adr); ++	//	printk("Last[0] is %x\n", Last[0]); ++	Last[1] = cfi_read(map, adr); ++	//	printk("Last[1] is %x\n", Last[1]); ++	Last[2] = cfi_read(map, adr); ++	//	printk("Last[2] is %x\n", Last[2]); ++ ++	for (Count = 3; Last[(Count - 1) % 4] != Last[(Count - 2) % 4] && Count < 10000; Count++){ ++		cfi_spin_unlock(chip->mutex); ++		cfi_udelay(10); ++		cfi_spin_lock(chip->mutex); ++		 ++	        Last[Count % 4] = cfi_read(map, adr); ++		//		printk("Last[%d%%4] is %x\n", Count, Last[Count%4]); ++	} ++	 ++	if (Last[(Count - 1) % 4] != datum){ ++		printk("Last[%ld] is %x, datum is %x\n",(Count - 1) % 4,Last[(Count - 1) % 4],datum); ++	        cfi_send_gen_cmd(0xF0, 0, chip->start, map, cfi, cfi->device_type, NULL); ++		DISABLE_VPP(map); ++		ret = -EIO; ++	}        ++	DISABLE_VPP(map); ++	chip->state = FL_READY; ++	wake_up(&chip->wq); ++	cfi_spin_unlock(chip->mutex); ++	 ++	return ret; ++} ++ ++static int cfi_sststd_write (struct mtd_info *mtd, loff_t to , size_t len, size_t *retlen, const u_char *buf) ++{ ++	struct map_info *map = mtd->priv; ++	struct cfi_private *cfi = map->fldrv_priv; ++	int ret = 0; ++	int chipnum; ++	unsigned long ofs, chipstart; ++ ++	*retlen = 0; ++	if (!len) ++		return 0; ++ ++	chipnum = to >> cfi->chipshift; ++	ofs = to  - (chipnum << cfi->chipshift); ++	chipstart = cfi->chips[chipnum].start; ++ ++	/* If it's not bus-aligned, do the first byte write */ ++	if (ofs & (CFIDEV_BUSWIDTH-1)) { ++		unsigned long bus_ofs = ofs & ~(CFIDEV_BUSWIDTH-1); ++		int i = ofs - bus_ofs; ++		int n = 0; ++		u_char tmp_buf[4]; ++		__u32 datum; ++ ++		map->copy_from(map, tmp_buf, bus_ofs + cfi->chips[chipnum].start, CFIDEV_BUSWIDTH); ++		while (len && i < CFIDEV_BUSWIDTH) ++			tmp_buf[i++] = buf[n++], len--; ++ ++		if (cfi_buswidth_is_2()) { ++			datum = *(__u16*)tmp_buf; ++		} else if (cfi_buswidth_is_4()) { ++			datum = *(__u32*)tmp_buf; ++		} else { ++			return -EINVAL;  /* should never happen, but be safe */ ++		} ++ ++		ret = do_write_oneword(map, &cfi->chips[chipnum],  ++				bus_ofs, datum, 0); ++		if (ret)  ++			return ret; ++		 ++		ofs += n; ++		buf += n; ++		(*retlen) += n; ++ ++		if (ofs >> cfi->chipshift) { ++			chipnum ++;  ++			ofs = 0; ++			if (chipnum == cfi->numchips) ++				return 0; ++		} ++	} ++	 ++	/* We are now aligned, write as much as possible */ ++	while(len >= CFIDEV_BUSWIDTH) { ++		__u32 datum; ++ ++		if (cfi_buswidth_is_1()) { ++			datum = *(__u8*)buf; ++		} else if (cfi_buswidth_is_2()) { ++			datum = *(__u16*)buf; ++		} else if (cfi_buswidth_is_4()) { ++			datum = *(__u32*)buf; ++		} else { ++			return -EINVAL; ++		} ++		ret = do_write_oneword(map, &cfi->chips[chipnum], ++				       ofs, datum, cfi->fast_prog); ++		if (ret) { ++			return ret; ++		} ++ ++		ofs += CFIDEV_BUSWIDTH; ++		buf += CFIDEV_BUSWIDTH; ++		(*retlen) += CFIDEV_BUSWIDTH; ++		len -= CFIDEV_BUSWIDTH; ++ ++		if (ofs >> cfi->chipshift) { ++			chipnum ++;  ++			ofs = 0; ++			if (chipnum == cfi->numchips) ++				return 0; ++			chipstart = cfi->chips[chipnum].start; ++		} ++	} ++ ++	if (len & (CFIDEV_BUSWIDTH-1)) { ++		int i = 0, n = 0; ++		u_char tmp_buf[4]; ++		__u32 datum; ++ ++		map->copy_from(map, tmp_buf, ofs + cfi->chips[chipnum].start, CFIDEV_BUSWIDTH); ++		while (len--) ++			tmp_buf[i++] = buf[n++]; ++ ++		if (cfi_buswidth_is_2()) { ++			datum = *(__u16*)tmp_buf; ++		} else if (cfi_buswidth_is_4()) { ++			datum = *(__u32*)tmp_buf; ++		} else { ++			return -EINVAL;  /* should never happen, but be safe */ ++		} ++ ++		ret = do_write_oneword(map, &cfi->chips[chipnum],  ++				ofs, datum, 0); ++		if (ret)  ++			return ret; ++		 ++		(*retlen) += n; ++	} ++ ++	return 0; ++} ++ ++static inline int do_erase_oneblock(struct map_info *map, struct flchip *chip, unsigned long adr) ++{ ++	unsigned int status; ++	unsigned long timeo = jiffies + HZ; ++	struct cfi_private *cfi = map->fldrv_priv; ++	unsigned int rdy_mask; ++	DECLARE_WAITQUEUE(wait, current); ++ ++ retry: ++	cfi_spin_lock(chip->mutex); ++ ++	if (chip->state != FL_READY){ ++		set_current_state(TASK_UNINTERRUPTIBLE); ++		add_wait_queue(&chip->wq, &wait); ++                 ++		cfi_spin_unlock(chip->mutex); ++ ++		schedule(); ++		remove_wait_queue(&chip->wq, &wait); ++		timeo = jiffies + HZ; ++ ++		goto retry; ++	}	 ++ ++	chip->state = FL_ERASING; ++ ++	adr += chip->start; ++	ENABLE_VPP(map); ++	cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL); ++	cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL); ++	cfi_send_gen_cmd(0x80, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL); ++	cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL); ++	cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL); ++	cfi_write(map, CMD(0x30), adr); ++	 ++	timeo = jiffies + (HZ*20); ++ ++	cfi_spin_unlock(chip->mutex); ++	schedule_timeout(HZ); ++	cfi_spin_lock(chip->mutex); ++	 ++	rdy_mask = CMD(0x80); ++ ++	/* Once the state machine's known to be working I'll do that */ ++ ++	while ( ( (status = cfi_read(map,adr)) & rdy_mask ) != rdy_mask ) { ++		static int z=0; ++ ++		if (chip->state != FL_ERASING) { ++			/* Someone's suspended the erase. Sleep */ ++			set_current_state(TASK_UNINTERRUPTIBLE); ++			add_wait_queue(&chip->wq, &wait); ++			 ++			cfi_spin_unlock(chip->mutex); ++			printk("erase suspended. Sleeping\n"); ++			 ++			schedule(); ++			remove_wait_queue(&chip->wq, &wait); ++			timeo = jiffies + (HZ*2);  ++			cfi_spin_lock(chip->mutex); ++			continue; ++		} ++ ++		/* OK Still waiting */ ++		if (time_after(jiffies, timeo)) { ++			chip->state = FL_READY; ++			cfi_spin_unlock(chip->mutex); ++			printk("waiting for erase to complete timed out."); ++			DISABLE_VPP(map); ++			return -EIO; ++		} ++		 ++		/* Latency issues. Drop the lock, wait a while and retry */ ++		cfi_spin_unlock(chip->mutex); ++ ++		z++; ++		if ( 0 && !(z % 100 ))  ++			printk("chip not ready yet after erase. looping\n"); ++ ++		cfi_udelay(1); ++		 ++		cfi_spin_lock(chip->mutex); ++		continue; ++	} ++	 ++	/* Done and happy. */ ++	DISABLE_VPP(map); ++	chip->state = FL_READY; ++	wake_up(&chip->wq); ++	cfi_spin_unlock(chip->mutex); ++	return 0; ++} ++ ++static int cfi_sststd_erase_varsize(struct mtd_info *mtd, struct erase_info *instr) ++{ ++	struct map_info *map = mtd->priv; ++	struct cfi_private *cfi = map->fldrv_priv; ++	unsigned long adr, len; ++	int chipnum, ret = 0; ++	int i, first; ++	struct mtd_erase_region_info *regions = mtd->eraseregions; ++ ++	if (instr->addr > mtd->size) ++		return -EINVAL; ++ ++	if ((instr->len + instr->addr) > mtd->size) ++		return -EINVAL; ++ ++	/* Check that both start and end of the requested erase are ++	 * aligned with the erasesize at the appropriate addresses. ++	 */ ++ ++	i = 0; ++ ++	/* Skip all erase regions which are ended before the start of  ++	   the requested erase. Actually, to save on the calculations, ++	   we skip to the first erase region which starts after the ++	   start of the requested erase, and then go back one. ++	*/ ++	 ++	while (i < mtd->numeraseregions && instr->addr >= regions[i].offset) ++	       i++; ++	i--; ++ ++	/* OK, now i is pointing at the erase region in which this  ++	   erase request starts. Check the start of the requested ++	   erase range is aligned with the erase size which is in ++	   effect here. ++	*/ ++ ++	if (instr->addr & (regions[i].erasesize-1)) ++		return -EINVAL; ++ ++	/* Remember the erase region we start on */ ++	first = i; ++ ++	/* Next, check that the end of the requested erase is aligned ++	 * with the erase region at that address. ++	 */ ++ ++	while (i<mtd->numeraseregions && (instr->addr + instr->len) >= regions[i].offset) ++		i++; ++ ++	/* As before, drop back one to point at the region in which ++	   the address actually falls ++	*/ ++	i--; ++	 ++	if ((instr->addr + instr->len) & (regions[i].erasesize-1)) ++		return -EINVAL; ++	 ++	chipnum = instr->addr >> cfi->chipshift; ++	adr = instr->addr - (chipnum << cfi->chipshift); ++	len = instr->len; ++ ++	i=first; ++ ++	while(len) { ++		ret = do_erase_oneblock(map, &cfi->chips[chipnum], adr); ++ ++		if (ret) ++			return ret; ++ ++		adr += regions[i].erasesize; ++		len -= regions[i].erasesize; ++ ++		if (adr % (1<< cfi->chipshift) == ((regions[i].offset + (regions[i].erasesize * regions[i].numblocks)) %( 1<< cfi->chipshift))) ++			i++; ++ ++		if (adr >> cfi->chipshift) { ++			adr = 0; ++			chipnum++; ++			 ++			if (chipnum >= cfi->numchips) ++			break; ++		} ++	} ++ ++	instr->state = MTD_ERASE_DONE; ++	if (instr->callback) ++		instr->callback(instr); ++	 ++	return 0; ++} ++ ++static int cfi_sststd_erase_onesize(struct mtd_info *mtd, struct erase_info *instr) ++{ ++	struct map_info *map = mtd->priv; ++	struct cfi_private *cfi = map->fldrv_priv; ++	unsigned long adr, len; ++	int chipnum, ret = 0; ++ ++	if (instr->addr & (mtd->erasesize - 1)) ++		return -EINVAL; ++ ++	if (instr->len & (mtd->erasesize -1)) ++		return -EINVAL; ++ ++	if ((instr->len + instr->addr) > mtd->size) ++		return -EINVAL; ++ ++	chipnum = instr->addr >> cfi->chipshift; ++	adr = instr->addr - (chipnum << cfi->chipshift); ++	len = instr->len; ++ ++	while(len) { ++		ret = do_erase_oneblock(map, &cfi->chips[chipnum], adr); ++ ++		if (ret) ++			return ret; ++ ++		adr += mtd->erasesize; ++		len -= mtd->erasesize; ++ ++		if (adr >> cfi->chipshift) { ++			adr = 0; ++			chipnum++; ++			 ++			if (chipnum >= cfi->numchips) ++			break; ++		} ++	} ++		 ++	instr->state = MTD_ERASE_DONE; ++	if (instr->callback) ++		instr->callback(instr); ++	 ++	return 0; ++} ++ ++static void cfi_sststd_sync (struct mtd_info *mtd) ++{ ++	struct map_info *map = mtd->priv; ++	struct cfi_private *cfi = map->fldrv_priv; ++	int i; ++	struct flchip *chip; ++	int ret = 0; ++	DECLARE_WAITQUEUE(wait, current); ++ ++	for (i=0; !ret && i<cfi->numchips; i++) { ++		chip = &cfi->chips[i]; ++ ++	retry: ++		cfi_spin_lock(chip->mutex); ++ ++		switch(chip->state) { ++		case FL_READY: ++		case FL_STATUS: ++		case FL_CFI_QUERY: ++		case FL_JEDEC_QUERY: ++			chip->oldstate = chip->state; ++			chip->state = FL_SYNCING; ++			/* No need to wake_up() on this state change -  ++			 * as the whole point is that nobody can do anything ++			 * with the chip now anyway. ++			 */ ++		case FL_SYNCING: ++			cfi_spin_unlock(chip->mutex); ++			break; ++ ++		default: ++			/* Not an idle state */ ++			add_wait_queue(&chip->wq, &wait); ++			 ++			cfi_spin_unlock(chip->mutex); ++ ++			schedule(); ++ ++		        remove_wait_queue(&chip->wq, &wait); ++			 ++			goto retry; ++		} ++	} ++ ++	/* Unlock the chips again */ ++ ++	for (i--; i >=0; i--) { ++		chip = &cfi->chips[i]; ++ ++		cfi_spin_lock(chip->mutex); ++		 ++		if (chip->state == FL_SYNCING) { ++			chip->state = chip->oldstate; ++			wake_up(&chip->wq); ++		} ++		cfi_spin_unlock(chip->mutex); ++	} ++} ++ ++ ++static int cfi_sststd_suspend(struct mtd_info *mtd) ++{ ++	struct map_info *map = mtd->priv; ++	struct cfi_private *cfi = map->fldrv_priv; ++	int i; ++	struct flchip *chip; ++	int ret = 0; ++//printk("suspend\n"); ++ ++	for (i=0; !ret && i<cfi->numchips; i++) { ++		chip = &cfi->chips[i]; ++ ++		cfi_spin_lock(chip->mutex); ++ ++		switch(chip->state) { ++		case FL_READY: ++		case FL_STATUS: ++		case FL_CFI_QUERY: ++		case FL_JEDEC_QUERY: ++			chip->oldstate = chip->state; ++			chip->state = FL_PM_SUSPENDED; ++			/* No need to wake_up() on this state change -  ++			 * as the whole point is that nobody can do anything ++			 * with the chip now anyway. ++			 */ ++		case FL_PM_SUSPENDED: ++			break; ++ ++		default: ++			ret = -EAGAIN; ++			break; ++		} ++		cfi_spin_unlock(chip->mutex); ++	} ++ ++	/* Unlock the chips again */ ++ ++	if (ret) { ++    		for (i--; i >=0; i--) { ++			chip = &cfi->chips[i]; ++ ++			cfi_spin_lock(chip->mutex); ++		 ++			if (chip->state == FL_PM_SUSPENDED) { ++				chip->state = chip->oldstate; ++				wake_up(&chip->wq); ++			} ++			cfi_spin_unlock(chip->mutex); ++		} ++	} ++	 ++	return ret; ++} ++ ++static void cfi_sststd_resume(struct mtd_info *mtd) ++{ ++	struct map_info *map = mtd->priv; ++	struct cfi_private *cfi = map->fldrv_priv; ++	int i; ++	struct flchip *chip; ++//printk("resume\n"); ++ ++	for (i=0; i<cfi->numchips; i++) { ++	 ++		chip = &cfi->chips[i]; ++ ++		cfi_spin_lock(chip->mutex); ++		 ++		if (chip->state == FL_PM_SUSPENDED) { ++			chip->state = FL_READY; ++			cfi_write(map, CMD(0xF0), chip->start); ++			wake_up(&chip->wq); ++		} ++		else ++			printk("Argh. Chip not in PM_SUSPENDED state upon resume()\n"); ++ ++		cfi_spin_unlock(chip->mutex); ++	} ++} ++ ++static void cfi_sststd_destroy(struct mtd_info *mtd) ++{ ++	struct map_info *map = mtd->priv; ++	struct cfi_private *cfi = map->fldrv_priv; ++	kfree(cfi->cmdset_priv); ++	kfree(cfi); ++} ++ ++#if LINUX_VERSION_CODE < 0x20212 && defined(MODULE) ++#define cfi_sststd_init init_module ++#define cfi_sststd_exit cleanup_module ++#endif ++ ++static char im_name[]="cfi_cmdset_0701"; ++ ++mod_init_t cfi_sststd_init(void) ++{ ++	inter_module_register(im_name, THIS_MODULE, &cfi_cmdset_0701); ++	return 0; ++} ++ ++mod_exit_t cfi_sststd_exit(void) ++{ ++	inter_module_unregister(im_name); ++} ++ ++module_init(cfi_sststd_init); ++module_exit(cfi_sststd_exit); ++ +diff -urN linux-2.4.30/drivers/mtd/chips/cfi_probe.c linux-2.4.30.dev/drivers/mtd/chips/cfi_probe.c +--- linux-2.4.30/drivers/mtd/chips/cfi_probe.c	2003-06-13 16:51:34.000000000 +0200 ++++ linux-2.4.30.dev/drivers/mtd/chips/cfi_probe.c	2005-08-22 01:34:46.434134592 +0200 +@@ -67,8 +67,15 @@ + 	cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL); + 	cfi_send_gen_cmd(0x98, 0x55, base, map, cfi, cfi->device_type, NULL); +  +-	if (!qry_present(map,base,cfi)) +-		return 0; ++	if (!qry_present(map,base,cfi)) { ++		/* rather broken SST cfi probe (requires SST unlock) */ ++		cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL); ++		cfi_send_gen_cmd(0xAA, 0x5555, base, map, cfi, cfi->device_type, NULL); ++		cfi_send_gen_cmd(0x55, 0x2AAA, base, map, cfi, cfi->device_type, NULL); ++		cfi_send_gen_cmd(0x98, 0x5555, base, map, cfi, cfi->device_type, NULL); ++		if (!qry_present(map,base,cfi)) ++			return 0; ++	} +  + 	if (!cfi->numchips) { + 		/* This is the first time we're called. Set up the CFI  +diff -urN linux-2.4.30/drivers/mtd/chips/gen_probe.c linux-2.4.30.dev/drivers/mtd/chips/gen_probe.c +--- linux-2.4.30/drivers/mtd/chips/gen_probe.c	2003-08-25 13:44:42.000000000 +0200 ++++ linux-2.4.30.dev/drivers/mtd/chips/gen_probe.c	2005-08-22 01:34:46.436134288 +0200 +@@ -332,9 +332,13 @@ + 		return cfi_cmdset_0002(map, primary); + #endif + #ifdef CONFIG_MTD_CFI_STAA +-        case 0x0020: ++	case 0x0020: + 		return cfi_cmdset_0020(map, primary); + #endif ++#ifdef CONFIG_MTD_CFI_SSTSTD ++	case 0x0701: ++		return cfi_cmdset_0701(map, primary); ++#endif + 	} +  + 	return cfi_cmdset_unknown(map, primary); +diff -urN linux-2.4.30/drivers/mtd/maps/Config.in linux-2.4.30.dev/drivers/mtd/maps/Config.in +--- linux-2.4.30/drivers/mtd/maps/Config.in	2005-08-22 01:29:09.605340352 +0200 ++++ linux-2.4.30.dev/drivers/mtd/maps/Config.in	2005-08-22 01:34:46.460130640 +0200 +@@ -48,6 +48,7 @@ + fi +  + if [ "$CONFIG_MIPS" = "y" ]; then ++   dep_tristate '  CFI Flash device mapped on Broadcom BCM947XX boards' CONFIG_MTD_BCM947XX $CONFIG_MTD_CFI +    dep_tristate '  Pb1000 MTD support' CONFIG_MTD_PB1000 $CONFIG_MIPS_PB1000 +    dep_tristate '  Pb1500 MTD support' CONFIG_MTD_PB1500 $CONFIG_MIPS_PB1500 +    dep_tristate '  Pb1100 MTD support' CONFIG_MTD_PB1100 $CONFIG_MIPS_PB1100 +diff -urN linux-2.4.30/drivers/mtd/maps/Makefile linux-2.4.30.dev/drivers/mtd/maps/Makefile +--- linux-2.4.30/drivers/mtd/maps/Makefile	2005-08-22 01:29:09.606340200 +0200 ++++ linux-2.4.30.dev/drivers/mtd/maps/Makefile	2005-08-22 01:34:46.460130640 +0200 +@@ -3,6 +3,8 @@ + # + # $Id: Makefile,v 1.37 2003/01/24 14:26:38 dwmw2 Exp $ +  ++EXTRA_CFLAGS := -I$(TOPDIR)/arch/mips/bcm947xx/include ++ + BELOW25		:= $(shell echo $(PATCHLEVEL) | sed s/[1234]/y/) +  + ifeq ($(BELOW25),y) +@@ -10,6 +12,7 @@ + endif +  + # Chip mappings ++obj-$(CONFIG_MTD_BCM947XX)	+= bcm947xx-flash.o + obj-$(CONFIG_MTD_CDB89712)	+= cdb89712.o + obj-$(CONFIG_MTD_ARM_INTEGRATOR)+= integrator-flash.o + obj-$(CONFIG_MTD_CFI_FLAGADM)	+= cfi_flagadm.o +diff -urN linux-2.4.30/drivers/mtd/maps/bcm947xx-flash.c linux-2.4.30.dev/drivers/mtd/maps/bcm947xx-flash.c  --- linux-2.4.30/drivers/mtd/maps/bcm947xx-flash.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/mtd/maps/bcm947xx-flash.c	2005-05-22 22:55:52.000000000 +0200 ++++ linux-2.4.30.dev/drivers/mtd/maps/bcm947xx-flash.c	2005-08-22 01:34:46.459130792 +0200  @@ -0,0 +1,236 @@  +/*  + * Flash mapping for BCM947XX boards @@ -13071,40 +14105,9 @@ diff -Nur linux-2.4.30/drivers/mtd/maps/bcm947xx-flash.c linux-2.4.30-brcm/drive  +  +module_init(init_bcm947xx_map);  +module_exit(cleanup_bcm947xx_map); -diff -Nur linux-2.4.30/drivers/mtd/maps/Config.in linux-2.4.30-brcm/drivers/mtd/maps/Config.in ---- linux-2.4.30/drivers/mtd/maps/Config.in	2003-06-13 16:51:34.000000000 +0200 -+++ linux-2.4.30-brcm/drivers/mtd/maps/Config.in	2005-05-25 18:58:03.000000000 +0200 -@@ -48,6 +48,7 @@ - fi -  - if [ "$CONFIG_MIPS" = "y" ]; then -+   dep_tristate '  CFI Flash device mapped on Broadcom BCM947XX boards' CONFIG_MTD_BCM947XX $CONFIG_MTD_CFI -    dep_tristate '  Pb1000 MTD support' CONFIG_MTD_PB1000 $CONFIG_MIPS_PB1000 -    dep_tristate '  Pb1500 MTD support' CONFIG_MTD_PB1500 $CONFIG_MIPS_PB1500 -    dep_tristate '  Pb1100 MTD support' CONFIG_MTD_PB1100 $CONFIG_MIPS_PB1100 -diff -Nur linux-2.4.30/drivers/mtd/maps/Makefile linux-2.4.30-brcm/drivers/mtd/maps/Makefile ---- linux-2.4.30/drivers/mtd/maps/Makefile	2003-06-13 16:51:34.000000000 +0200 -+++ linux-2.4.30-brcm/drivers/mtd/maps/Makefile	2005-05-25 18:57:31.000000000 +0200 -@@ -3,6 +3,8 @@ - # - # $Id: Makefile,v 1.37 2003/01/24 14:26:38 dwmw2 Exp $ -  -+EXTRA_CFLAGS := -I$(TOPDIR)/arch/mips/bcm947xx/include -+ - BELOW25		:= $(shell echo $(PATCHLEVEL) | sed s/[1234]/y/) -  - ifeq ($(BELOW25),y) -@@ -10,6 +12,7 @@ - endif -  - # Chip mappings -+obj-$(CONFIG_MTD_BCM947XX)	+= bcm947xx-flash.o - obj-$(CONFIG_MTD_CDB89712)	+= cdb89712.o - obj-$(CONFIG_MTD_ARM_INTEGRATOR)+= integrator-flash.o - obj-$(CONFIG_MTD_CFI_FLAGADM)	+= cfi_flagadm.o -diff -Nur linux-2.4.30/drivers/net/Config.in linux-2.4.30-brcm/drivers/net/Config.in ---- linux-2.4.30/drivers/net/Config.in	2005-01-19 15:09:56.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/net/Config.in	2005-05-25 04:34:51.000000000 +0200 +diff -urN linux-2.4.30/drivers/net/Config.in linux-2.4.30.dev/drivers/net/Config.in +--- linux-2.4.30/drivers/net/Config.in	2005-08-22 01:29:11.903990904 +0200 ++++ linux-2.4.30.dev/drivers/net/Config.in	2005-08-22 01:34:46.485126840 +0200  @@ -2,6 +2,8 @@   # Network device configuration   # @@ -13114,7 +14117,7 @@ diff -Nur linux-2.4.30/drivers/net/Config.in linux-2.4.30-brcm/drivers/net/Confi   source drivers/net/arcnet/Config.in   tristate 'Dummy net driver support' CONFIG_DUMMY -@@ -173,6 +175,7 @@ +@@ -174,6 +176,7 @@         dep_tristate '    Apricot Xen-II on board Ethernet' CONFIG_APRICOT $CONFIG_ISA         dep_tristate '    Broadcom 4400 ethernet support (EXPERIMENTAL)' CONFIG_B44 $CONFIG_PCI $CONFIG_EXPERIMENTAL @@ -13122,9 +14125,56 @@ diff -Nur linux-2.4.30/drivers/net/Config.in linux-2.4.30-brcm/drivers/net/Confi         dep_tristate '    CS89x0 support' CONFIG_CS89x0 $CONFIG_ISA         dep_tristate '    DECchip Tulip (dc21x4x) PCI support' CONFIG_TULIP $CONFIG_PCI         if [ "$CONFIG_TULIP" = "y" -o "$CONFIG_TULIP" = "m" ]; then -diff -Nur linux-2.4.30/drivers/net/et/Makefile linux-2.4.30-brcm/drivers/net/et/Makefile +diff -urN linux-2.4.30/drivers/net/Makefile linux-2.4.30.dev/drivers/net/Makefile +--- linux-2.4.30/drivers/net/Makefile	2005-08-22 01:29:11.306081800 +0200 ++++ linux-2.4.30.dev/drivers/net/Makefile	2005-08-22 01:41:45.930653216 +0200 +@@ -3,6 +3,8 @@ + # Makefile for the Linux network (ethercard) device drivers. + # +  ++EXTRA_CFLAGS := -I$(TOPDIR)/arch/mips/bcm947xx/include ++ + obj-y           := + obj-m           := + obj-n           := +@@ -39,6 +41,9 @@ +   obj-$(CONFIG_ISDN) += slhc.o + endif +  ++subdir-$(CONFIG_HND) += hnd ++subdir-$(CONFIG_ET) += et ++subdir-$(CONFIG_WL) += wl + subdir-$(CONFIG_NET_PCMCIA) += pcmcia + subdir-$(CONFIG_NET_WIRELESS) += wireless + subdir-$(CONFIG_TULIP) += tulip +@@ -69,6 +74,16 @@ + obj-$(CONFIG_MYRI_SBUS) += myri_sbus.o + obj-$(CONFIG_SUNGEM) += sungem.o +  ++ifeq ($(CONFIG_HND),y) ++  obj-y += hnd/hnd.o ++endif ++ifeq ($(CONFIG_ET),y) ++  obj-y += et/et.o ++endif ++ifeq ($(CONFIG_WL),y) ++  obj-y += wl/wl.o ++endif ++ + obj-$(CONFIG_MACE) += mace.o + obj-$(CONFIG_BMAC) += bmac.o + obj-$(CONFIG_GMAC) += gmac.o +@@ -266,6 +281,7 @@ + endif + endif +  ++ + include $(TOPDIR)/Rules.make +  + clean: +diff -urN linux-2.4.30/drivers/net/et/Makefile linux-2.4.30.dev/drivers/net/et/Makefile  --- linux-2.4.30/drivers/net/et/Makefile	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/net/et/Makefile	2005-05-26 02:37:05.000000000 +0200 ++++ linux-2.4.30.dev/drivers/net/et/Makefile	2005-08-22 01:34:46.505123800 +0200  @@ -0,0 +1,21 @@  +#  +# Makefile for the Broadcom et driver @@ -13147,9 +14197,32 @@ diff -Nur linux-2.4.30/drivers/net/et/Makefile linux-2.4.30-brcm/drivers/net/et/  +obj-m		:= $(O_TARGET)  +  +include $(TOPDIR)/Rules.make -diff -Nur linux-2.4.30/drivers/net/hnd/bcmsrom.c linux-2.4.30-brcm/drivers/net/hnd/bcmsrom.c +diff -urN linux-2.4.30/drivers/net/hnd/Makefile linux-2.4.30.dev/drivers/net/hnd/Makefile +--- linux-2.4.30/drivers/net/hnd/Makefile	1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.4.30.dev/drivers/net/hnd/Makefile	2005-08-22 01:34:46.511122888 +0200 +@@ -0,0 +1,19 @@ ++# ++# Makefile for the BCM47xx specific kernel interface routines ++# under Linux. ++# ++ ++EXTRA_CFLAGS	+= -I$(TOPDIR)/arch/mips/bcm947xx/include -DBCMDRIVER ++ ++O_TARGET	:= hnd.o ++ ++HND_OBJS	:= bcmutils.o hnddma.o linux_osl.o sbutils.o bcmsrom.o ++ ++export-objs	:= shared_ksyms.o ++obj-y		:= shared_ksyms.o $(HND_OBJS) ++obj-m           := $(O_TARGET) ++ ++include $(TOPDIR)/Rules.make ++ ++shared_ksyms.c: shared_ksyms.sh $(HND_OBJS) ++	sh -e $< $(HND_OBJS) > $@ +diff -urN linux-2.4.30/drivers/net/hnd/bcmsrom.c linux-2.4.30.dev/drivers/net/hnd/bcmsrom.c  --- linux-2.4.30/drivers/net/hnd/bcmsrom.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/net/hnd/bcmsrom.c	2005-05-22 23:00:53.000000000 +0200 ++++ linux-2.4.30.dev/drivers/net/hnd/bcmsrom.c	2005-08-22 01:34:46.507123496 +0200  @@ -0,0 +1,714 @@  +/*  + *  Misc useful routines to access NIC SROM/OTP . @@ -13865,9 +14938,9 @@ diff -Nur linux-2.4.30/drivers/net/hnd/bcmsrom.c linux-2.4.30-brcm/drivers/net/h  +	return (rc);  +}  + -diff -Nur linux-2.4.30/drivers/net/hnd/bcmutils.c linux-2.4.30-brcm/drivers/net/hnd/bcmutils.c +diff -urN linux-2.4.30/drivers/net/hnd/bcmutils.c linux-2.4.30.dev/drivers/net/hnd/bcmutils.c  --- linux-2.4.30/drivers/net/hnd/bcmutils.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/net/hnd/bcmutils.c	2005-05-24 20:26:25.000000000 +0200 ++++ linux-2.4.30.dev/drivers/net/hnd/bcmutils.c	2005-08-22 01:34:46.508123344 +0200  @@ -0,0 +1,862 @@  +/*  + * Misc useful OS-independent routines. @@ -14731,9 +15804,9 @@ diff -Nur linux-2.4.30/drivers/net/hnd/bcmutils.c linux-2.4.30-brcm/drivers/net/  +}  +  + -diff -Nur linux-2.4.30/drivers/net/hnd/hnddma.c linux-2.4.30-brcm/drivers/net/hnd/hnddma.c +diff -urN linux-2.4.30/drivers/net/hnd/hnddma.c linux-2.4.30.dev/drivers/net/hnd/hnddma.c  --- linux-2.4.30/drivers/net/hnd/hnddma.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/net/hnd/hnddma.c	2005-05-25 01:12:49.000000000 +0200 ++++ linux-2.4.30.dev/drivers/net/hnd/hnddma.c	2005-08-22 01:34:46.510123040 +0200  @@ -0,0 +1,865 @@  +/*  + * Generic Broadcom Home Networking Division (HND) DMA module. @@ -15600,9 +16673,9 @@ diff -Nur linux-2.4.30/drivers/net/hnd/hnddma.c linux-2.4.30-brcm/drivers/net/hn  +	/* kick the chip */  +	W_REG(&di->regs->xmtptr, I2B(di->txout));  +} -diff -Nur linux-2.4.30/drivers/net/hnd/linux_osl.c linux-2.4.30-brcm/drivers/net/hnd/linux_osl.c +diff -urN linux-2.4.30/drivers/net/hnd/linux_osl.c linux-2.4.30.dev/drivers/net/hnd/linux_osl.c  --- linux-2.4.30/drivers/net/hnd/linux_osl.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/net/hnd/linux_osl.c	2005-05-22 23:01:31.000000000 +0200 ++++ linux-2.4.30.dev/drivers/net/hnd/linux_osl.c	2005-08-22 01:34:46.511122888 +0200  @@ -0,0 +1,640 @@  +/*  + * Linux OS Independent Layer @@ -16244,32 +17317,9 @@ diff -Nur linux-2.4.30/drivers/net/hnd/linux_osl.c linux-2.4.30-brcm/drivers/net  +}  +  +#endif	/* BINOSL */ -diff -Nur linux-2.4.30/drivers/net/hnd/Makefile linux-2.4.30-brcm/drivers/net/hnd/Makefile ---- linux-2.4.30/drivers/net/hnd/Makefile	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/net/hnd/Makefile	2005-05-25 18:54:08.000000000 +0200 -@@ -0,0 +1,19 @@ -+# -+# Makefile for the BCM47xx specific kernel interface routines -+# under Linux. -+# -+ -+EXTRA_CFLAGS	+= -I$(TOPDIR)/arch/mips/bcm947xx/include -DBCMDRIVER -+ -+O_TARGET	:= hnd.o -+ -+HND_OBJS	:= bcmutils.o hnddma.o linux_osl.o sbutils.o bcmsrom.o -+ -+export-objs	:= shared_ksyms.o -+obj-y		:= shared_ksyms.o $(HND_OBJS) -+obj-m           := $(O_TARGET) -+ -+include $(TOPDIR)/Rules.make -+ -+shared_ksyms.c: shared_ksyms.sh $(HND_OBJS) -+	sh -e $< $(HND_OBJS) > $@ -diff -Nur linux-2.4.30/drivers/net/hnd/sbutils.c linux-2.4.30-brcm/drivers/net/hnd/sbutils.c +diff -urN linux-2.4.30/drivers/net/hnd/sbutils.c linux-2.4.30.dev/drivers/net/hnd/sbutils.c  --- linux-2.4.30/drivers/net/hnd/sbutils.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/net/hnd/sbutils.c	2005-05-22 23:01:41.000000000 +0200 ++++ linux-2.4.30.dev/drivers/net/hnd/sbutils.c	2005-08-22 01:34:46.526120608 +0200  @@ -0,0 +1,2063 @@  +/*  + * Misc utility routines for accessing chip-specific features @@ -18334,9 +19384,9 @@ diff -Nur linux-2.4.30/drivers/net/hnd/sbutils.c linux-2.4.30-brcm/drivers/net/h  +}  +  + -diff -Nur linux-2.4.30/drivers/net/hnd/shared_ksyms.sh linux-2.4.30-brcm/drivers/net/hnd/shared_ksyms.sh +diff -urN linux-2.4.30/drivers/net/hnd/shared_ksyms.sh linux-2.4.30.dev/drivers/net/hnd/shared_ksyms.sh  --- linux-2.4.30/drivers/net/hnd/shared_ksyms.sh	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/net/hnd/shared_ksyms.sh	2005-05-22 22:55:51.000000000 +0200 ++++ linux-2.4.30.dev/drivers/net/hnd/shared_ksyms.sh	2005-08-22 01:34:46.527120456 +0200  @@ -0,0 +1,21 @@  +#!/bin/sh  +# @@ -18359,65 +19409,9 @@ diff -Nur linux-2.4.30/drivers/net/hnd/shared_ksyms.sh linux-2.4.30-brcm/drivers  +for file in $* ; do  +    ${NM} $file | sed -ne 's/[0-9A-Fa-f]* [DT] \([^ ]*\)/extern void \1; EXPORT_SYMBOL(\1);/p'  +done -diff -Nur linux-2.4.30/drivers/net/Makefile linux-2.4.30-brcm/drivers/net/Makefile ---- linux-2.4.30/drivers/net/Makefile	2005-01-19 15:09:56.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/net/Makefile	2005-05-25 19:07:52.000000000 +0200 -@@ -3,6 +3,8 @@ - # Makefile for the Linux network (ethercard) device drivers. - # -  -+EXTRA_CFLAGS := -I$(TOPDIR)/arch/mips/bcm947xx/include -+ - obj-y           := - obj-m           := - obj-n           := -@@ -21,6 +23,8 @@ - list-multi	:=	rcpci.o - rcpci-objs	:=	rcpci45.o rclanmtl.o -  -+subdir-m += diag -+ - ifeq ($(CONFIG_TULIP),y) -   obj-y += tulip/tulip.o - endif -@@ -39,6 +43,9 @@ -   obj-$(CONFIG_ISDN) += slhc.o - endif -  -+subdir-$(CONFIG_HND) += hnd -+subdir-$(CONFIG_ET) += et -+subdir-$(CONFIG_WL) += wl - subdir-$(CONFIG_NET_PCMCIA) += pcmcia - subdir-$(CONFIG_NET_WIRELESS) += wireless - subdir-$(CONFIG_TULIP) += tulip -@@ -69,6 +76,16 @@ - obj-$(CONFIG_MYRI_SBUS) += myri_sbus.o - obj-$(CONFIG_SUNGEM) += sungem.o -  -+ifeq ($(CONFIG_HND),y) -+  obj-y += hnd/hnd.o -+endif -+ifeq ($(CONFIG_ET),y) -+  obj-y += et/et.o -+endif -+ifeq ($(CONFIG_WL),y) -+  obj-y += wl/wl.o -+endif -+ - obj-$(CONFIG_MACE) += mace.o - obj-$(CONFIG_BMAC) += bmac.o - obj-$(CONFIG_GMAC) += gmac.o -@@ -265,6 +282,7 @@ - endif - endif -  -+ - include $(TOPDIR)/Rules.make -  - clean: -diff -Nur linux-2.4.30/drivers/net/wireless/Config.in linux-2.4.30-brcm/drivers/net/wireless/Config.in +diff -urN linux-2.4.30/drivers/net/wireless/Config.in linux-2.4.30.dev/drivers/net/wireless/Config.in  --- linux-2.4.30/drivers/net/wireless/Config.in	2004-11-17 12:54:21.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/net/wireless/Config.in	2005-05-22 22:55:52.000000000 +0200 ++++ linux-2.4.30.dev/drivers/net/wireless/Config.in	2005-08-22 01:34:46.558115744 +0200  @@ -13,6 +13,7 @@   fi @@ -18426,9 +19420,9 @@ diff -Nur linux-2.4.30/drivers/net/wireless/Config.in linux-2.4.30-brcm/drivers/      dep_tristate '    Hermes in PLX9052 based PCI adaptor support (Netgear MA301 etc.) (EXPERIMENTAL)' CONFIG_PLX_HERMES $CONFIG_HERMES $CONFIG_EXPERIMENTAL      dep_tristate '    Hermes in TMD7160/NCP130 based PCI adaptor support (Pheecom WL-PCI etc.) (EXPERIMENTAL)' CONFIG_TMD_HERMES $CONFIG_HERMES $CONFIG_EXPERIMENTAL      dep_tristate '    Prism 2.5 PCI 802.11b adaptor support (EXPERIMENTAL)' CONFIG_PCI_HERMES $CONFIG_HERMES $CONFIG_EXPERIMENTAL -diff -Nur linux-2.4.30/drivers/net/wl/Makefile linux-2.4.30-brcm/drivers/net/wl/Makefile +diff -urN linux-2.4.30/drivers/net/wl/Makefile linux-2.4.30.dev/drivers/net/wl/Makefile  --- linux-2.4.30/drivers/net/wl/Makefile	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/net/wl/Makefile	2005-05-26 12:04:50.000000000 +0200 ++++ linux-2.4.30.dev/drivers/net/wl/Makefile	2005-08-22 01:34:46.562115136 +0200  @@ -0,0 +1,26 @@  +#  +# Makefile for the Broadcom wl driver @@ -18456,9 +19450,9 @@ diff -Nur linux-2.4.30/drivers/net/wl/Makefile linux-2.4.30-brcm/drivers/net/wl/  +obj-m		:= $(O_TARGET)  +  +include $(TOPDIR)/Rules.make -diff -Nur linux-2.4.30/drivers/parport/Config.in linux-2.4.30-brcm/drivers/parport/Config.in +diff -urN linux-2.4.30/drivers/parport/Config.in linux-2.4.30.dev/drivers/parport/Config.in  --- linux-2.4.30/drivers/parport/Config.in	2004-02-18 14:36:31.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/parport/Config.in	2005-05-22 22:55:52.000000000 +0200 ++++ linux-2.4.30.dev/drivers/parport/Config.in	2005-08-22 01:34:46.571113768 +0200  @@ -11,6 +11,7 @@   tristate 'Parallel port support' CONFIG_PARPORT   if [ "$CONFIG_PARPORT" != "n" ]; then @@ -18467,9 +19461,9 @@ diff -Nur linux-2.4.30/drivers/parport/Config.in linux-2.4.30-brcm/drivers/parpo      if [ "$CONFIG_PARPORT_PC" != "n" -a "$CONFIG_SERIAL" != "n" ]; then         if [ "$CONFIG_SERIAL" = "m" ]; then            define_tristate CONFIG_PARPORT_PC_CML1 m -diff -Nur linux-2.4.30/drivers/parport/Makefile linux-2.4.30-brcm/drivers/parport/Makefile +diff -urN linux-2.4.30/drivers/parport/Makefile linux-2.4.30.dev/drivers/parport/Makefile  --- linux-2.4.30/drivers/parport/Makefile	2004-08-08 01:26:05.000000000 +0200 -+++ linux-2.4.30-brcm/drivers/parport/Makefile	2005-05-22 22:55:52.000000000 +0200 ++++ linux-2.4.30.dev/drivers/parport/Makefile	2005-08-22 01:34:46.572113616 +0200  @@ -22,6 +22,7 @@   obj-$(CONFIG_PARPORT)		+= parport.o @@ -18478,9 +19472,9 @@ diff -Nur linux-2.4.30/drivers/parport/Makefile linux-2.4.30-brcm/drivers/parpor   obj-$(CONFIG_PARPORT_PC_PCMCIA)	+= parport_cs.o   obj-$(CONFIG_PARPORT_AMIGA)	+= parport_amiga.o   obj-$(CONFIG_PARPORT_MFC3)	+= parport_mfc3.o -diff -Nur linux-2.4.30/drivers/parport/parport_splink.c linux-2.4.30-brcm/drivers/parport/parport_splink.c +diff -urN linux-2.4.30/drivers/parport/parport_splink.c linux-2.4.30.dev/drivers/parport/parport_splink.c  --- linux-2.4.30/drivers/parport/parport_splink.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/parport/parport_splink.c	2005-05-22 22:55:52.000000000 +0200 ++++ linux-2.4.30.dev/drivers/parport/parport_splink.c	2005-08-22 01:34:46.573113464 +0200  @@ -0,0 +1,345 @@  +/* Low-level parallel port routines for the ASUS WL-500g built-in port  + * @@ -18827,9 +19821,32 @@ diff -Nur linux-2.4.30/drivers/parport/parport_splink.c linux-2.4.30-brcm/driver  +module_init(parport_splink_init)  +module_exit(parport_splink_cleanup)  + -diff -Nur linux-2.4.30/drivers/pcmcia/bcm4710_generic.c linux-2.4.30-brcm/drivers/pcmcia/bcm4710_generic.c +diff -urN linux-2.4.30/drivers/pcmcia/Makefile linux-2.4.30.dev/drivers/pcmcia/Makefile +--- linux-2.4.30/drivers/pcmcia/Makefile	2005-08-22 01:29:09.704325304 +0200 ++++ linux-2.4.30.dev/drivers/pcmcia/Makefile	2005-08-22 01:34:46.577112856 +0200 +@@ -74,6 +74,10 @@ + au1000_ss-objs-$(CONFIG_MIPS_HYDROGEN3)		+= au1000_hydrogen3.o + au1000_ss-objs-$(CONFIG_MIPS_XXS1500) 		+= au1000_xxs1500.o +  ++obj-$(CONFIG_PCMCIA_BCM4710)	+= bcm4710_ss.o ++bcm4710_ss-objs					:= bcm4710_generic.o ++bcm4710_ss-objs					+= bcm4710_pcmcia.o ++ + obj-$(CONFIG_PCMCIA_SA1100)	+= sa1100_cs.o + obj-$(CONFIG_PCMCIA_M8XX)	+= m8xx_pcmcia.o + obj-$(CONFIG_PCMCIA_SIBYTE)	+= sibyte_generic.o +@@ -112,5 +116,8 @@ + au1x00_ss.o: $(au1000_ss-objs-y) + 	$(LD) -r -o $@ $(au1000_ss-objs-y) +  ++bcm4710_ss.o: $(bcm4710_ss-objs) ++	$(LD) -r -o $@ $(bcm4710_ss-objs) ++ + yenta_socket.o: $(yenta_socket-objs) + 	$(LD) $(LD_RFLAG) -r -o $@ $(yenta_socket-objs) +diff -urN linux-2.4.30/drivers/pcmcia/bcm4710_generic.c linux-2.4.30.dev/drivers/pcmcia/bcm4710_generic.c  --- linux-2.4.30/drivers/pcmcia/bcm4710_generic.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/pcmcia/bcm4710_generic.c	2005-05-22 22:55:52.000000000 +0200 ++++ linux-2.4.30.dev/drivers/pcmcia/bcm4710_generic.c	2005-08-22 01:34:46.574113312 +0200  @@ -0,0 +1,912 @@  +/*  + * @@ -19743,9 +20760,9 @@ diff -Nur linux-2.4.30/drivers/pcmcia/bcm4710_generic.c linux-2.4.30-brcm/driver  +  +  +#endif  /* defined(CONFIG_PROC_FS) */ -diff -Nur linux-2.4.30/drivers/pcmcia/bcm4710_pcmcia.c linux-2.4.30-brcm/drivers/pcmcia/bcm4710_pcmcia.c +diff -urN linux-2.4.30/drivers/pcmcia/bcm4710_pcmcia.c linux-2.4.30.dev/drivers/pcmcia/bcm4710_pcmcia.c  --- linux-2.4.30/drivers/pcmcia/bcm4710_pcmcia.c	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/pcmcia/bcm4710_pcmcia.c	2005-05-22 22:55:52.000000000 +0200 ++++ linux-2.4.30.dev/drivers/pcmcia/bcm4710_pcmcia.c	2005-08-22 01:34:46.575113160 +0200  @@ -0,0 +1,266 @@  +/*  + * BCM4710 specific pcmcia routines. @@ -20013,9 +21030,9 @@ diff -Nur linux-2.4.30/drivers/pcmcia/bcm4710_pcmcia.c linux-2.4.30-brcm/drivers  +	bcm4710_pcmcia_configure_socket  +};  + -diff -Nur linux-2.4.30/drivers/pcmcia/bcm4710pcmcia.h linux-2.4.30-brcm/drivers/pcmcia/bcm4710pcmcia.h +diff -urN linux-2.4.30/drivers/pcmcia/bcm4710pcmcia.h linux-2.4.30.dev/drivers/pcmcia/bcm4710pcmcia.h  --- linux-2.4.30/drivers/pcmcia/bcm4710pcmcia.h	1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/pcmcia/bcm4710pcmcia.h	2005-05-22 22:55:52.000000000 +0200 ++++ linux-2.4.30.dev/drivers/pcmcia/bcm4710pcmcia.h	2005-08-22 01:34:46.576113008 +0200  @@ -0,0 +1,118 @@  +/*  + * @@ -20135,32 +21152,9 @@ diff -Nur linux-2.4.30/drivers/pcmcia/bcm4710pcmcia.h linux-2.4.30-brcm/drivers/  +extern struct pcmcia_low_level bcm4710_pcmcia_ops;  +  +#endif  /* !defined(_BCM4710PCMCIA_H) */ -diff -Nur linux-2.4.30/drivers/pcmcia/Makefile linux-2.4.30-brcm/drivers/pcmcia/Makefile ---- linux-2.4.30/drivers/pcmcia/Makefile	2004-02-18 14:36:31.000000000 +0100 -+++ linux-2.4.30-brcm/drivers/pcmcia/Makefile	2005-05-22 22:55:52.000000000 +0200 -@@ -65,6 +65,10 @@ - au1000_ss-objs-$(CONFIG_PCMCIA_DB1X00)		+= au1000_db1x00.o - au1000_ss-objs-$(CONFIG_PCMCIA_XXS1500) 	+= au1000_xxs1500.o -  -+obj-$(CONFIG_PCMCIA_BCM4710)	+= bcm4710_ss.o -+bcm4710_ss-objs					:= bcm4710_generic.o -+bcm4710_ss-objs					+= bcm4710_pcmcia.o -+ - obj-$(CONFIG_PCMCIA_SA1100)	+= sa1100_cs.o - obj-$(CONFIG_PCMCIA_M8XX)	+= m8xx_pcmcia.o - obj-$(CONFIG_PCMCIA_SIBYTE)	+= sibyte_generic.o -@@ -102,5 +106,8 @@ - au1x00_ss.o: $(au1000_ss-objs-y) - 	$(LD) -r -o $@ $(au1000_ss-objs-y) -  -+bcm4710_ss.o: $(bcm4710_ss-objs) -+	$(LD) -r -o $@ $(bcm4710_ss-objs) -+ - yenta_socket.o: $(yenta_socket-objs) - 	$(LD) $(LD_RFLAG) -r -o $@ $(yenta_socket-objs) -diff -Nur linux-2.4.30/include/asm-mips/bootinfo.h linux-2.4.30-brcm/include/asm-mips/bootinfo.h ---- linux-2.4.30/include/asm-mips/bootinfo.h	2004-02-18 14:36:32.000000000 +0100 -+++ linux-2.4.30-brcm/include/asm-mips/bootinfo.h	2005-05-22 22:55:53.000000000 +0200 +diff -urN linux-2.4.30/include/asm-mips/bootinfo.h linux-2.4.30.dev/include/asm-mips/bootinfo.h +--- linux-2.4.30/include/asm-mips/bootinfo.h	2005-08-22 01:29:10.024276664 +0200 ++++ linux-2.4.30.dev/include/asm-mips/bootinfo.h	2005-08-22 01:34:46.612107536 +0200  @@ -37,6 +37,7 @@   #define MACH_GROUP_HP_LJ       20 /* Hewlett Packard LaserJet               */   #define MACH_GROUP_LASAT       21 @@ -20169,7 +21163,7 @@ diff -Nur linux-2.4.30/include/asm-mips/bootinfo.h linux-2.4.30-brcm/include/asm   /*    * Valid machtype values for group unknown (low order halfword of mips_machtype) -@@ -194,6 +195,15 @@ +@@ -197,6 +198,15 @@   #define MACH_TANBAC_TB0229	7	/* TANBAC TB0229 (VR4131DIMM) */   /* @@ -20185,9 +21179,9 @@ diff -Nur linux-2.4.30/include/asm-mips/bootinfo.h linux-2.4.30-brcm/include/asm    * Valid machtype for group TITAN    */   #define	MACH_TITAN_YOSEMITE	1 	/* PMC-Sierra Yosemite */ -diff -Nur linux-2.4.30/include/asm-mips/cpu.h linux-2.4.30-brcm/include/asm-mips/cpu.h +diff -urN linux-2.4.30/include/asm-mips/cpu.h linux-2.4.30.dev/include/asm-mips/cpu.h  --- linux-2.4.30/include/asm-mips/cpu.h	2005-01-19 15:10:11.000000000 +0100 -+++ linux-2.4.30-brcm/include/asm-mips/cpu.h	2005-05-22 22:55:53.000000000 +0200 ++++ linux-2.4.30.dev/include/asm-mips/cpu.h	2005-08-22 01:34:46.629104952 +0200  @@ -22,6 +22,11 @@      spec.   */ @@ -20236,9 +21230,9 @@ diff -Nur linux-2.4.30/include/asm-mips/cpu.h linux-2.4.30-brcm/include/asm-mips   /*    * ISA Level encodings -diff -Nur linux-2.4.30/include/asm-mips/r4kcache.h linux-2.4.30-brcm/include/asm-mips/r4kcache.h +diff -urN linux-2.4.30/include/asm-mips/r4kcache.h linux-2.4.30.dev/include/asm-mips/r4kcache.h  --- linux-2.4.30/include/asm-mips/r4kcache.h	2004-02-18 14:36:32.000000000 +0100 -+++ linux-2.4.30-brcm/include/asm-mips/r4kcache.h	2005-05-25 18:01:08.000000000 +0200 ++++ linux-2.4.30.dev/include/asm-mips/r4kcache.h	2005-08-22 01:34:46.637103736 +0200  @@ -567,4 +567,17 @@   			cache128_unroll32(addr|ws,Index_Writeback_Inv_SD);   } @@ -20257,9 +21251,9 @@ diff -Nur linux-2.4.30/include/asm-mips/r4kcache.h linux-2.4.30-brcm/include/asm  +}        +   #endif /* __ASM_R4KCACHE_H */ -diff -Nur linux-2.4.30/include/asm-mips/serial.h linux-2.4.30-brcm/include/asm-mips/serial.h +diff -urN linux-2.4.30/include/asm-mips/serial.h linux-2.4.30.dev/include/asm-mips/serial.h  --- linux-2.4.30/include/asm-mips/serial.h	2005-01-19 15:10:12.000000000 +0100 -+++ linux-2.4.30-brcm/include/asm-mips/serial.h	2005-05-22 22:55:53.000000000 +0200 ++++ linux-2.4.30.dev/include/asm-mips/serial.h	2005-08-22 01:34:46.645102520 +0200  @@ -223,6 +223,13 @@   #define TXX927_SERIAL_PORT_DEFNS   #endif @@ -20282,10 +21276,10 @@ diff -Nur linux-2.4.30/include/asm-mips/serial.h linux-2.4.30-brcm/include/asm-m   	COBALT_SERIAL_PORT_DEFNS		\   	DDB5477_SERIAL_PORT_DEFNS		\   	EV96100_SERIAL_PORT_DEFNS		\ -diff -Nur linux-2.4.30/init/do_mounts.c linux-2.4.30-brcm/init/do_mounts.c ---- linux-2.4.30/init/do_mounts.c	2003-11-28 19:26:21.000000000 +0100 -+++ linux-2.4.30-brcm/init/do_mounts.c	2005-05-22 22:55:53.000000000 +0200 -@@ -253,7 +253,13 @@ +diff -urN linux-2.4.30/init/do_mounts.c linux-2.4.30.dev/init/do_mounts.c +--- linux-2.4.30/init/do_mounts.c	2005-08-22 01:29:10.628184856 +0200 ++++ linux-2.4.30.dev/init/do_mounts.c	2005-08-22 01:34:46.668099024 +0200 +@@ -254,7 +254,13 @@   	{ "ftlb", 0x2c08 },   	{ "ftlc", 0x2c10 },   	{ "ftld", 0x2c18 }, @@ -20299,67 +21293,3 @@ diff -Nur linux-2.4.30/init/do_mounts.c linux-2.4.30-brcm/init/do_mounts.c   	{ "nb", 0x2b00 },   	{ NULL, 0 }   }; -diff -Nur linux-2.4.30/Makefile linux-2.4.30-brcm/Makefile ---- linux-2.4.30/Makefile	2005-04-04 03:42:20.000000000 +0200 -+++ linux-2.4.30-brcm/Makefile	2005-05-22 22:55:53.000000000 +0200 -@@ -17,9 +17,9 @@ - FINDHPATH	= $(HPATH)/asm $(HPATH)/linux $(HPATH)/scsi $(HPATH)/net $(HPATH)/math-emu -  - HOSTCC  	= gcc --HOSTCFLAGS	= -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -+HOSTCFLAGS	= -Wall -Wstrict-prototypes -Os -fomit-frame-pointer -  --CROSS_COMPILE 	= -+CROSS_COMPILE= -  - # - # Include the make variables (CC, etc...) -@@ -91,8 +91,10 @@ -  - CPPFLAGS := -D__KERNEL__ -I$(HPATH) -  --CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \ -+CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -Os \ - 	  -fno-strict-aliasing -fno-common -+ -+ - ifndef CONFIG_FRAME_POINTER - CFLAGS += -fomit-frame-pointer - endif -@@ -354,7 +356,7 @@ - 	@rm -f .ver1 -  - include/linux/version.h: ./Makefile --	@expr length "$(KERNELRELEASE)" \<= $(uts_len) > /dev/null || \ -+	@-expr length "$(KERNELRELEASE)" \<= $(uts_len) > /dev/null || \ - 	  (echo KERNELRELEASE \"$(KERNELRELEASE)\" exceeds $(uts_len) characters >&2; false) - 	@echo \#define UTS_RELEASE \"$(KERNELRELEASE)\" > .ver - 	@echo \#define LINUX_VERSION_CODE `expr $(VERSION) \\* 65536 + $(PATCHLEVEL) \\* 256 + $(SUBLEVEL)` >> .ver -@@ -500,7 +502,7 @@ - ifdef CONFIG_MODVERSIONS - 	$(MAKE) update-modverfile - endif --	scripts/mkdep -- `find $(FINDHPATH) \( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name modversions.h -print` > .hdepend -+	(find $(FINDHPATH) \( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name modversions.h -print | xargs -r scripts/mkdep -- ) > .hdepend - 	scripts/mkdep -- init/*.c > .depend -  - ifdef CONFIG_MODVERSIONS -diff -Nur linux-2.4.30/Rules.make linux-2.4.30-brcm/Rules.make ---- linux-2.4.30/Rules.make	2004-02-18 14:36:30.000000000 +0100 -+++ linux-2.4.30-brcm/Rules.make	2005-05-26 17:11:14.000000000 +0200 -@@ -176,7 +176,14 @@ - _modinst__: dummy - ifneq "$(strip $(ALL_MOBJS))" "" - 	mkdir -p $(MODLIB)/kernel/$(MOD_DESTDIR) --	cp $(sort $(ALL_MOBJS)) $(MODLIB)/kernel/$(MOD_DESTDIR) -+	#@cp $(sort $(ALL_MOBJS)) $(MODLIB)/kernel/$(MOD_DESTDIR) -+	for f in $(ALL_MOBJS) ; do \ -+		$(OBJCOPY) -R __ksymtab -R .comment -R .note -x \ -+		`$(NM) $$f | cut -f3- -d' ' | sed -n \ -+			-e 's/__module_parm_\(.*\)/-K \1/p' \ -+			-e 's/__ks..tab_\(.*\)/-K \1/p'` \ -+		$$f $(MODLIB)/kernel/$(MOD_DESTDIR)$(MOD_TARGET)$$f; \ -+	done - endif -  - .PHONY: modules_install  | 
