diff mbox series

[OpenWrt-Devel,v2,08/14] ath79/mikrotik: use standard caldata functions

Message ID 20200420133503.18700-9-hacks@slashdirt.org
State Accepted
Delegated to: Koen Vandeputte
Headers show
Series RouterBOARD sysfs driver for RouterBoot data | expand

Commit Message

Thibaut April 20, 2020, 1:34 p.m. UTC
With the implementation of a sysfs interface to access WLAN data, this
target no longer needs a special wrapper to extract caldata.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
---
 target/linux/ath79/image/common-mikrotik.mk        |  2 +-
 .../etc/hotplug.d/firmware/10-ath9k-eeprom         |  8 ++++---
 .../etc/hotplug.d/firmware/11-ath10k-caldata       |  7 +++---
 .../base-files/lib/functions/mikrotik-caldata.sh   | 26 ----------------------
 4 files changed, 10 insertions(+), 33 deletions(-)
 delete mode 100644 target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh

Comments

Adrian Schmutzler April 20, 2020, 2:02 p.m. UTC | #1
Hi,

> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org]
> On Behalf Of Thibaut VARÈNE
> Sent: Montag, 20. April 2020 15:35
> To: openwrt-devel@lists.openwrt.org
> Cc: Thibaut VARÈNE <hacks@slashdirt.org>; koen.vandeputte@ncentric.com
> Subject: [OpenWrt-Devel] [PATCH v2 08/14] ath79/mikrotik: use standard
> caldata functions
> 
> With the implementation of a sysfs interface to access WLAN data, this target
> no longer needs a special wrapper to extract caldata.
> 
> Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
> ---
>  target/linux/ath79/image/common-mikrotik.mk        |  2 +-
>  .../etc/hotplug.d/firmware/10-ath9k-eeprom         |  8 ++++---
>  .../etc/hotplug.d/firmware/11-ath10k-caldata       |  7 +++---
>  .../base-files/lib/functions/mikrotik-caldata.sh   | 26 ----------------------
>  4 files changed, 10 insertions(+), 33 deletions(-)  delete mode 100644
> target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh
> 
> diff --git a/target/linux/ath79/image/common-mikrotik.mk
> b/target/linux/ath79/image/common-mikrotik.mk
> index 292237c76a..4cf0aa1cac 100644
> --- a/target/linux/ath79/image/common-mikrotik.mk
> +++ b/target/linux/ath79/image/common-mikrotik.mk
> @@ -1,6 +1,6 @@
>  define Device/mikrotik
>  	DEVICE_VENDOR := MikroTik
> -	DEVICE_PACKAGES := rbextract rbcfg
> +	DEVICE_PACKAGES := rbcfg
>  	LOADER_TYPE := elf
>  	KERNEL := kernel-bin | append-dtb | lzma | loader-kernel
>  	KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | loader-
> kernel diff --git a/target/linux/ath79/mikrotik/base-
> files/etc/hotplug.d/firmware/10-ath9k-eeprom
> b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-
> eeprom
> index 86995de890..be2f6aec69 100644
> --- a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-
> ath9k-eeprom
> +++ b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-a
> +++ th9k-eeprom
> @@ -3,7 +3,9 @@
>  [ -e /lib/firmware/$FIRMWARE ] && exit 0
> 
>  . /lib/functions/caldata.sh
> -. /lib/functions/mikrotik-caldata.sh
> +
> +wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
> +mac_base="/sys/firmware/mikrotik/hard_config/mac_base"

I'd use the cat here already as well.
Note that in contrast to the 02_network case mentioned earlier, this one is _purely_ matter of taste, just wanted to mention it.
If don't like it, just forget about ...

Best

Adrian

