Skip to content

Commit

Permalink
mvebu: add support for the Linksys WRT1900ACS (Shelby)
Browse files Browse the repository at this point in the history
Signed-off-by: Imre Kaloz <[email protected]>

SVN-Revision: 47164
  • Loading branch information
kaloz committed Oct 8, 2015
1 parent b345461 commit 8bb23cf
Show file tree
Hide file tree
Showing 12 changed files with 370 additions and 7 deletions.
2 changes: 1 addition & 1 deletion target/linux/mvebu/base-files/etc/init.d/linksys_recovery
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ boot() {
. /lib/mvebu.sh

case $(mvebu_board_name) in
armada-385-linksys-caiman|armada-385-linksys-cobra|armada-xp-linksys-mamba)
armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-shelby|armada-xp-linksys-mamba)
# make sure auto_recovery in uboot is always on
AUTO_RECOVERY_ENA="`fw_printenv -n auto_recovery`"
if [ "$AUTO_RECOVERY_ENA" != "yes" ] ; then
Expand Down
5 changes: 5 additions & 0 deletions target/linux/mvebu/base-files/etc/uci-defaults/01_leds
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ armada-385-linksys-cobra)
ucidef_set_led_usbdev "usb2" "USB2" "pca963x:cobra:white:usb2" "1-1"
ucidef_set_led_usbdev "usb3" "USB3" "pca963x:cobra:white:usb3_1" "2-1"
;;
armada-385-linksys-shelby)
ucidef_set_led_netdev "wan" "WAN" "pca963x:shelby:white:wan" "eth0"
ucidef_set_led_usbdev "usb2" "USB2" "pca963x:shelby:white:usb2" "1-1"
ucidef_set_led_usbdev "usb3" "USB3" "pca963x:shelby:white:usb3_1" "2-1"
;;
armada-xp-linksys-mamba)
ucidef_set_led_netdev "wan" "WAN" "mamba:white:wan" "eth1"
ucidef_set_led_usbdev "usb2" "USB2" "mamba:white:usb2" "1-1"
Expand Down
3 changes: 3 additions & 0 deletions target/linux/mvebu/base-files/etc/uci-defaults/02_network
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ armada-385-linksys-caiman)
armada-385-linksys-cobra)
ucidef_set_interfaces_lan_wan "eth1" "eth0"
;;
armada-385-linksys-shelby)
ucidef_set_interfaces_lan_wan "eth1" "eth0"
;;
armada-xp-linksys-mamba)
ucidef_set_interfaces_lan_wan "eth0" "eth1"
ucidef_add_switch "switch0" "1" "1"
Expand Down
2 changes: 1 addition & 1 deletion target/linux/mvebu/base-files/etc/uci-defaults/03_wireless
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
board=$(mvebu_board_name)

case "$board" in
armada-385-linksys-caiman|armada-385-linksys-cobra|armada-xp-linksys-mamba)
armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-shelby|armada-xp-linksys-mamba)
SKU=$(strings /dev/mtd3|sed -ne 's/^cert_region=//p')
case "$SKU" in
AP)
Expand Down
3 changes: 3 additions & 0 deletions target/linux/mvebu/base-files/lib/mvebu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ mvebu_board_detect() {
*"Linksys WRT1900ACv2")
name="armada-385-linksys-cobra"
;;
*"Linksys WRT1900ACS")
name="armada-385-linksys-shelby"
;;
*"Marvell Armada 385 Access Point Development Board")
name="armada-385-db-ap"
;;
Expand Down
2 changes: 1 addition & 1 deletion target/linux/mvebu/base-files/lib/preinit/06_set_iface_mac
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ preinit_set_mac_address() {
ifconfig eth0 hw ether $mac 2>/dev/null
ifconfig eth1 hw ether $mac 2>/dev/null
;;
armada-385-linksys-caiman|armada-385-linksys-cobra)
armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-shelby)
mac=$(mtd_get_mac_ascii devinfo hw_mac_addr)
mac_wan=$(macaddr_setbit_la "$mac")
ifconfig eth1 hw ether $mac 2>/dev/null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ preinit_mount_syscfg() {
. /lib/mvebu.sh

case $(mvebu_board_name) in
armada-385-linksys-caiman|armada-385-linksys-cobra|armada-xp-linksys-mamba)
armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-shelby|armada-xp-linksys-mamba)
needs_recovery=0
ubiattach -m 8 || needs_recovery=1
if [ $needs_recovery -eq 1 ]
Expand Down
4 changes: 2 additions & 2 deletions target/linux/mvebu/base-files/lib/upgrade/platform.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ platform_check_image() {
[ "$#" -gt 1 ] && return 1

case "$board" in
armada-385-linksys-caiman|armada-385-linksys-cobra|armada-xp-linksys-mamba)
armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-shelby|armada-xp-linksys-mamba)
[ "$magic_long" != "27051956" -a "$magic_long" != "73797375" ] && {
echo "Invalid image type."
return 1
Expand All @@ -30,7 +30,7 @@ platform_do_upgrade() {
local board=$(mvebu_board_name)

case "$board" in
armada-385-linksys-caiman|armada-385-linksys-cobra|armada-xp-linksys-mamba)
armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-shelby|armada-xp-linksys-mamba)
platform_do_upgrade_linksys "$ARGV"
;;
*)
Expand Down

