summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package/libtool/Makefile1
-rw-r--r--target/config/Config.in2
-rw-r--r--target/config/Config.in.tools5
-rw-r--r--target/linux/patches/2.6.37/brcm.patch254
-rw-r--r--target/linux/patches/2.6.37/mtd-root.patch64
-rw-r--r--target/linux/patches/2.6.37/mtd-rootfs.patch26
-rw-r--r--target/mipsel/Makefile13
-rw-r--r--target/mipsel/sys-available/linksys-wrt54gs13
8 files changed, 290 insertions, 88 deletions
diff --git a/package/libtool/Makefile b/package/libtool/Makefile
index bfc3695eb..3c89c5a50 100644
--- a/package/libtool/Makefile
+++ b/package/libtool/Makefile
@@ -11,6 +11,7 @@ PKG_DESCR:= a generic dynamic object loading library
PKG_SECTION:= lang
PKG_URL:= http://www.gnu.org/software/libtool/
PKG_SITES:= ${MASTER_SITE_GNU:=libtool/}
+PKG_NEED_CXX:= 1
PKG_SUBPKGS:= LIBTOOL LIBLTDL LIBLTDL_DEV
PKGSC_LIBLTDL:= libs
diff --git a/target/config/Config.in b/target/config/Config.in
index 5e9f42073..b8fab0255 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -446,3 +446,5 @@ config ADK_TARGET_PACKAGE_TGZ
directory. There will be no package manager installed onto the target.
endchoice
+
+source "target/config/Config.in.tools"
diff --git a/target/config/Config.in.tools b/target/config/Config.in.tools
new file mode 100644
index 000000000..8ed343d2a
--- /dev/null
+++ b/target/config/Config.in.tools
@@ -0,0 +1,5 @@
+config ADK_TOOLS_ADDPATTERN_ARGS
+ 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 ""
diff --git a/target/linux/patches/2.6.37/brcm.patch b/target/linux/patches/2.6.37/brcm.patch
index 10a9a4947..6ce7fc3c8 100644
--- a/target/linux/patches/2.6.37/brcm.patch
+++ b/target/linux/patches/2.6.37/brcm.patch
@@ -1,14 +1,55 @@
---- linux-2.6.36.orig/arch/mips/bcm47xx/Makefile 2010-10-20 22:30:22.000000000 +0200
-+++ linux-2.6.36/arch/mips/bcm47xx/Makefile 2010-12-22 16:39:15.000000000 +0100
+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
+--- 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
@@ -3,4 +3,4 @@
# under Linux.
#
-obj-y := gpio.o irq.o nvram.o prom.o serial.o setup.o time.o wgt634u.o
+obj-y := gpio.o irq.o nvram.o prom.o serial.o setup.o time.o platform.o
---- /dev/null Fri Jan 7 17:21:57 2011
-+++ linux-2.6.36/arch/mips/bcm47xx/platform.c Fri Jan 7 17:21:42 2011
-@@ -0,0 +1,147 @@
+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/arch/mips/bcm47xx/platform.c 2011-01-19 22:45:57.000000000 +0100
+@@ -0,0 +1,139 @@
+/*
+ * 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
@@ -109,16 +150,8 @@
+ trx_hdr = (void *)KSEG1ADDR(mcore->flash_window + 0x40000);
+
+ /* 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;
-+#define BCM47XX_OVERRODE_FLASHSIZE ""
-+#endif
-+ printk(KERN_INFO "FLASH SIZE%s: %x\n", BCM47XX_OVERRODE_FLASHSIZE,
-+ flash_size);
++ printk(KERN_INFO "FLASH SIZE: 0x%x\n", flash_size);
+
+ left = flash_size - 0x40000;
+ posn = flash_size;
@@ -156,9 +189,161 @@
+}
+
+device_initcall(bcm47xx_register_devices);
---- linux-2.6.36.orig/drivers/ssb/driver_mipscore.c 2010-10-20 22:30:22.000000000 +0200
-+++ linux-2.6.36/drivers/ssb/driver_mipscore.c 2010-12-22 16:38:53.000000000 +0100
-@@ -193,7 +193,7 @@
+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/arch/mips/boot/compressed/Makefile 2011-01-19 23:21:26.000000000 +0100
+@@ -58,8 +58,13 @@
+ # Calculate the load address of the compressed kernel image
+ hostprogs-y := calc_vmlinuz_load_addr
+
++ifdef CONFIG_BCM47XX
++# XXX just after CFE, just pray the address is static
++VMLINUZ_LOAD_ADDRESS = 0xffffffff80480000
++else
+ VMLINUZ_LOAD_ADDRESS = $(shell $(obj)/calc_vmlinuz_load_addr \
+ $(obj)/vmlinux.bin $(VMLINUX_LOAD_ADDRESS))
++endif
+
+ vmlinuzobjs-y += $(obj)/piggy.o
+
+@@ -105,4 +110,12 @@
+ vmlinuz.srec: vmlinuz
+ $(call cmd,objcopy)
+
+-clean-files := $(objtree)/vmlinuz $(objtree)/vmlinuz.{32,ecoff,bin,srec}
++AFLAGS_selfreloc.o := -DVMLINUZ_LOAD_ADDRESS=$(VMLINUZ_LOAD_ADDRESS)
++CPPFLAGS_selfreloc.lds := $(KBUILD_CFLAGS)
++
++arch/mips/boot/compressed/selfreloc.o: arch/mips/boot/compressed/selfreloc.S vmlinuz.bin
++
++vmlinuz.elf: arch/mips/boot/compressed/selfreloc.o arch/mips/boot/compressed/selfreloc.lds
++ $(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}
+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/arch/mips/boot/compressed/selfreloc.S 2011-01-19 22:45:57.000000000 +0100
+@@ -0,0 +1,54 @@
++/*-
++ * written 2011 by Thorsten Glaser <tg@freewrt.org> based on
++ * arch/mips/boot/compressed/head.S
++ */
++
++#include <asm/asm.h>
++#include <asm/regdef.h>
++
++ .set noreorder
++ .cprestore
++
++ .text
++ LEAF(selfreloc_start)
++selfreloc_start:
++ /* Save boot rom start args */
++ move s0, a0
++ move s1, a1
++ move s2, a2
++ move s3, a3
++
++ /* Copy code to the correct place */
++ PTR_LI a0, VMLINUZ_LOAD_ADDRESS
++ PTR_LA a1, imgbeg
++ PTR_LA a2, imgend
++1: lw t0, 0(a1)
++ sw t0, 0(a0)
++ add a1, 4
++ add a0, 4
++ blt a1, a2, 1b
++ nop
++
++ /* Restore boot rom start args */
++ move a0, s0
++ move a1, s1
++ move a2, s2
++ move a3, s3
++
++ /* Jump to the code at its new location */
++ PTR_LI k0, VMLINUZ_LOAD_ADDRESS
++ jr k0
++ nop
++
++ /* Just in case we come backā€¦ */
++3:
++ b 3b
++ nop
++ END(selfreloc_start)
++
++ .globl imgbeg
++ .p2align 2
++imgbeg: .incbin "vmlinuz.bin"
++ .globl imgend
++ .p2align 2
++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
+--- 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
+@@ -18,6 +18,11 @@
+ #define PORT(offset) (CKSEG1ADDR(AR7_REGS_UART0) + (4 * offset))
+ #endif
+
++#ifdef CONFIG_BCM47XX
++#define UART_BASE 0x18000300
++#define PORT(offset) (CKSEG1ADDR(UART_BASE) + (offset))
++#endif
++
+ #ifndef PORT
+ #error please define the serial port address for your own machine
+ #endif
+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/drivers/ssb/driver_mipscore.c 2011-01-19 22:45:57.000000000 +0100
+@@ -190,10 +190,11 @@
+ {
+ struct ssb_bus *bus = mcore->dev->bus;
+
++ printk("Check for vendor with value: %d", bus->chipco.dev->id.vendor);
mcore->flash_buswidth = 2;
if (bus->chipco.dev) {
mcore->flash_window = 0x1c000000;
@@ -167,3 +352,38 @@
if ((ssb_read32(bus->chipco.dev, SSB_CHIPCO_FLASH_CFG)
& SSB_CHIPCO_CFG_DS16) == 0)
mcore->flash_buswidth = 1;
+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/init/Kconfig 2011-01-19 22:45:48.000000000 +0100
+@@ -158,6 +158,7 @@
+ config KERNEL_GZIP
+ bool "Gzip"
+ depends on HAVE_KERNEL_GZIP
++ select DECOMPRESS_GZIP
+ help
+ The old and tried gzip compression. It provides a good balance
+ between compression ratio and decompression speed.
+@@ -165,6 +166,7 @@
+ config KERNEL_BZIP2
+ bool "Bzip2"
+ depends on HAVE_KERNEL_BZIP2
++ select DECOMPRESS_BZIP2
+ help
+ Its compression ratio and speed is intermediate.
+ Decompression speed is slowest among the three. The kernel
+@@ -175,6 +177,7 @@
+ config KERNEL_LZMA
+ bool "LZMA"
+ depends on HAVE_KERNEL_LZMA
++ select DECOMPRESS_LZMA
+ help
+ The most recent compression algorithm.
+ Its ratio is best, decompression speed is between the other
+@@ -184,6 +187,7 @@
+ config KERNEL_LZO
+ bool "LZO"
+ depends on HAVE_KERNEL_LZO
++ select DECOMPRESS_LZO
+ help
+ Its compression ratio is the poorest among the 4. The kernel
+ size is about 10% bigger than gzip; however its speed
diff --git a/target/linux/patches/2.6.37/mtd-root.patch b/target/linux/patches/2.6.37/mtd-root.patch
deleted file mode 100644
index ecb9a696b..000000000
--- a/target/linux/patches/2.6.37/mtd-root.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-diff -Nur linux-2.6.37.orig/drivers/mtd/Kconfig linux-2.6.37/drivers/mtd/Kconfig
---- linux-2.6.37.orig/drivers/mtd/Kconfig 2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/drivers/mtd/Kconfig 2011-01-11 20:32:21.000000000 +0100
-@@ -53,6 +53,11 @@
- devices. Partitioning on NFTL 'devices' is a different - that's the
- 'normal' form of partitioning used on a block device.
-
-+config MTD_ROOTFS_ROOT_DEV
-+ bool "Automatically set 'rootfs' partition to be root filesystem"
-+ depends on MTD_PARTITIONS
-+ default y
-+
- config MTD_REDBOOT_PARTS
- tristate "RedBoot partition table parsing"
- depends on MTD_PARTITIONS
-diff -Nur linux-2.6.37.orig/drivers/mtd/mtdpart.c linux-2.6.37/drivers/mtd/mtdpart.c
---- linux-2.6.37.orig/drivers/mtd/mtdpart.c 2011-01-05 01:50:19.000000000 +0100
-+++ linux-2.6.37/drivers/mtd/mtdpart.c 2011-01-11 20:40:29.000000000 +0100
-@@ -30,6 +30,7 @@
- #include <linux/mtd/mtd.h>
- #include <linux/mtd/partitions.h>
- #include <linux/err.h>
-+#include <linux/root_dev.h>
-
- /* Our partition linked list */
- static LIST_HEAD(mtd_partitions);
-@@ -48,7 +49,7 @@
- * the pointer to that structure with this macro.
- */
- #define PART(x) ((struct mtd_part *)(x))
--
-+#define IS_PART(mtd) (mtd->read == part_read)
-
- /*
- * MTD methods which simply translate the effective address and pass through
-@@ -633,15 +634,24 @@
- {
- struct mtd_part *slave;
- uint64_t cur_offset = 0;
-- int i;
-+ int i, j;
-
- printk(KERN_NOTICE "Creating %d MTD partitions on \"%s\":\n", nbparts, master->name);
-
-- for (i = 0; i < nbparts; i++) {
-- slave = allocate_partition(master, parts + i, i, cur_offset);
-- if (IS_ERR(slave))
-+ for (i = 0, j = 0; i < nbparts; i++) {
-+ slave = add_one_partition(master, parts + i, j++, cur_offset);
-+ if (!(slave))
- return PTR_ERR(slave);
-
-+
-+ if (!strcmp(parts[i].name, "rootfs")) {
-+#ifdef CONFIG_MTD_ROOTFS_ROOT_DEV
-+ if (ROOT_DEV == 0) {
-+ printk(KERN_NOTICE "mtd: partition \"rootfs\" "
-+ "set to be root filesystem\n");
-+ ROOT_DEV = MKDEV(MTD_BLOCK_MAJOR, slave->mtd.index);
-+ }
-+#endif
- mutex_lock(&mtd_partitions_mutex);
- list_add(&slave->list, &mtd_partitions);
- mutex_unlock(&mtd_partitions_mutex);
diff --git a/target/linux/patches/2.6.37/mtd-rootfs.patch b/target/linux/patches/2.6.37/mtd-rootfs.patch
new file mode 100644
index 000000000..74a94ff7e
--- /dev/null
+++ b/target/linux/patches/2.6.37/mtd-rootfs.patch
@@ -0,0 +1,26 @@
+diff -Nur linux-2.6.37.orig/drivers/mtd/mtdpart.c linux-2.6.37/drivers/mtd/mtdpart.c
+--- linux-2.6.37.orig/drivers/mtd/mtdpart.c 2011-01-05 01:50:19.000000000 +0100
++++ linux-2.6.37/drivers/mtd/mtdpart.c 2011-01-18 00:23:32.000000000 +0100
+@@ -30,6 +30,7 @@
+ #include <linux/mtd/mtd.h>
+ #include <linux/mtd/partitions.h>
+ #include <linux/err.h>
++#include <linux/root_dev.h>
+
+ /* Our partition linked list */
+ static LIST_HEAD(mtd_partitions);
+@@ -642,6 +643,14 @@
+ if (IS_ERR(slave))
+ return PTR_ERR(slave);
+
++ if (!strcmp(parts[i].name, "rootfs")) {
++ if (ROOT_DEV == 0) {
++ printk(KERN_NOTICE "mtd: partition \"rootfs\" "
++ "set to be root filesystem\n");
++ ROOT_DEV = MKDEV(MTD_BLOCK_MAJOR, slave->mtd.index);
++ }
++ }
++
+ mutex_lock(&mtd_partitions_mutex);
+ list_add(&slave->list, &mtd_partitions);
+ mutex_unlock(&mtd_partitions_mutex);
diff --git a/target/mipsel/Makefile b/target/mipsel/Makefile
index b04bc9011..7577faf1e 100644
--- a/target/mipsel/Makefile
+++ b/target/mipsel/Makefile
@@ -6,7 +6,7 @@ include $(TOPDIR)/mk/kernel.mk
include $(TOPDIR)/mk/modules.mk
include $(TOPDIR)/mk/kernel-build.mk
-ifeq (${ADK_TARGET_SYSTEM_LINKSYS_WRT54G},y)
+ifeq (${ADK_KERNEL_BCM47XX},y)
CUSTOM_ROOTFSSQUASHFS_BUILD=1
endif
@@ -19,9 +19,9 @@ tools-compile:
$(MAKE) -C ../tools/trx
$(MAKE) -C ../tools/addpattern
$(MAKE) -C ../tools/srec2bin
- $(MAKE) -C ../tools/squashfs prepare compile install
+ $(MAKE) -C ../tools/squashfs
-ifeq ($(ADK_TARGET_SYSTEM_LINKSYS_WRT54G),y)
+ifeq ($(ADK_KERNEL_BCM47XX),y)
kernel-install: tools-compile
${TARGET_CROSS}objcopy ${OSTRIP} -S ${LINUX_DIR}/vmlinub.elf \
${BUILD_DIR}/${TARGET_KERNEL}
@@ -32,9 +32,8 @@ ${BUILD_DIR}/${ROOTFSSQUASHFS}: ${BUILD_DIR}/root.squashfs
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 $@~ ${BUILD_DIR}/${TARGET_KERNEL}.bin.gz \
- -a 1024 ${BUILD_DIR}/root.squashfs
- PATH='${TARGET_PATH}' addpattern -4 -p W54G -v v4.20.6 -g -i $@~ -o $@
+ 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)
@@ -83,7 +82,7 @@ ifeq ($(ADK_TARGET_SYSTEM_LINKSYS_AG241),y)
@echo 'tftp> binary'
@echo 'tftp> put $(BIN_DIR)/${TARGET_KERNEL} upgrade_code.bin'
endif
-ifeq ($(ADK_TARGET_SYSTEM_LINKSYS_WRT54G),y)
+ifeq ($(ADK_KERNEL_BCM47XX),y)
@echo 'Type following on the CFE prompt to boot the kernel:'
@echo 'CFE> boot -elf -tftp 192.168.1.254:$(BIN_DIR)/${TARGET_KERNEL}'
endif
diff --git a/target/mipsel/sys-available/linksys-wrt54gs b/target/mipsel/sys-available/linksys-wrt54gs
new file mode 100644
index 000000000..82246843a
--- /dev/null
+++ b/target/mipsel/sys-available/linksys-wrt54gs
@@ -0,0 +1,13 @@
+config ADK_TARGET_SYSTEM_LINKSYS_WRT54GS
+ bool "Linksys WRT54GS"
+ select ADK_mipsel
+ 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)
+