> 
>  board=$(board_name)
> 
> @@ -11,8 +13,8 @@ case "$FIRMWARE" in
>  "ath9k-eeprom-ahb-18100000.wmac.bin")
>  	case $board in
>  	mikrotik,routerboard-wap-g-5hact2hnd)
> -		mikrotik_caldata_extract "hard_config" 0x1000 0x440
> -		ath9k_patch_mac $(macaddr_add $(mtd_get_mac_binary
> hard_config 0x10) +2)
> +		caldata_from_file $wlan_data 0x1000 0x440
> +		ath9k_patch_mac $(macaddr_add $(cat $mac_base) +2)
>  		;;
>  	*)
>  		caldata_die "board $board is not supported yet"
> diff --git a/target/linux/ath79/mikrotik/base-
> files/etc/hotplug.d/firmware/11-ath10k-caldata
> b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-
> caldata
> index 2521f0ad96..b486a5720d 100644
> --- a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-
> ath10k-caldata
> +++ b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-a
> +++ th10k-caldata
> @@ -3,7 +3,8 @@
>  [ -e /lib/firmware/$FIRMWARE ] && exit 0
> 
>  . /lib/functions/caldata.sh
> -. /lib/functions/mikrotik-caldata.sh
> +
> +wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
> 
>  board=$(board_name)
> 
> @@ -11,14 +12,14 @@ case "$FIRMWARE" in
>  "ath10k/cal-pci-0000:00:00.0.bin")
>  	case $board in
>  	mikrotik,routerboard-wap-g-5hact2hnd)
> -		mikrotik_caldata_extract "hard_config" 0x5000 0x844
> +		caldata_from_file $wlan_data 0x5000 0x844
>  		;;
>  	esac
>  	;;
>  "ath10k/cal-pci-0000:01:00.0.bin")
>  	case $board in
>  	mikrotik,routerboard-922uags-5hpacd)
> -		mikrotik_caldata_extract "hard_config" 0x5000 0x844
> +		caldata_from_file $wlan_data 0x5000 0x844
>  		;;
>  	esac
>  	;;
> diff --git a/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-
> caldata.sh b/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-
> caldata.sh
> deleted file mode 100644
> index 71a1bf02f3..0000000000
> --- a/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh
> +++ /dev/null
> @@ -1,26 +0,0 @@
> -# Copyright (C) 2019 Robert Marko <robimarko@gmail.com> -# Copyright
> (C) 2019 Roger Pueyo Centelles <roger.pueyo@guifi.net> -# -# Helper
> function to extract MAC addresses and calibration data for MikroTik -#
> -
> -mikrotik_caldata_extract() {
> -	local part=$1
> -	local offset=$(($2))
> -	local count=$(($3))
> -	local mtd
> -	local erdfile="/tmp/erd.bin"
> -	local fwfile="/lib/firmware/${FIRMWARE}"
> -
> -	[ -e $fwfile ] && exit 0
> -
> -	mtd=$(find_mtd_chardev $part)
> -	[ -n "$mtd" ] || caldata_die "no mtd device found for partition $part"
> -
> -	rbextract -e $mtd $erdfile
> -
> -	dd if=$erdfile of=$fwfile iflag=skip_bytes bs=$count skip=$offset
> count=1 2>/dev/null || \
> -		caldata_die "failed to extract calibration data from $mtd"
> -
> -	rm -f $erdfile
> -}
> --
> 2.11.0
> 
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Thibaut April 20, 2020, 2:08 p.m. UTC | #2
Hi,

> Le 20 avr. 2020 à 16:02, <mail@adrianschmutzler.de> <mail@adrianschmutzler.de> a écrit :
> 
> Hi,
> 
>> -----Original Message-----
>> From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org]
>> On Behalf Of Thibaut VARÈNE
>> Sent: Montag, 20. April 2020 15:35
>> To: openwrt-devel@lists.openwrt.org
>> Cc: Thibaut VARÈNE <hacks@slashdirt.org>; koen.vandeputte@ncentric.com
>> Subject: [OpenWrt-Devel] [PATCH v2 08/14] ath79/mikrotik: use standard
>> caldata functions
>> 
>> With the implementation of a sysfs interface to access WLAN data, this target
>> no longer needs a special wrapper to extract caldata.
[…]

>> kernel diff --git a/target/linux/ath79/mikrotik/base-
>> files/etc/hotplug.d/firmware/10-ath9k-eeprom
>> b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-
>> eeprom
>> index 86995de890..be2f6aec69 100644
>> --- a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-
>> ath9k-eeprom
>> +++ b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-a
>> +++ th9k-eeprom
>> @@ -3,7 +3,9 @@
>> [ -e /lib/firmware/$FIRMWARE ] && exit 0
>> 
>> . /lib/functions/caldata.sh
>> -. /lib/functions/mikrotik-caldata.sh
>> +
>> +wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
>> +mac_base="/sys/firmware/mikrotik/hard_config/mac_base"
> 
> I'd use the cat here already as well.
> Note that in contrast to the 02_network case mentioned earlier, this one is _purely_ matter of taste, just wanted to mention it.
> If don't like it, just forget about …