Large diffs are not rendered by default.

11 changes: 11 additions & 0 deletions target/linux/mvebu/image/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ $(eval $(call NANDProfile,XP-GP,armada-xp-gp,512KiB,4096))
$(eval $(call NANDProfile,Mamba,armada-xp-linksys-mamba,128KiB,2048,512,2048))
$(eval $(call NANDProfile,Caiman,armada-385-linksys-caiman,128KiB,2048,512,2048))
$(eval $(call NANDProfile,Cobra,armada-385-linksys-cobra,128KiB,2048,512,2048))
$(eval $(call NANDProfile,Shelby,armada-385-linksys-shelby,128KiB,2048,512,2048))

# Boards with large NOR, where we want to use UBI
$(eval $(call UBINORProfile,OpenBlocks-AX-3-4,armada-xp-openblocks-ax3-4,128KiB))
Expand Down Expand Up @@ -174,6 +175,16 @@ define Image/Build/Profile/Mamba/squashfs
) > $(BIN_DIR)/$(IMG_PREFIX)-armada-xp-linksys-mamba-squashfs-factory.img
endef

# Shelby: Linksys WRT1900ACS
define Image/Build/Profile/Shelby/squashfs
$(call Image/Build/UbinizeImage,armada-385-linksys-shelby,,squashfs, -p 128KiB -m 2048 -s 512 -O 2048)
( \
dd if=$(KDIR)/uImage-armada-385-linksys-shelby bs=6M conv=sync; \
dd if=$(KDIR)/$(IMG_PREFIX)-armada-385-linksys-shelby-squashfs-ubinized.bin \
bs=2048 conv=sync; \
) > $(BIN_DIR)/$(IMG_PREFIX)-armada-385-linksys-shelby-squashfs-factory.img
endef

###
### Marvell
###
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -501,6 +501,8 @@ dtb-$(CONFIG_MACH_ARMADA_375) += \
@@ -501,6 +501,9 @@ dtb-$(CONFIG_MACH_ARMADA_375) += \
dtb-$(CONFIG_MACH_ARMADA_38X) += \
armada-385-db.dtb \
armada-385-db-ap.dtb \
+ armada-385-linksys-caiman.dtb \
+ armada-385-linksys-cobra.dtb \
+ armada-385-linksys-shelby.dtb \
armada-385-rd.dtb
dtb-$(CONFIG_MACH_ARMADA_XP) += \
armada-xp-axpwifiap.dtb \
20 changes: 20 additions & 0 deletions target/linux/mvebu/profiles/linksys.mk
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,23 @@ define Profile/Mamba/Description
endef

$(eval $(call Profile,Mamba))


define Profile/Shelby
NAME:=Linksys WRT1900ACS (Shelby)
PACKAGES:= \
kmod-usb2 kmod-usb3 kmod-usb-storage \
kmod-i2c-core kmod-i2c-mv64xxx \
kmod-ata-core kmod-ata-mvebu-ahci \
kmod-rtc-armada38x kmod-thermal-armada \
kmod-gpio-button-hotplug kmod-hwmon-tmp421 \
kmod-leds-pca963x \
kmod-ledtrig-usbdev kmod-mwlwifi wpad-mini \
swconfig
endef

define Profile/Shelby/Description
Package set compatible with the Linksys WRT1900ACS (Shelby).
endef

$(eval $(call Profile,Shelby))

0 comments on commit 8bb23cf

Please sign in to comment.