ath79/mikrotik: use standard caldata functions
authorThibaut VARÈNE <hacks@slashdirt.org>
Sun, 19 Apr 2020 09:42:45 +0000 (11:42 +0200)
committerKoen Vandeputte <koen.vandeputte@ncentric.com>
Fri, 8 May 2020 13:17:17 +0000 (15:17 +0200)
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
target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh [deleted file]

index 292237c76a78af85f5098bfda2ce89d03ab7ba52..4cf0aa1cacdf2c6841b96576fde524b9eaa9c96d 100644 (file)
@@ -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
index 86995de890736653fac4bbb985f3d8fe603d99db..884e150bbb7cba1af7a0af61701931e9453a5a19 100644 (file)
@@ -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="$(cat /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 "$mac_base" +2)
                ;;
        *)
                caldata_die "board $board is not supported yet"
index 2521f0ad968d97f620357f5b34141e29482b04e5..b486a5720d1e888162e14ffef3c477544678781e 100644 (file)
@@ -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 (file)
index 71a1bf0..0000000
+++ /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
-}