Well on the one hand you can’t do
wlan_data="$(cat /sys/firmware/mikrotik/hard_config/wlan_data)", 

so presentation-wise it looks nicer (to my eye) as it is now, but on the other hand for the sake of consistency with 02_network, it’s probably better to put the cat in the mac_base assignment as well

Will fix.

Thanks!
diff mbox series

Patch

diff --git a/target/linux/ath79/image/common-mikrotik.mk b/target/linux/ath79/image/common-mikrotik.mk
index 292237c76a..4cf0aa1cac 100644
--- a/target/linux/ath79/image/common-mikrotik.mk
+++ b/target/linux/ath79/image/common-mikrotik.mk
@@ -1,6 +1,6 @@ 
 define Device/mikrotik
 	DEVICE_VENDOR := MikroTik
-	DEVICE_PACKAGES := rbextract rbcfg
+	DEVICE_PACKAGES := rbcfg
 	LOADER_TYPE := elf
 	KERNEL := kernel-bin | append-dtb | lzma | loader-kernel
 	KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | loader-kernel
diff --git a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
index 86995de890..be2f6aec69 100644
--- a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
@@ -3,7 +3,9 @@ 
 [ -e /lib/firmware/$FIRMWARE ] && exit 0
 
 . /lib/functions/caldata.sh
-. /lib/functions/mikrotik-caldata.sh
+
+wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
+mac_base="/sys/firmware/mikrotik/hard_config/mac_base"
 
 board=$(board_name)
 
@@ -11,8 +13,8 @@  case "$FIRMWARE" in
 "ath9k-eeprom-ahb-18100000.wmac.bin")
 	case $board in
 	mikrotik,routerboard-wap-g-5hact2hnd)
-		mikrotik_caldata_extract "hard_config" 0x1000 0x440
-		ath9k_patch_mac $(macaddr_add $(mtd_get_mac_binary hard_config 0x10) +2)
+		caldata_from_file $wlan_data 0x1000 0x440
+		ath9k_patch_mac $(macaddr_add $(cat $mac_base) +2)
 		;;
 	*)
 		caldata_die "board $board is not supported yet"
diff --git a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index 2521f0ad96..b486a5720d 100644
--- a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -3,7 +3,8 @@ 
 [ -e /lib/firmware/$FIRMWARE ] && exit 0
 
 . /lib/functions/caldata.sh
-. /lib/functions/mikrotik-caldata.sh
+
+wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
 
 board=$(board_name)
 
@@ -11,14 +12,14 @@  case "$FIRMWARE" in
 "ath10k/cal-pci-0000:00:00.0.bin")
 	case $board in
 	mikrotik,routerboard-wap-g-5hact2hnd)
-		mikrotik_caldata_extract "hard_config" 0x5000 0x844
+		caldata_from_file $wlan_data 0x5000 0x844
 		;;
 	esac
 	;;
 "ath10k/cal-pci-0000:01:00.0.bin")
 	case $board in
 	mikrotik,routerboard-922uags-5hpacd)
-		mikrotik_caldata_extract "hard_config" 0x5000 0x844
+		caldata_from_file $wlan_data 0x5000 0x844
 		;;
 	esac
 	;;
diff --git a/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh b/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh
deleted file mode 100644
index 71a1bf02f3..0000000000
--- a/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh
+++ /dev/null
@@ -1,26 +0,0 @@ 
-# Copyright (C) 2019 Robert Marko <robimarko@gmail.com>
-# Copyright (C) 2019 Roger Pueyo Centelles <roger.pueyo@guifi.net>
-#
-# Helper function to extract MAC addresses and calibration data for MikroTik
-#
-
-mikrotik_caldata_extract() {
-	local part=$1
-	local offset=$(($2))
-	local count=$(($3))
-	local mtd
-	local erdfile="/tmp/erd.bin"
-	local fwfile="/lib/firmware/${FIRMWARE}"
-
-	[ -e $fwfile ] && exit 0
-
-	mtd=$(find_mtd_chardev $part)
-	[ -n "$mtd" ] || caldata_die "no mtd device found for partition $part"
-
-	rbextract -e $mtd $erdfile
-
-	dd if=$erdfile of=$fwfile iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \
-		caldata_die "failed to extract calibration data from $mtd"
-
-	rm -f $erdfile
-}