From 67e6461ad70d367fbd182911abe384a0b6f68a9a Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Fri, 17 Aug 2012 17:56:07 +0000 Subject: [PATCH] ramips: add board alias for the ALL0239-3G Generate image for the ALL0239-3G which can be flashed through the chipset-vendor SDK based firmware's web-interface and bootloader. The bootloader seems to ignore uImage checksum errors, but does complain about them once the 0xDEADC0DE was replaced by an actual JFFS2 page. I'm working on implementing fixtrx for uImage in the mtd package to solve this. Signed-off-by: Daniel Golle SVN-Revision: 33206 --- target/linux/ramips/base-files/etc/diag.sh | 1 + .../etc/hotplug.d/firmware/10-rt2x00-eeprom | 1 + .../ramips/base-files/etc/uci-defaults/leds | 1 + .../base-files/etc/uci-defaults/network | 5 +++-- .../base-files/lib/preinit/06_set_iface_mac | 1 + target/linux/ramips/base-files/lib/ramips.sh | 3 +++ .../ramips/base-files/lib/upgrade/platform.sh | 1 + .../mips/include/asm/mach-ralink/machine.h | 1 + .../arch/mips/ralink/rt305x/mach-hw550-3g.c | 3 +++ target/linux/ramips/image/Makefile | 21 +++++++++++++++++++ 10 files changed, 36 insertions(+), 2 deletions(-) diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index 6c86513755c..4720130252f 100755 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -51,6 +51,7 @@ get_status_led() { fonera20n) status_led="fonera20n:green:power" ;; + all0239-3g|\ hw550-3g) status_led="hw550-3g:green:status" ;; diff --git a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom index 2a405195c8e..5dadd710181 100644 --- a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom +++ b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom @@ -53,6 +53,7 @@ case "$FIRMWARE" in ;; 3g-6200n | \ + all0239-3g | \ all0256n | \ all5002 | \ argus-atp52b | \ diff --git a/target/linux/ramips/base-files/etc/uci-defaults/leds b/target/linux/ramips/base-files/etc/uci-defaults/leds index 32fae2507c7..c09751daddd 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/leds +++ b/target/linux/ramips/base-files/etc/uci-defaults/leds @@ -49,6 +49,7 @@ case $board in set_usb_led "fonera20n:orange:usb" set_wifi_led "fonera20n:orange:wifi" ;; + all0239-3g|\ hw550-3g) set_usb_led "hw550-3g:green:usb" ;; diff --git a/target/linux/ramips/base-files/etc/uci-defaults/network b/target/linux/ramips/base-files/etc/uci-defaults/network index e7e93345a0f..106a61352c1 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/network +++ b/target/linux/ramips/base-files/etc/uci-defaults/network @@ -152,9 +152,10 @@ ramips_setup_macs() wan_mac=$(ramips_get_mac_binary factory 32772) ;; + all0239-3g | \ w502u) - lan_mac=$(ramips_get_mac_binary factory 40) - wan_mac=$(ramips_get_mac_binary factory 46) + lan_mac=$(ramips_get_mac_binary factory 40) + wan_mac=$(ramips_get_mac_binary factory 46) ;; wl341v3) diff --git a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac index 7709b3b474c..8c2b0395474 100644 --- a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac +++ b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac @@ -34,6 +34,7 @@ preinit_set_mac_address() { mac=$(ramips_get_mac_binary devdata 46) ifconfig eth0 hw ether $mac 2>/dev/null ;; + all0239-3g |\ all0256n |\ all5002 |\ dir-615-h1 |\ diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index fb2a573bf33..b07f4e94666 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -50,6 +50,9 @@ ramips_board_name() { *"Edimax 3g-6200n") name="3g-6200n" ;; + *"Allnet ALL0239-3G") + name="all0239-3g" + ;; *"Allnet ALL0256N") name="all0256n" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 1b5d5464391..d7380f02970 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -15,6 +15,7 @@ platform_check_image() { case "$board" in 3g-6200n | \ + all0239-3g | \ all0256n | \ all5002 | \ bc2 | \ diff --git a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h index d09bd4101da..89b437398ed 100644 --- a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h +++ b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h @@ -35,6 +35,7 @@ enum ramips_mach_type { RAMIPS_MACH_WL_330N3G, /* Asus WL-330N3G */ /* RT3052 based machines */ + RAMIPS_MACH_ALL0239_3G, /* ALL0239-3G */ RAMIPS_MACH_ARGUS_ATP52B, /* Argus ATP-52B */ RAMIPS_MACH_BC2, /* NexAira BC2 */ RAMIPS_MACH_DAP_1350, /* D-Link DAP-1350 */ diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-hw550-3g.c b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-hw550-3g.c index 4ebcefd523f..b274b917da5 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-hw550-3g.c +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-hw550-3g.c @@ -100,3 +100,6 @@ static void __init hw550_3g_init(void) MIPS_MACHINE(RAMIPS_MACH_HW550_3G, "HW550-3G", "Aztech HW550-3G", hw550_3g_init); + +MIPS_MACHINE(RAMIPS_MACH_ALL0239_3G, "ALL0239-3G", "Allnet ALL0239-3G", + hw550_3g_init); diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile index 344186361da..e7f40747869 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -60,6 +60,18 @@ define MkImageLzma $(call MkImage,lzma,$(KDIR)/vmlinux-$(1).bin.lzma,$(KDIR)/vmlinux-$(1).uImage,$(3)) endef +define MkCombineduImage + $(call PatchKernelLzma,$(2),$(3)) + if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.lzma"` -gt `expr $(4) - 64` ]; then \ + echo "Warning: $(KDIR)/vmlinux-$(2).bin.lzma is too big"; \ + else if [ `stat -c%s "$(KDIR)/root.$(1)"` -gt $(5) ]; then \ + echo "Warning: $(KDIR)/root.$(1) is too big"; \ + else \ + ( dd if=$(KDIR)/vmlinux-$(2).bin.lzma bs=`expr $(4) - 64` conv=sync ; dd if=$(KDIR)/root.$(1) ) > $(KDIR)/vmlinux-$(2).bin.lzma.combined ; \ + fi ; fi + $(call MkImage,lzma,$(KDIR)/vmlinux-$(2).bin.lzma.combined,$(call sysupname,$(1),$(2)),$(6)) +endef + define CatFiles if [ `stat -c%s "$(1)"` -gt $(2) ]; then \ echo "Warning: $(1) is too big"; \ @@ -125,6 +137,10 @@ define BuildFirmware/GENERIC_8M/initramfs $(call BuildFirmware/Generic/initramfs,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_8M))) endef +define BuildFirmware/UIMAGE_8M + $(call MkCombineduImage,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_8M)),$(kernel_size_8M),$(rootfs_size_8M),$(7)) +endef + mtdlayout_edimax_3g6200n=192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,896k(kernel),2752k(rootfs),128k@0x3e0000(cimage)ro,3648k@0x50000(firmware) define BuildFirmware/3G6200N $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_edimax_3g6200n)),917504,2818048) @@ -367,6 +383,10 @@ define Image/Build/Profile/3G6200N $(call Image/Build/Template/$(fs_squash)/$(1),3G6200N,3g-6200n,3G-6200N,ttyS1,57600,phys) endef +define Image/Build/Profile/ALL02393G + $(call Image/Build/Template/$(fs_squash)/$(1),UIMAGE_8M,all0239-3g,ALL0239-3G,ttyS1,57600,phys) +endef + define Image/Build/Profile/ALL0256N $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,all0256n,ALL0256N,ttyS1,57600,spi) endef @@ -513,6 +533,7 @@ endef ifeq ($(CONFIG_RALINK_RT305X),y) define Image/Build/Profile/Default $(call Image/Build/Profile/3G6200N,$(1)) + $(call Image/Build/Profile/ALL02393G,$(1)) $(call Image/Build/Profile/ALL0256N,$(1)) $(call Image/Build/Profile/ALL5002,$(1)) $(call Image/Build/Profile/ARGUS_ATP52B,$(1))