From 098f7156cc68d07a8eed9574c76b90c7ade77026 Mon Sep 17 00:00:00 2001 From: Christian Lamparter Date: Wed, 5 Oct 2016 14:53:11 +0200 Subject: ar71xx: add support for the Airtight C-60 This patch adds support for the Airtight C-60. SOC: Atheros AR9344 rev 2 (CPU:560.000MHz) RAM: 128 MiB NOR: MX25L3205D 4MiB NAND: ST Micro NAND 32MiB 3,3V 8-bit SW-NET: AR8327N (2 Ports) WLAN1: Dual-Band AR9340 Rev:2 (built-in SoC) WLAN2: Dual-Band AR9300 Rev:4 PCIe Chip The switch is setup for an accesspoint: LAN1: (gigabit) is the wan-port. LAN2: (fast ethernet) is bridged with the br-lan. Flashing Guide (via initramfs): 1. Connect a PC to the serial port of the C-60. power up the C-60. Enter u-boot command prompt: #> nand erase #> setenv bootcmd "bootm 0x9f060000" #> saveenv #> setenv ipaddr 192.168.1.1 #> setenv netmask 255.255.255.0 #> setenv serverip 192.168.1.100 #> setenv bootfile lede-ar71xx-nand-c-60-initramfs-kernel.bin #> tftpboot #> bootm 2. Wait for the C-60 to boot LEDE. On the root prompt. Enter: # ubiformat /dev/mtd4 # ubiattach -p /dev/mtd4 3. After that copy the sysupgrade.tar onto the router and run: # sysupgrade sysupgrade.tar to flash the image. Special thanks to Chris Blake . He provided a C-60 unit and he helped with debugging the switch, LEDs and platfrom support. Signed-off-by: Christian Lamparter --- target/linux/ar71xx/base-files/etc/board.d/01_leds | 4 ++++ .../linux/ar71xx/base-files/etc/board.d/02_network | 4 ++++ target/linux/ar71xx/base-files/etc/diag.sh | 3 ++- .../etc/hotplug.d/firmware/10-ath9k-eeprom | 3 ++- target/linux/ar71xx/base-files/lib/ar71xx.sh | 3 +++ .../base-files/lib/preinit/05_set_iface_mac_ar71xx | 3 ++- .../ar71xx/base-files/lib/upgrade/platform.sh | 24 ++++++++++++---------- 7 files changed, 30 insertions(+), 14 deletions(-) (limited to 'target/linux/ar71xx/base-files') diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds b/target/linux/ar71xx/base-files/etc/board.d/01_leds index 308a050..5011af6 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/01_leds +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds @@ -92,6 +92,10 @@ c-55) ucidef_set_led_wlan "wlan_amber" "WLAN_AMBER" "$board:amber:wlan" "phy0tpt" ucidef_set_led_wlan "wlan_green" "WLAN_GREEN" "$board:green:wlan" "phy1tpt" ;; +c-60) + ucidef_set_led_wlan "wlan1_green" "WLAN1_GREEN" "$board:green:wlan1" "phy0tpt" + ucidef_set_led_wlan "wlan2_green" "WLAN2_GREEN" "$board:green:wlan2" "phy1tpt" + ;; cap4200ag) ucidef_set_led_default "lan_green" "LAN_GREEN" "senao:green:lan" "1" ucidef_set_led_wlan "wlan_amber" "WLAN_AMBER" "senao:amber:wlan" "phy0tpt" diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network b/target/linux/ar71xx/base-files/etc/board.d/02_network index 4ef43cf..f720767 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/02_network +++ b/target/linux/ar71xx/base-files/etc/board.d/02_network @@ -199,6 +199,10 @@ ar71xx_setup_interfaces() ucidef_add_switch "switch0" \ "0@eth1" "1:lan" "3:lan" ;; + c-60) + ucidef_add_switch "switch0" \ + "0@eth0" "3:wan" "4:lan" + ;; cap324) ucidef_set_interface_lan "eth0" "dhcp" ;; diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index d5ddb51..0d069ec 100644 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -73,7 +73,8 @@ get_status_led() { cap324) status_led="pcs:green:power" ;; - c-55) + c-55|\ + c-60) status_led="$board:green:pwr" ;; cap4200ag) diff --git a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index 3141625..945167b 100644 --- a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -53,7 +53,8 @@ board=$(ar71xx_board_name) case "$FIRMWARE" in "soc_wmac.eeprom") case $board in - c-55) + c-55|\ + c-60) ath9k_eeprom_extract "art" 4096 2048 ath9k_patch_firmware_mac $(macaddr_add $(mtd_get_mac_binary art 0) +1) ;; diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index a8ea7d4..940c1c9 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -482,6 +482,9 @@ ar71xx_board_detect() { *C-55) name="c-55" ;; + *C-60) + name="c-60" + ;; *CAP4200AG) name="cap4200ag" ;; diff --git a/target/linux/ar71xx/base-files/lib/preinit/05_set_iface_mac_ar71xx b/target/linux/ar71xx/base-files/lib/preinit/05_set_iface_mac_ar71xx index 60e2787..50f59de 100644 --- a/target/linux/ar71xx/base-files/lib/preinit/05_set_iface_mac_ar71xx +++ b/target/linux/ar71xx/base-files/lib/preinit/05_set_iface_mac_ar71xx @@ -22,7 +22,8 @@ fetch_mac_from_mtd() { preinit_set_mac_address() { case $(ar71xx_board_name) in - c-55) + c-55|\ + c-60) mac_lan=$(mtd_get_mac_binary art 0) [ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 010442c..7c554e3 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -424,6 +424,14 @@ platform_check_image() { tew-673gru) dir825b_check_image "$1" && return 0 ;; + c-60|\ + nbg6716|\ + r6100|\ + wndr3700v4|\ + wndr4300) + nand_do_platform_check $board $1 + return $? + ;; cpe210|\ cpe510) tplink_pharos_check_image "$1" && return 0 @@ -485,13 +493,6 @@ platform_check_image() { return 0 ;; - nbg6716|\ - r6100|\ - wndr3700v4|\ - wndr4300) - nand_do_platform_check $board $1 - return $? - ;; tube2h) alfa_check_image "$1" && return 0 return 1 @@ -537,16 +538,17 @@ platform_pre_upgrade() { local board=$(ar71xx_board_name) case "$board" in - mr18|\ - z1) - merakinand_do_upgrade "$1" - ;; + c-60|\ nbg6716|\ r6100|\ wndr3700v4|\ wndr4300) nand_do_upgrade "$1" ;; + mr18|\ + z1) + merakinand_do_upgrade "$1" + ;; esac } -- cgit v1.1