Răsfoiți Sursa

Merge branch 'master' of git+ssh://openadk.org/git/openadk

Waldemar Brodkorb 14 ani în urmă
părinte
comite
8f4b5ed938

+ 8 - 0
mk/kernel-vars.mk

@@ -7,3 +7,11 @@ KERNEL_MAKE_OPTS+=	CROSS_COMPILE="$(TARGET_CROSS)" ARCH=$(ARCH) \
 			CC="$(TARGET_CC)" HOSTCC="${CC_FOR_BUILD}" \
 			CC="$(TARGET_CC)" HOSTCC="${CC_FOR_BUILD}" \
 			HOSTCFLAGS='${CFLAGS_FOR_BUILD}'
 			HOSTCFLAGS='${CFLAGS_FOR_BUILD}'
 endif
 endif
+ifeq (${ADK_TARGET_BROADCOM_MODEL_LINKSYS_WRT54G},y)
+ADK_KCPPFLAGS+=		-DBCM47XX_OVERRIDE_FLASHSIZE=0x400000
+endif
+ifeq (${ADK_TARGET_BROADCOM_MODEL_LINKSYS_WRT54GS},y)
+ADK_KCPPFLAGS+=		-DBCM47XX_OVERRIDE_FLASHSIZE=0x800000
+endif
+
+KERNEL_MAKE_ENV+=	KCPPFLAGS='${ADK_KCPPFLAGS}'

+ 12 - 0
target/config/Config.in

@@ -80,6 +80,18 @@ config ADK_TARGET_ABI_N64
 
 
 endchoice
 endchoice
 
 
+choice 
+prompt "Broadcom BCM47xx Model"
+depends on ADK_TARGET_SYSTEM_BROADCOM_BCM47XX
+
+config ADK_TARGET_BROADCOM_MODEL_LINKSYS_WRT54G
+	boolean "Linksys WRT54g"
+	
+config ADK_TARGET_BROADCOM_MODEL_LINKSYS_WRT54GS
+	boolean "Linksys WRT54gs"
+
+endchoice
+
 if ADK_LINUX_NATIVE
 if ADK_LINUX_NATIVE
 source "target/config/Config.in.native"
 source "target/config/Config.in.native"
 endif
 endif

+ 2 - 2
target/config/Config.in.tools

@@ -1,5 +1,5 @@
 config ADK_TOOLS_ADDPATTERN_ARGS
 config ADK_TOOLS_ADDPATTERN_ARGS
 	string
 	string
-	default "-p W54G -v v4.20.6" if ADK_TARGET_SYSTEM_LINKSYS_WRT54G
-	default "-p W54S -v v4.70.6" if ADK_TARGET_SYSTEM_LINKSYS_WRT54GS
+	default "-p W54G -v v4.20.6" if ADK_TARGET_BROADCOM_MODEL_LINKSYS_WRT54G
+	default "-p W54S -v v4.70.6" if ADK_TARGET_BROADCOM_MODEL_LINKSYS_WRT54GS
 	default ""
 	default ""

+ 1 - 1
target/linux/config/Config.in.flash

@@ -44,7 +44,7 @@ config ADK_KERNEL_MTD_AR7_PARTS
 
 
 config ADK_KERNEL_MTD_CFI_INTELEXT
 config ADK_KERNEL_MTD_CFI_INTELEXT
 	boolean
 	boolean
-	default y if ADK_TARGET_SYSTEM_LINKSYS_WRT54G
+	default y if ADK_TARGET_SYSTEM_BROADCOM_BCM47XX
 	default n
 	default n
 
 
 config ADK_TARGET_NAND
 config ADK_TARGET_NAND

+ 2 - 2
target/linux/config/Config.in.netdevice

@@ -115,8 +115,7 @@ config ADK_KERNEL_B44
 	select ADK_KERNEL_NET_ETHERNET
 	select ADK_KERNEL_NET_ETHERNET
 	select ADK_KERNEL_NET_PCI
 	select ADK_KERNEL_NET_PCI
 	select ADK_KERNEL_MII
 	select ADK_KERNEL_MII
