summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2011-04-26 22:44:06 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2011-04-26 22:44:06 +0200
commitc7329ac035d6f4699caa2d7d332cef7b688f19a4 (patch)
tree6e3e652ade26a2b5d17733d2954bf670dc4a40a7
parent3cbe6e058f5475222e0136188491df89d4a4f9ad (diff)
add model support for broadcom devices
-rw-r--r--mk/kernel-vars.mk8
-rw-r--r--target/config/Config.in12
-rw-r--r--target/config/Config.in.tools4
-rw-r--r--target/linux/config/Config.in.flash2
-rw-r--r--target/linux/config/Config.in.netdevice4
-rw-r--r--target/linux/patches/2.6.37/brcm.patch16
-rw-r--r--target/mips/Makefile2
-rw-r--r--target/mips/sys-available/broadcom-bcm47xx (renamed from target/mips/sys-available/linksys-wrt54g)9
-rw-r--r--target/mips/sys-available/linksys-wrt54gs14
9 files changed, 42 insertions, 29 deletions
diff --git a/mk/kernel-vars.mk b/mk/kernel-vars.mk
index e730f561d..346a26fc9 100644
--- a/mk/kernel-vars.mk
+++ b/mk/kernel-vars.mk
@@ -7,3 +7,11 @@ KERNEL_MAKE_OPTS+= CROSS_COMPILE="$(TARGET_CROSS)" ARCH=$(ARCH) \
CC="$(TARGET_CC)" HOSTCC="${CC_FOR_BUILD}" \
HOSTCFLAGS='${CFLAGS_FOR_BUILD}'
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}'
diff --git a/target/config/Config.in b/target/config/Config.in
index cfa53894a..4082b9049 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -80,6 +80,18 @@ config ADK_TARGET_ABI_N64
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
source "target/config/Config.in.native"
endif
diff --git a/target/config/Config.in.tools b/target/config/Config.in.tools
index 8ed343d2a..31246458d 100644
--- a/target/config/Config.in.tools
+++ b/target/config/Config.in.tools
@@ -1,5 +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 "-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 ""
diff --git a/target/linux/config/Config.in.flash b/target/linux/config/Config.in.flash
index 1ca289b75..91cfc9140 100644
--- a/target/linux/config/Config.in.flash
+++ b/target/linux/config/Config.in.flash
@@ -44,7 +44,7 @@ config ADK_KERNEL_MTD_AR7_PARTS
config ADK_KERNEL_MTD_CFI_INTELEXT
boolean
- default y if ADK_TARGET_SYSTEM_LINKSYS_WRT54G
+ default y if ADK_TARGET_SYSTEM_BROADCOM_BCM47XX
default n
config ADK_TARGET_NAND
diff --git a/target/linux/config/Config.in.netdevice b/target/linux/config/Config.in.netdevice
index bbd2990e9..082343a14 100644
--- a/target/linux/config/Config.in.netdevice
+++ b/target/linux/config/Config.in.netdevice
@@ -115,8 +115,7 @@ config ADK_KERNEL_B44
select ADK_KERNEL_NET_ETHERNET
select ADK_KERNEL_NET_PCI
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
help
@@ -345,6 +344,7 @@ config ADK_KPACKAGE_KMOD_B43
prompt "kmod-b43..................... Broadcom B43xx wireless cards"
tristate
select ADK_KPACKAGE_KMOD_FW_LOADER
+ select ADK_KPACKAGE_KMOD_MAC80211
depends on ADK_TARGET_WITH_SSB || ADK_TARGET_WITH_MINIPCI
default n
help
diff --git a/target/linux/patches/2.6.37/brcm.patch b/target/linux/patches/2.6.37/brcm.patch
index 0dfcf4b06..c484dc838 100644
--- a/target/linux/patches/2.6.37/brcm.patch
+++ b/target/linux/patches/2.6.37/brcm.patch
@@ -9,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
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-04-26 20:26:19.917673199 +0200
-@@ -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
+ * License. See the file "COPYING" in the main directory of this archive
@@ -29,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>
+
+#define NVRAM_FLASH_SIZE 0x10000
-+#define CFGFS_FLASH_SIZE (64 * 1024)
++#define CFGFS_FLASH_SIZE (128 * 1024)
+
+static struct mtd_partition bcm47xx_partitions[] = {
+#define SLOT_CFE 0
@@ -111,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);
+
+ /* 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;
-+ 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;
+ posn = flash_size;
diff --git a/target/mips/Makefile b/target/mips/Makefile
index 66ac4af98..abb98a107 100644
--- a/target/mips/Makefile
+++ b/target/mips/Makefile
@@ -21,7 +21,7 @@ tools-compile:
$(MAKE) -C ../tools/srec2bin all
$(MAKE) -C ../tools/squashfs all
-ifeq ($(ADK_KERNEL_BCM47XX),y)
+ifeq ($(ADK_TARGET_SYSTEM_BROADCOM_BCM47XX),y)
kernel-install: tools-compile
${TARGET_CROSS}objcopy ${OSTRIP} -S ${LINUX_DIR}/vmlinuz.elf \
${BUILD_DIR}/${TARGET_KERNEL}
diff --git a/target/mips/sys-available/linksys-wrt54g b/target/mips/sys-available/broadcom-bcm47xx
index 4a48a2c08..5a8df9df2 100644
--- a/target/mips/sys-available/linksys-wrt54g
+++ b/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_little
- select ADK_linksys_wrt54g
+ select ADK_broadcom_bcm47xx
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 WRT54G WLAN router.
- (Broadcom BCM47xx platform)
+ Broadcom BCM47xx systems.
diff --git a/target/mips/sys-available/linksys-wrt54gs b/target/mips/sys-available/linksys-wrt54gs
deleted file mode 100644
index 0ad417828..000000000
--- a/target/mips/sys-available/linksys-wrt54gs
+++ /dev/null
@@ -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)
-