63d7f7fc92
Use the first compatible string as board name in userspace. Add the new board name as well as the former used board name to the image metadata to keep compatibilty with already deployed installations. Don't add the former used boardname for boards which exists only in master or evaluation boards. Signed-off-by: Mathias Kresin <dev@kresin.me>
50 lines
1.1 KiB
Bash
50 lines
1.1 KiB
Bash
#!/bin/sh
|
|
# Based on ar71xx 11-ath10k-caldata and 10-rt2x00-eeprom
|
|
|
|
[ -e /lib/firmware/$FIRMWARE ] && exit 0
|
|
|
|
. /lib/functions.sh
|
|
. /lib/functions/system.sh
|
|
. /lib/upgrade/nand.sh
|
|
|
|
ath10k_caldata_die() {
|
|
echo "ath10k caldata: " "$*"
|
|
exit 1
|
|
}
|
|
|
|
ath10k_caldata_extract_ubi() {
|
|
local part=$1
|
|
local offset=$2
|
|
local count=$3
|
|
local ubidev=$(nand_find_ubi $CI_UBIPART)
|
|
local ubi
|
|
|
|
ubi=$(nand_find_volume $ubidev $part)
|
|
[ -n "$ubi" ] || \
|
|
ath10k_caldata_die "no UBI volume found for $part"
|
|
|
|
dd if=/dev/$ubi of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
|
|
ath10k_caldata_die "failed to extract from $ubi"
|
|
}
|
|
|
|
ath10k_caldata_set_macaddr() {
|
|
local macaddr=$1
|
|
|
|
macaddr_2bin $macaddr | dd of=/lib/firmware/$FIRMWARE \
|
|
conv=notrunc bs=1 seek=6 count=6
|
|
}
|
|
|
|
case "$FIRMWARE" in
|
|
"ath10k/cal-pci-0000:02:00.0.bin")
|
|
board=$(board_name)
|
|
case $board in
|
|
bt,homehub-v5a)
|
|
ath10k_caldata_extract_ubi "caldata" 20480 2116
|
|
ath10k_caldata_set_macaddr $(macaddr_add $(mtd_get_mac_binary_ubi caldata 4364) +3)
|
|
;;
|
|
*)
|
|
ath10k_caldata_die "board $board is not supported yet"
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|