-	default y if ADK_TARGET_SYSTEM_LINKSYS_WRT54G
-	default y if ADK_TARGET_SYSTEM_LINKSYS_WRT54GS
+	default y if ADK_TARGET_SYSTEM_BROADCOM_BCM47XX
 	default n
 	default n
 	help
 	help
 
 
@@ -345,6 +344,7 @@ config ADK_KPACKAGE_KMOD_B43
 	prompt "kmod-b43..................... Broadcom B43xx wireless cards"
 	prompt "kmod-b43..................... Broadcom B43xx wireless cards"
 	tristate
 	tristate
 	select ADK_KPACKAGE_KMOD_FW_LOADER
 	select ADK_KPACKAGE_KMOD_FW_LOADER
+	select ADK_KPACKAGE_KMOD_MAC80211
 	depends on ADK_TARGET_WITH_SSB || ADK_TARGET_WITH_MINIPCI
 	depends on ADK_TARGET_WITH_SSB || ADK_TARGET_WITH_MINIPCI
 	default n
 	default n
 	help
 	help

+ 102 - 94
target/linux/patches/2.6.37/brcm.patch

@@ -1,45 +1,6 @@
-diff -Nur linux-2.6.37.orig/arch/mips/Kconfig linux-2.6.37/arch/mips/Kconfig
---- linux-2.6.37.orig/arch/mips/Kconfig	2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/arch/mips/Kconfig	2011-01-19 22:45:48.000000000 +0100
-@@ -84,6 +84,7 @@
- 	select GENERIC_GPIO
- 	select SYS_HAS_EARLY_PRINTK
- 	select CFE
-+	select SYS_SUPPORTS_ZBOOT_UART16550
- 	help
- 	 Support for BCM47XX based boards
- 
-diff -Nur linux-2.6.37.orig/arch/mips/Makefile linux-2.6.37/arch/mips/Makefile
---- linux-2.6.37.orig/arch/mips/Makefile	2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/arch/mips/Makefile	2011-01-19 22:48:04.000000000 +0100
-@@ -76,6 +76,7 @@
- all-$(CONFIG_BOOT_ELF32)	:= $(vmlinux-32)
- all-$(CONFIG_BOOT_ELF64)	:= $(vmlinux-64)
- all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlinuz
-+all-$(CONFIG_BCM47XX)		+= vmlinuz.elf
- 
- #
- # GCC uses -G 0 -mabicalls -fpic as default.  We don't want PIC in the kernel
-@@ -276,7 +277,7 @@
- 	$(Q)$(MAKE) $(build)=arch/mips/boot VMLINUX=$(vmlinux-32) arch/mips/boot/$@
- 
- # boot/compressed
--vmlinuz vmlinuz.bin vmlinuz.ecoff vmlinuz.srec: $(vmlinux-32) FORCE
-+vmlinuz vmlinuz.bin vmlinuz.ecoff vmlinuz.srec vmlinuz.elf: $(vmlinux-32) FORCE
- 	$(Q)$(MAKE) $(build)=arch/mips/boot/compressed \
- 	   VMLINUX_LOAD_ADDRESS=$(load-y) 32bit-bfd=$(32bit-bfd) $@
- 
-@@ -313,6 +314,7 @@
- 	echo '  vmlinuz.ecoff        - ECOFF zboot image'
- 	echo '  vmlinuz.bin          - Raw binary zboot image'
- 	echo '  vmlinuz.srec         - SREC zboot image'
-+	echo '  vmlinuz.elf          - ELF self-relocating zboot image'
- 	echo
- 	echo '  These will be default as apropriate for a configured platform.'
- endef
 diff -Nur linux-2.6.37.orig/arch/mips/bcm47xx/Makefile linux-2.6.37/arch/mips/bcm47xx/Makefile
 diff -Nur linux-2.6.37.orig/arch/mips/bcm47xx/Makefile linux-2.6.37/arch/mips/bcm47xx/Makefile
 --- linux-2.6.37.orig/arch/mips/bcm47xx/Makefile	2011-01-05 01:50:19.000000000 +0100
 --- linux-2.6.37.orig/arch/mips/bcm47xx/Makefile	2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/arch/mips/bcm47xx/Makefile	2011-01-19 22:45:43.000000000 +0100
