[source] apm821xx: convert to device-tree board detection

LEDE Commits lede-commits at lists.infradead.org
Wed Dec 20 16:06:33 PST 2017


mkresin pushed a commit to source.git, branch master:
https://git.lede-project.org/e90dc8d27221bf00daa7c49a986cc0bac6f2e070

commit e90dc8d27221bf00daa7c49a986cc0bac6f2e070
Author: Christian Lamparter <chunkeey at gmail.com>
AuthorDate: Sun Dec 17 15:00:01 2017 +0100

    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 <dev at kresin.me>
    Signed-off-by: Christian Lamparter <chunkeey at gmail.com>
---
 .../linux/apm821xx/base-files/etc/board.d/01_leds  |  9 +++--
 .../apm821xx/base-files/etc/board.d/02_network     |  9 +++--
 .../etc/hotplug.d/firmware/10-ath9k-eeprom         |  4 +-
 target/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 -
 .../apm821xx/base-files/lib/preinit/79_move_config | 18 ++++++---
 .../apm821xx/base-files/lib/upgrade/platform.sh    | 15 +++++---
 target/linux/apm821xx/image/Makefile               |  9 +++--
 10 files changed, 41 insertions(+), 81 deletions(-)

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 3b5fb72..c218efa 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 03df7cb..6f4456e 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 at 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 4a7e1c0..7a13a0a 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 8f0814b..0000000
--- 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 5675357..0000000
--- 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 ec540fe..1a27930 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 97ef6dc..a15a055 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 3ca8b0a..5d33feb 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 7c9c413..5d2eee4 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 60f9fcd..c012906 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



More information about the lede-commits mailing list