From e90dc8d27221bf00daa7c49a986cc0bac6f2e070 Mon Sep 17 00:00:00 2001 From: Christian Lamparter Date: Sun, 17 Dec 2017 15:00:01 +0100 Subject: [PATCH] apm821xx: convert to device-tree board detection This patch converts all apm821xx devices to the device-tree board-detection method. All instances of the legacy boardnames (mbl,mr24,...) are converted to "vendor,device" identifier. The custom board-detection code in apm821xx.sh is removed as it no longer serves any purpose. Signed-off-by: Mathias Kresin Signed-off-by: Christian Lamparter --- .../apm821xx/base-files/etc/board.d/01_leds | 9 ++-- .../base-files/etc/board.d/02_network | 9 ++-- .../etc/hotplug.d/firmware/10-ath9k-eeprom | 4 +- .../linux/apm821xx/base-files/lib/apm821xx.sh | 43 ------------------- .../lib/preinit/01_preinit_do_apm821xx.sh | 9 ---- .../lib/preinit/05_set_iface_mac_apm821xx | 4 +- .../lib/preinit/05_set_preinit_iface_apm821xx | 2 - .../base-files/lib/preinit/79_move_config | 18 +++++--- .../base-files/lib/upgrade/platform.sh | 15 ++++--- target/linux/apm821xx/image/Makefile | 9 ++-- 10 files changed, 41 insertions(+), 81 deletions(-) delete mode 100755 target/linux/apm821xx/base-files/lib/apm821xx.sh delete mode 100644 target/linux/apm821xx/base-files/lib/preinit/01_preinit_do_apm821xx.sh diff --git a/target/linux/apm821xx/base-files/etc/board.d/01_leds b/target/linux/apm821xx/base-files/etc/board.d/01_leds index 3b5fb721ae..c218efa49b 100755 --- a/target/linux/apm821xx/base-files/etc/board.d/01_leds +++ b/target/linux/apm821xx/base-files/etc/board.d/01_leds @@ -7,7 +7,7 @@ board_config_update board=$(board_name) case "$board" in -mr24) +meraki,mr24) ucidef_set_led_netdev "wan" "WAN" "mr24:green:wan" "eth0" ucidef_set_led_wlan "wlan1" "WLAN1" "mr24:green:wifi1" "phy0assoc" ucidef_set_led_wlan "wlan2" "WLAN2" "mr24:green:wifi2" "phy0assoc" @@ -15,7 +15,7 @@ mr24) ucidef_set_led_wlan "wlan4" "WLAN4" "mr24:green:wifi4" "phy0tpt" ;; -mx60) +meraki,mx60) ucidef_set_led_switch "wan" "WAN" "mx60:green:wan" "switch0" "0x20" ucidef_set_led_switch "lan1" "LAN1" "mx60:green:lan1" "switch0" "0x10" ucidef_set_led_switch "lan2" "LAN2" "mx60:green:lan2" "switch0" "0x08" @@ -23,11 +23,12 @@ mx60) ucidef_set_led_switch "lan4" "LAN4" "mx60:green:lan4" "switch0" "0x02" ;; -mbl) +wd,mybooklive|\ +wd,mybooklive-duo) ucidef_set_led_ide "sata" "SATA" "mbl:blue:power" ;; -wndr4700) +netgear,wndr4700) ucidef_set_led_ide "sata" "SATA" "wndr4700:green:hd" ucidef_set_led_switch "wan_green" "WAN (green)" "wndr4700:green:wan" "switch0" "0x20" ucidef_set_led_netdev "wan_yellow" "WAN (yellow)" "wndr4700:yellow:wan" "eth0.2" "tx rx" diff --git a/target/linux/apm821xx/base-files/etc/board.d/02_network b/target/linux/apm821xx/base-files/etc/board.d/02_network index 03df7cb49f..6f4456e8a1 100755 --- a/target/linux/apm821xx/base-files/etc/board.d/02_network +++ b/target/linux/apm821xx/base-files/etc/board.d/02_network @@ -8,13 +8,14 @@ board_config_update board=$(board_name) case "$board" in -mbl|\ -mr24) +meraki,mr24|\ +wd,mybooklive|\ +wd,mybooklive-duo) ucidef_set_interface_lan "eth0" ;; -mx60|\ -wndr4700) +meraki,mx60|\ +netgear,wndr4700) ucidef_add_switch "switch0" \ "0@eth0" "4:lan" "3:lan" "2:lan" "1:lan" "5:wan" ;; diff --git a/target/linux/apm821xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/apm821xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index 4a7e1c0b19..7a13a0afa8 100644 --- a/target/linux/apm821xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/apm821xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -52,7 +52,7 @@ board=$(board_name) case "$FIRMWARE" in "pci_wmac0.eeprom") case $board in - wndr4700) + netgear,wndr4700) . /lib/upgrade/nand.sh if [ -n "$(nand_find_volume ubi0 caldata)" ]; then @@ -70,7 +70,7 @@ case "$FIRMWARE" in "pci_wmac1.eeprom") case $board in - wndr4700) + netgear,wndr4700) . /lib/upgrade/nand.sh if [ -n "$(nand_find_volume ubi0 caldata)" ]; then diff --git a/target/linux/apm821xx/base-files/lib/apm821xx.sh b/target/linux/apm821xx/base-files/lib/apm821xx.sh deleted file mode 100755 index 8f0814b296..0000000000 --- a/target/linux/apm821xx/base-files/lib/apm821xx.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -APM821XX_BOARD_NAME= -APM821XX_MODEL= - -apm821xx_board_detect() { - local model - local name - - model=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /model/ {print $2}' /proc/cpuinfo) - - case "$model" in - *"Meraki MR24 Access Point") - name="mr24" - ;; - - *"Meraki MX60/MX60W Security Appliance") - name="mx60" - ;; - - *"MyBook Live"*) - name="mbl" - ;; - - *"Netgear WNDR4700/WNDR4720 Series") - name="wndr4700" - ;; - - *) - name="unknown" - ;; - esac - - [ -z "$name" ] && name="unknown" - - [ -z "$APM821XX_BOARD_NAME" ] && APM821XX_BOARD_NAME="$name" - [ -z "$APM821XX_MODEL" ] && APM821XX_MODEL="$model" - - [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/" - - echo "$APM821XX_BOARD_NAME" > /tmp/sysinfo/board_name - echo "$APM821XX_MODEL" > /tmp/sysinfo/model -} diff --git a/target/linux/apm821xx/base-files/lib/preinit/01_preinit_do_apm821xx.sh b/target/linux/apm821xx/base-files/lib/preinit/01_preinit_do_apm821xx.sh deleted file mode 100644 index 5675357533..0000000000 --- a/target/linux/apm821xx/base-files/lib/preinit/01_preinit_do_apm821xx.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -do_apm821xx() { - . /lib/apm821xx.sh - - apm821xx_board_detect -} - -boot_hook_add preinit_main do_apm821xx diff --git a/target/linux/apm821xx/base-files/lib/preinit/05_set_iface_mac_apm821xx b/target/linux/apm821xx/base-files/lib/preinit/05_set_iface_mac_apm821xx index ec540feb84..1a27930d24 100644 --- a/target/linux/apm821xx/base-files/lib/preinit/05_set_iface_mac_apm821xx +++ b/target/linux/apm821xx/base-files/lib/preinit/05_set_iface_mac_apm821xx @@ -4,8 +4,8 @@ preinit_set_mac_address() { . /lib/functions.sh case $(board_name) in - mr24|\ - mx60) + meraki,mr24|\ + meraki,mx60) mac_lan=$(mtd_get_mac_binary_ubi board-config 102) [ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan" ;; diff --git a/target/linux/apm821xx/base-files/lib/preinit/05_set_preinit_iface_apm821xx b/target/linux/apm821xx/base-files/lib/preinit/05_set_preinit_iface_apm821xx index 97ef6dc68f..a15a055a25 100644 --- a/target/linux/apm821xx/base-files/lib/preinit/05_set_preinit_iface_apm821xx +++ b/target/linux/apm821xx/base-files/lib/preinit/05_set_preinit_iface_apm821xx @@ -1,7 +1,5 @@ #!/bin/sh -. /lib/apm821xx.sh - apm821xx_set_preinit_iface() { ifname=eth0 } diff --git a/target/linux/apm821xx/base-files/lib/preinit/79_move_config b/target/linux/apm821xx/base-files/lib/preinit/79_move_config index 3ca8b0a71c..5d33feb916 100644 --- a/target/linux/apm821xx/base-files/lib/preinit/79_move_config +++ b/target/linux/apm821xx/base-files/lib/preinit/79_move_config @@ -5,12 +5,18 @@ BOOTPART=/dev/sda1 move_config() { . /lib/functions.sh - [ "$(board_name)" = "mbl" ] || return - if [ -b $BOOTPART ]; then - mkdir -p /boot - mount -t ext4 -o rw,noatime $BOOTPART /boot - [ -f /boot/sysupgrade.tgz ] && mv -f /boot/sysupgrade.tgz / - fi + case "$(board_name)" in + wd,mybooklive|\ + wd,mybooklive-duo) + if [ -b $BOOTPART ]; then + mkdir -p /boot + mount -t ext4 -o rw,noatime $BOOTPART /boot + [ -f /boot/sysupgrade.tgz ] && mv -f /boot/sysupgrade.tgz / + fi + ;; + *) + ;; + esac } boot_hook_add preinit_mount_root move_config diff --git a/target/linux/apm821xx/base-files/lib/upgrade/platform.sh b/target/linux/apm821xx/base-files/lib/upgrade/platform.sh index 7c9c413b42..5d2eee4ca3 100755 --- a/target/linux/apm821xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/apm821xx/base-files/lib/upgrade/platform.sh @@ -7,7 +7,8 @@ platform_check_image() { local board=$(board_name) case "$board" in - mbl) + wd,mybooklive|\ + wd,mybooklive-duo) mbl_do_platform_check "$1" return $?; ;; @@ -21,9 +22,9 @@ platform_pre_upgrade() { local board=$(board_name) case "$board" in - mr24|\ - mx60|\ - wndr4700) + meraki,mr24|\ + meraki,mx60|\ + netgear,wndr4700) nand_do_upgrade "$1" ;; @@ -36,7 +37,8 @@ platform_do_upgrade() { local board=$(board_name) case "$board" in - mbl) + wd,mybooklive|\ + wd,mybooklive-duo) mbl_do_upgrade "$ARGV" ;; @@ -50,7 +52,8 @@ platform_copy_config() { local board=$(board_name) case "$board" in - mbl) + wd,mybooklive|\ + wd,mybooklive-duo) mbl_copy_config ;; diff --git a/target/linux/apm821xx/image/Makefile b/target/linux/apm821xx/image/Makefile index 60f9fcda89..c012906eaf 100644 --- a/target/linux/apm821xx/image/Makefile +++ b/target/linux/apm821xx/image/Makefile @@ -14,7 +14,7 @@ define Device/Default KERNEL_ENTRY := 0x00000000 KERNEL_LOADADDR := 0x00000000 DEVICE_DTS_DIR := ../dts - SUPPORTED_DEVICES = $$(BOARD_NAME) + SUPPORTED_DEVICES = $(subst _,$(comma),$(1)) endef define Build/dtb @@ -84,6 +84,7 @@ define Device/meraki_mr24 MerakiNAND IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata UBINIZE_OPTS := -E 5 + SUPPORTED_DEVICES += mr24 endef TARGET_DEVICES += meraki_mr24 @@ -109,6 +110,7 @@ define Device/meraki_mx60 MerakiNAND IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata UBINIZE_OPTS := -E 5 + SUPPORTED_DEVICES += mx60 endef TARGET_DEVICES += meraki_mx60 @@ -176,6 +178,7 @@ define Device/netgear_wndr4700 NETGEAR_BOARD_ID := WNDR4700 NETGEAR_HW_ID := 29763875+128+256 UBINIZE_OPTS := -E 5 + SUPPORTED_DEVICES += wndr4700 endef TARGET_DEVICES += netgear_wndr4700 @@ -227,7 +230,7 @@ define Device/wd_mybooklive $(Device/MyBookLiveDefault) DEVICE_TITLE := Western Digital My Book Live DEVICE_DTS := wd-mybooklive - SUPPORTED_DEVICES := mbl + SUPPORTED_DEVICES += mbl endef TARGET_DEVICES += wd_mybooklive @@ -237,7 +240,7 @@ $(Device/MyBookLiveDefault) DEVICE_TITLE := Western Digital My Book Live Duo DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport kmod-usb-storage kmod-fs-vfat wpad-mini DEVICE_DTS := wd-mybooklive-duo - SUPPORTED_DEVICES := mbl + SUPPORTED_DEVICES += mbl endef TARGET_DEVICES += wd_mybooklive-duo