++++ linux-2.6.37/arch/mips/bcm47xx/Makefile	2011-04-26 20:26:19.777672932 +0200
 @@ -3,4 +3,4 @@
 @@ -3,4 +3,4 @@
  # under Linux.
  # under Linux.
  #
  #
@@ -48,8 +9,8 @@ diff -Nur linux-2.6.37.orig/arch/mips/bcm47xx/Makefile linux-2.6.37/arch/mips/bc
 +obj-y := gpio.o irq.o nvram.o prom.o serial.o setup.o time.o platform.o
 +obj-y := gpio.o irq.o nvram.o prom.o serial.o setup.o time.o platform.o
 diff -Nur linux-2.6.37.orig/arch/mips/bcm47xx/platform.c linux-2.6.37/arch/mips/bcm47xx/platform.c
 diff -Nur linux-2.6.37.orig/arch/mips/bcm47xx/platform.c linux-2.6.37/arch/mips/bcm47xx/platform.c
 --- linux-2.6.37.orig/arch/mips/bcm47xx/platform.c	1970-01-01 01:00:00.000000000 +0100
 --- linux-2.6.37.orig/arch/mips/bcm47xx/platform.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.37/arch/mips/bcm47xx/platform.c	2011-01-19 22:45:57.000000000 +0100
-@@ -0,0 +1,139 @@
++++ linux-2.6.37/arch/mips/bcm47xx/platform.c	2011-04-26 21:54:17.727672777 +0200
+@@ -0,0 +1,147 @@
 +/*
 +/*
 + * This file is subject to the terms and conditions of the GNU General Public
 + * This file is subject to the terms and conditions of the GNU General Public
 + * License.  See the file "COPYING" in the main directory of this archive
 + * License.  See the file "COPYING" in the main directory of this archive
@@ -68,7 +29,7 @@ diff -Nur linux-2.6.37.orig/arch/mips/bcm47xx/platform.c linux-2.6.37/arch/mips/
 +#include <asm/mach-bcm47xx/nvram.h>
 +#include <asm/mach-bcm47xx/nvram.h>
 +
 +
 +#define NVRAM_FLASH_SIZE 0x10000
 +#define NVRAM_FLASH_SIZE 0x10000
-+#define CFGFS_FLASH_SIZE (64 * 1024)
++#define CFGFS_FLASH_SIZE (128 * 1024)
 +
 +
 +static struct mtd_partition bcm47xx_partitions[] = {
 +static struct mtd_partition bcm47xx_partitions[] = {
 +#define SLOT_CFE 0
 +#define SLOT_CFE 0
@@ -150,8 +111,16 @@ diff -Nur linux-2.6.37.orig/arch/mips/bcm47xx/platform.c linux-2.6.37/arch/mips/
 +	trx_hdr = (void *)KSEG1ADDR(mcore->flash_window + 0x40000);
 +	trx_hdr = (void *)KSEG1ADDR(mcore->flash_window + 0x40000);
 +
 +
 +	/* devices might have 2, 4 or 8 MB flash size */
 +	/* devices might have 2, 4 or 8 MB flash size */
++#ifdef BCM47XX_OVERRIDE_FLASHSIZE
++	flash_size = BCM47XX_OVERRIDE_FLASHSIZE;
++	mcore->flash_window_size = flash_size;
++#define BCM47XX_OVERRODE_FLASHSIZE " (overridden)"
++#else
 +	flash_size = mcore->flash_window_size;
 +	flash_size = mcore->flash_window_size;
-+	printk(KERN_INFO "FLASH SIZE: 0x%x\n", flash_size);
++#define BCM47XX_OVERRODE_FLASHSIZE ""
++#endif
++	printk(KERN_INFO "FLASH SIZE%s: %x\n", BCM47XX_OVERRODE_FLASHSIZE,
++		flash_size);
 +
 +
 +	left = flash_size - 0x40000;
 +	left = flash_size - 0x40000;
 +	posn = flash_size;
 +	posn = flash_size;
