forked from Ivasoft/openwrt
Older busybox versions allowed using the local keyword outside of
functions, whereas 1.25.0 (which was introduced in 06fa1c46fc) do not
allow this anymore (leading to the following error when executing the
script: "file: local: line nn: not in a function").
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
52 lines
1.1 KiB
Bash
52 lines
1.1 KiB
Bash
#!/bin/sh
|
|
# Based on ar71xx 11-ath10k-caldata and 10-rt2x00-eeprom
|
|
|
|
ath10k_caldata_die() {
|
|
echo "ath10k caldata: " "$*"
|
|
exit 1
|
|
}
|
|
|
|
ath10k_caldata_extract() {
|
|
local part=$1
|
|
local offset=$2
|
|
local mtd
|
|
|
|
. /lib/functions.sh
|
|
|
|
mtd=$(find_mtd_part $part)
|
|
[ -n "$mtd" ] || \
|
|
ath10k_caldata_die "no mtd device found for partition $part"
|
|
|
|
dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=2116 || \
|
|
ath10k_caldata_die "failed to extract from $mtd"
|
|
}
|
|
|
|
ath10k_caldata_set_macaddr() {
|
|
local macaddr=$1
|
|
|
|
macaddr_2bin $macaddr | dd of=/lib/firmware/$FIRMWARE \
|
|
conv=notrunc bs=1 seek=6 count=6
|
|
}
|
|
|
|
[ -e /lib/firmware/$FIRMWARE ] && exit 0
|
|
. /lib/functions.sh
|
|
. /lib/functions/system.sh
|
|
. /lib/functions/lantiq.sh
|
|
|
|
case "$FIRMWARE" in
|
|
"ath10k/cal-pci-0000:02:00.0.bin")
|
|
board=$(lantiq_board_name)
|
|
case $board in
|
|
BTHOMEHUBV5A)
|
|
lan_mac=$(mtd_get_mac_binary caldata 4364)
|
|
wifi_mac=$(macaddr_add "$lan_mac" 3)
|
|
ath10k_caldata_extract "caldata" 20480
|
|
ath10k_caldata_set_macaddr $wifi_mac
|
|
;;
|
|
*)
|
|
ath10k_caldata_die "board $board is not supported yet"
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|