@@ -191,7 +160,7 @@ diff -Nur linux-2.6.37.orig/arch/mips/bcm47xx/platform.c linux-2.6.37/arch/mips/
 +device_initcall(bcm47xx_register_devices);
 +device_initcall(bcm47xx_register_devices);
 diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/Makefile linux-2.6.37/arch/mips/boot/compressed/Makefile
 diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/Makefile linux-2.6.37/arch/mips/boot/compressed/Makefile
 --- linux-2.6.37.orig/arch/mips/boot/compressed/Makefile	2011-01-05 01:50:19.000000000 +0100
 --- linux-2.6.37.orig/arch/mips/boot/compressed/Makefile	2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/arch/mips/boot/compressed/Makefile	2011-01-19 23:21:26.000000000 +0100
++++ linux-2.6.37/arch/mips/boot/compressed/Makefile	2011-04-26 20:44:04.607661119 +0200
 @@ -58,8 +58,13 @@
 @@ -58,8 +58,13 @@
  # Calculate the load address of the compressed kernel image
  # Calculate the load address of the compressed kernel image
  hostprogs-y := calc_vmlinuz_load_addr
  hostprogs-y := calc_vmlinuz_load_addr
@@ -214,15 +183,58 @@ diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/Makefile linux-2.6.37/arch
 +AFLAGS_selfreloc.o := -DVMLINUZ_LOAD_ADDRESS=$(VMLINUZ_LOAD_ADDRESS)
 +AFLAGS_selfreloc.o := -DVMLINUZ_LOAD_ADDRESS=$(VMLINUZ_LOAD_ADDRESS)
 +CPPFLAGS_selfreloc.lds := $(KBUILD_CFLAGS)
 +CPPFLAGS_selfreloc.lds := $(KBUILD_CFLAGS)
 +
 +
-+arch/mips/boot/compressed/selfreloc.o: arch/mips/boot/compressed/selfreloc.S vmlinuz.bin
++arch/mips/boot/compressed/selfreloc.o: arch/mips/boot/compressed/selfreloc.S vmlinuz.bin FORCE
 +
 +
-+vmlinuz.elf: arch/mips/boot/compressed/selfreloc.o arch/mips/boot/compressed/selfreloc.lds
++vmlinuz.elf: arch/mips/boot/compressed/selfreloc.o arch/mips/boot/compressed/selfreloc.lds FORCE
 +	$(LD) $(LDFLAGS) -T arch/mips/boot/compressed/selfreloc.lds arch/mips/boot/compressed/selfreloc.o -o $@
 +	$(LD) $(LDFLAGS) -T arch/mips/boot/compressed/selfreloc.lds arch/mips/boot/compressed/selfreloc.o -o $@
 +
 +
 +clean-files := $(objtree)/vmlinuz $(objtree)/vmlinuz.{32,ecoff,bin,srec,elf} $(objtree)/arch/mips/boot/compressed/selfreloc.{o,lds}
 +clean-files := $(objtree)/vmlinuz $(objtree)/vmlinuz.{32,ecoff,bin,srec,elf} $(objtree)/arch/mips/boot/compressed/selfreloc.{o,lds}
+diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.lds.S linux-2.6.37/arch/mips/boot/compressed/selfreloc.lds.S
+--- linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.lds.S	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.37/arch/mips/boot/compressed/selfreloc.lds.S	2011-04-26 20:26:20.347764678 +0200
+@@ -0,0 +1,39 @@
++/*-
++ * written 2010 by Thorsten Glaser <tg@debian.org> based on
++ * arch/mips/kernel/vmlinux.lds and arch/mips/boot/compressed/ld.script
++ */
++
++#include <asm/asm-offsets.h>
++#include <asm/page.h>
++#include <asm-generic/vmlinux.lds.h>
++
++#undef mips
++#define mips mips
++OUTPUT_ARCH(mips)
++ENTRY(selfreloc_start)
++PHDRS {
++	text PT_LOAD FLAGS(7);	/* RWX */
++}
++SECTIONS
++{
++	. = VMLINUX_LOAD_ADDRESS;
++	.text : {
++		*(.text)
++		*(.text.*)
++		*(.rodata)
++		*(.rodata.*)
++		*(.data)
++		*(.data.*)
++		*(.bss)
++		*(.bss.*)
++	} :text
++	/DISCARD/ : {
++		*(.MIPS.options)
++		*(.options)
++		*(.pdr)
++		*(.reginfo)
++		*(.comment)
++		*(.note)
++		*(.gnu.attributes)
++	}
++}
 diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.S linux-2.6.37/arch/mips/boot/compressed/selfreloc.S
 diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.S linux-2.6.37/arch/mips/boot/compressed/selfreloc.S
 --- linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.S	1970-01-01 01:00:00.000000000 +0100
 --- linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.37/arch/mips/boot/compressed/selfreloc.S	2011-01-19 22:45:57.000000000 +0100
++++ linux-2.6.37/arch/mips/boot/compressed/selfreloc.S	2011-04-26 20:26:20.197673829 +0200
 @@ -0,0 +1,54 @@
 @@ -0,0 +1,54 @@
 +/*-
 +/*-
 + * written 2011 by Thorsten Glaser <tg@freewrt.org> based on
 + * written 2011 by Thorsten Glaser <tg@freewrt.org> based on
@@ -278,52 +290,9 @@ diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.S linux-2.6.37/a
 +	.globl	imgend
 +	.globl	imgend
 +	.p2align 2
 +	.p2align 2
 +imgend:
 +imgend:
-diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.lds.S linux-2.6.37/arch/mips/boot/compressed/selfreloc.lds.S
---- linux-2.6.37.orig/arch/mips/boot/compressed/selfreloc.lds.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.37/arch/mips/boot/compressed/selfreloc.lds.S	2011-01-19 22:45:48.000000000 +0100
-@@ -0,0 +1,39 @@
-+/*-
-+ * written 2010 by Thorsten Glaser <tg@debian.org> based on
-+ * arch/mips/kernel/vmlinux.lds and arch/mips/boot/compressed/ld.script
-+ */
-+
-+#include <asm/asm-offsets.h>
-+#include <asm/page.h>
-+#include <asm-generic/vmlinux.lds.h>
-+
-+#undef mips
-+#define mips mips
-+OUTPUT_ARCH(mips)
-+ENTRY(selfreloc_start)
-+PHDRS {
-+	text PT_LOAD FLAGS(7);	/* RWX */
-+}
-+SECTIONS
-+{
-+	. = VMLINUX_LOAD_ADDRESS;
-+	.text : {
-+		*(.text)
-+		*(.text.*)
-+		*(.rodata)
-+		*(.rodata.*)
-+		*(.data)
-+		*(.data.*)
-+		*(.bss)
-+		*(.bss.*)
-+	} :text
-+	/DISCARD/ : {
-+		*(.MIPS.options)
-+		*(.options)
-+		*(.pdr)
-+		*(.reginfo)
-+		*(.comment)
-+		*(.note)
-+		*(.gnu.attributes)
-+	}
-+}
 diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/uart-16550.c linux-2.6.37/arch/mips/boot/compressed/uart-16550.c
 diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/uart-16550.c linux-2.6.37/arch/mips/boot/compressed/uart-16550.c
 --- linux-2.6.37.orig/arch/mips/boot/compressed/uart-16550.c	2011-01-05 01:50:19.000000000 +0100
 --- linux-2.6.37.orig/arch/mips/boot/compressed/uart-16550.c	2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/arch/mips/boot/compressed/uart-16550.c	2011-01-19 22:45:48.000000000 +0100
++++ linux-2.6.37/arch/mips/boot/compressed/uart-16550.c	2011-04-26 20:26:20.467673519 +0200
 @@ -18,6 +18,11 @@
 @@ -18,6 +18,11 @@
  #define PORT(offset) (CKSEG1ADDR(AR7_REGS_UART0) + (4 * offset))
  #define PORT(offset) (CKSEG1ADDR(AR7_REGS_UART0) + (4 * offset))
  #endif
  #endif
@@ -336,9 +305,48 @@ diff -Nur linux-2.6.37.orig/arch/mips/boot/compressed/uart-16550.c linux-2.6.37/
  #ifndef PORT
  #ifndef PORT
  #error please define the serial port address for your own machine
  #error please define the serial port address for your own machine
  #endif
  #endif
+diff -Nur linux-2.6.37.orig/arch/mips/Kconfig linux-2.6.37/arch/mips/Kconfig
+--- linux-2.6.37.orig/arch/mips/Kconfig	2011-01-05 01:50:19.000000000 +0100
++++ linux-2.6.37/arch/mips/Kconfig	2011-04-26 20:26:19.637668480 +0200
+@@ -84,6 +84,7 @@
+ 	select GENERIC_GPIO
+ 	select SYS_HAS_EARLY_PRINTK
+ 	select CFE
++	select SYS_SUPPORTS_ZBOOT_UART16550
+ 	help
+ 	 Support for BCM47XX based boards
+ 
+diff -Nur linux-2.6.37.orig/arch/mips/Makefile linux-2.6.37/arch/mips/Makefile
+--- linux-2.6.37.orig/arch/mips/Makefile	2011-01-05 01:50:19.000000000 +0100
++++ linux-2.6.37/arch/mips/Makefile	2011-04-26 20:26:19.647661042 +0200
+@@ -76,6 +76,7 @@
+ all-$(CONFIG_BOOT_ELF32)	:= $(vmlinux-32)
+ all-$(CONFIG_BOOT_ELF64)	:= $(vmlinux-64)
+ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlinuz
++all-$(CONFIG_BCM47XX)		+= vmlinuz.elf
+ 
+ #
+ # GCC uses -G 0 -mabicalls -fpic as default.  We don't want PIC in the kernel
+@@ -276,7 +277,7 @@
+ 	$(Q)$(MAKE) $(build)=arch/mips/boot VMLINUX=$(vmlinux-32) arch/mips/boot/$@
+ 
+ # boot/compressed
+-vmlinuz vmlinuz.bin vmlinuz.ecoff vmlinuz.srec: $(vmlinux-32) FORCE
++vmlinuz vmlinuz.bin vmlinuz.ecoff vmlinuz.srec vmlinuz.elf: $(vmlinux-32) FORCE
+ 	$(Q)$(MAKE) $(build)=arch/mips/boot/compressed \
+ 	   VMLINUX_LOAD_ADDRESS=$(load-y) 32bit-bfd=$(32bit-bfd) $@
+ 
+@@ -313,6 +314,7 @@
+ 	echo '  vmlinuz.ecoff        - ECOFF zboot image'
+ 	echo '  vmlinuz.bin          - Raw binary zboot image'
+ 	echo '  vmlinuz.srec         - SREC zboot image'
++	echo '  vmlinuz.elf          - ELF self-relocating zboot image'
+ 	echo
+ 	echo '  These will be default as apropriate for a configured platform.'
+ endef
 diff -Nur linux-2.6.37.orig/drivers/ssb/driver_mipscore.c linux-2.6.37/drivers/ssb/driver_mipscore.c
 diff -Nur linux-2.6.37.orig/drivers/ssb/driver_mipscore.c linux-2.6.37/drivers/ssb/driver_mipscore.c
 --- linux-2.6.37.orig/drivers/ssb/driver_mipscore.c	2011-01-05 01:50:19.000000000 +0100
 --- linux-2.6.37.orig/drivers/ssb/driver_mipscore.c	2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/drivers/ssb/driver_mipscore.c	2011-01-19 22:45:57.000000000 +0100
++++ linux-2.6.37/drivers/ssb/driver_mipscore.c	2011-04-26 20:26:20.597672444 +0200
 @@ -190,10 +190,11 @@
 @@ -190,10 +190,11 @@
  {
  {
  	struct ssb_bus *bus = mcore->dev->bus;
  	struct ssb_bus *bus = mcore->dev->bus;
@@ -354,7 +362,7 @@ diff -Nur linux-2.6.37.orig/drivers/ssb/driver_mipscore.c linux-2.6.37/drivers/s
  			mcore->flash_buswidth = 1;
  			mcore->flash_buswidth = 1;
 diff -Nur linux-2.6.37.orig/init/Kconfig linux-2.6.37/init/Kconfig
 diff -Nur linux-2.6.37.orig/init/Kconfig linux-2.6.37/init/Kconfig
 --- linux-2.6.37.orig/init/Kconfig	2011-01-05 01:50:19.000000000 +0100
 --- linux-2.6.37.orig/init/Kconfig	2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/init/Kconfig	2011-01-19 22:45:48.000000000 +0100
++++ linux-2.6.37/init/Kconfig	2011-04-26 20:26:20.727673059 +0200
 @@ -158,6 +158,7 @@
 @@ -158,6 +158,7 @@
  config KERNEL_GZIP
  config KERNEL_GZIP
  	bool "Gzip"
  	bool "Gzip"

+ 55 - 2
target/mips/Makefile

@@ -15,9 +15,40 @@ endif
 
 
 OSTRIP:=-R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id
 OSTRIP:=-R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id
 
 
+tools-compile:
+	$(MAKE) -C ../tools/trx all
+	$(MAKE) -C ../tools/addpattern all
+	$(MAKE) -C ../tools/srec2bin all
+	$(MAKE) -C ../tools/squashfs all
+
+ifeq ($(ADK_TARGET_SYSTEM_BROADCOM_BCM47XX),y)
+kernel-install: tools-compile
+	${TARGET_CROSS}objcopy ${OSTRIP} -S ${LINUX_DIR}/vmlinuz.elf \
+	    ${BUILD_DIR}/${TARGET_KERNEL}
+
+${BUILD_DIR}/${ROOTFSSQUASHFS}: ${BUILD_DIR}/root.squashfs
+	${TARGET_CROSS}objcopy -O binary ${BUILD_DIR}/${TARGET_KERNEL} \
+	    ${BUILD_DIR}/${TARGET_KERNEL}.bin
+	gzip -n9 <${BUILD_DIR}/${TARGET_KERNEL}.bin \
+	    >${BUILD_DIR}/${TARGET_KERNEL}.bin.gz
+	printf '\0' >>${BUILD_DIR}/${TARGET_KERNEL}.bin.gz
+	PATH='${TARGET_PATH}' trx -o $@~ -f ${BUILD_DIR}/${TARGET_KERNEL}.bin.gz -a 1024 -f ${BUILD_DIR}/root.squashfs
+	PATH='${TARGET_PATH}' addpattern -4 ${ADK_TOOLS_ADDPATTERN_ARGS} -g -i $@~ -o $@
+endif
+
+ifeq ($(ADK_TARGET_SYSTEM_LINKSYS_AG241),y)
+kernel-install: tools-compile
+	${TARGET_CROSS}objcopy -S -O srec $(KERNEL) $(LINUX_DIR)/vmlinux.srec
+	PATH='${TARGET_PATH}' srec2bin $(LINUX_DIR)/vmlinux.srec $(LINUX_DIR)/vmlinux.bin
+	(dd if=/dev/zero bs=16 count=1; cat $(LINUX_DIR)/vmlinux.bin) > $(LINUX_DIR)/vmlinux.tmp
+	PATH='${TARGET_PATH}' addpattern -p AG3B -b -r 2.0 -i $(LINUX_DIR)/vmlinux.tmp \
+		-o $(BUILD_DIR)/$(TARGET_KERNEL) 2>/dev/null
+endif
+
+ifeq ($(ADK_TARGET_SYSTEM_MIKROTIK_RB532),y)
 kernel-install:
 kernel-install:
-	$(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) \
-		$(TARGET_DIR)/boot/kernel
+	$(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
+endif
 
 
 ifeq ($(ADK_TARGET_FS),nfsroot)
 ifeq ($(ADK_TARGET_FS),nfsroot)
 imageinstall: kernel-install $(BIN_DIR)/$(ROOTFSUSERTARBALL)
 imageinstall: kernel-install $(BIN_DIR)/$(ROOTFSUSERTARBALL)
@@ -65,3 +96,25 @@ ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
 	@echo "PMON> g console=tty no_auto_cmd"
 	@echo "PMON> g console=tty no_auto_cmd"
 endif
 endif
 endif
 endif
+ifeq ($(ADK_TARGET_FS),cf)
+imageinstall: kernel-install $(BIN_DIR)/$(ROOTFSUSERTARBALL)
+	@cp $(BUILD_DIR)/$(TARGET_KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+	@echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERNEL}'
+	@echo "The RootFS tarball is: $(BIN_DIR)/$(ROOTFSUSERTARBALL)"
+	@echo "Boot the board via network (tftp+nfsroot) and use adkinstall."
+	@echo "If you just want to update, use adkupdate."
+endif
+ifeq ($(ADK_TARGET_FS),squashfs)
+imageinstall: kernel-install ${BUILD_DIR}/${ROOTFSSQUASHFS}
+	@if [ $$($(STATCMD) ${BUILD_DIR}/${ROOTFSSQUASHFS}) -gt 3801088 ];then \
+		echo 'Image is too big!'; \
+	else \
+		${CP} ${BUILD_DIR}/${ROOTFSSQUASHFS} ${BIN_DIR}/${ROOTFSSQUASHFS}; \
+		echo The image file is $(ROOTFSSQUASHFS); \
+		echo 'You can flash the image via tftp:'; \
+		echo 'tftp 192.168.1.1'; \
+		echo 'tftp> binary'; \
+		echo "tftp> put $(ROOTFSSQUASHFS) upgrade_code.bin"; \
+	fi
+endif
+

+ 4 - 5
target/mips/sys-available/linksys-wrt54g → target/mips/sys-available/broadcom-bcm47xx

@@ -1,14 +1,13 @@
-config ADK_TARGET_SYSTEM_LINKSYS_WRT54G
-	bool "Linksys WRT54G"
+config ADK_TARGET_SYSTEM_BROADCOM_BCM47XX
+	bool "Broadcom BCM47XX"
 	select ADK_mips
 	select ADK_mips
 	select ADK_little
 	select ADK_little
-	select ADK_linksys_wrt54g
+	select ADK_broadcom_bcm47xx
 	select ADK_KERNEL_BCM47XX
 	select ADK_KERNEL_BCM47XX
 	select ADK_KERNEL_KERNEL_LZMA
 	select ADK_KERNEL_KERNEL_LZMA
 	select ADK_TARGET_WITH_MTD
 	select ADK_TARGET_WITH_MTD
 	select ADK_TARGET_WITH_SSB
 	select ADK_TARGET_WITH_SSB
 	select ADK_TARGET_WITH_WATCHDOG
 	select ADK_TARGET_WITH_WATCHDOG
 	help
 	help
-	  Linksys WRT54G WLAN router.
-	  (Broadcom BCM47xx platform)
+	  Broadcom BCM47xx systems.
 
 

+ 0 - 14
target/mips/sys-available/linksys-wrt54gs

@@ -1,14 +0,0 @@
-config ADK_TARGET_SYSTEM_LINKSYS_WRT54GS
-	bool "Linksys WRT54GS"
-	select ADK_mips
-	select ADK_little
-	select ADK_linksys_wrt54gs
-	select ADK_KERNEL_BCM47XX
-	select ADK_KERNEL_KERNEL_LZMA
-	select ADK_TARGET_WITH_MTD
-	select ADK_TARGET_WITH_SSB
-	select ADK_TARGET_WITH_WATCHDOG
-	help
-	  Linksys WRT54GS WLAN router.
-	  (Broadcom BCM47xx platform)
-