mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-10-29 01:22:25 +00:00
Device specifications: ====================== SoC: Qualcomm IPQ6018 RAM: 1 x 1G DDR4 RAM Flash: NAND 128MB Radio: 2T2R@2.4GHz, 2T2R@5GHz Ethernet: 1 x 1GbE PHY Reset Button: 1 Power Source: AC, Standard PoE 802.3af/at LED Indicator: 4 x Single-color LED indicator (GPIO Control) Signed-off-by: Jesse Wu <Jesse.Wu@emplustech.com>
138 lines
3.5 KiB
Bash
Executable File
138 lines
3.5 KiB
Bash
Executable File
#!/bin/sh
|
|
[ -e /lib/firmware/$FIRMWARE ] && exit 0
|
|
|
|
. /lib/functions.sh
|
|
. /lib/functions/system.sh
|
|
|
|
ath11k_generate_macs() {
|
|
touch /lib/firmware/ath11k-macs
|
|
eth=$(cat /sys/class/net/eth0/address)
|
|
mac1=$(macaddr_add $eth 2)
|
|
mac2=$(macaddr_add $eth 3)
|
|
mac3=$(macaddr_add $eth 4)
|
|
echo -ne \\x${mac1//:/\\x} >> /lib/firmware/ath11k-macs
|
|
echo -ne \\x${mac2//:/\\x} >> /lib/firmware/ath11k-macs
|
|
echo -ne \\x${mac3//:/\\x} >> /lib/firmware/ath11k-macs
|
|
}
|
|
|
|
ath11k_generate_macs_eap101() {
|
|
touch /lib/firmware/ath11k-macs
|
|
eth=$(cat /sys/class/net/eth0/address)
|
|
mac1=$(macaddr_add $eth 4)
|
|
mac2=$(macaddr_add $eth 3)
|
|
mac3=$(macaddr_add $eth 5)
|
|
echo -ne \\x${mac1//:/\\x} >> /lib/firmware/ath11k-macs
|
|
echo -ne \\x${mac2//:/\\x} >> /lib/firmware/ath11k-macs
|
|
echo -ne \\x${mac3//:/\\x} >> /lib/firmware/ath11k-macs
|
|
}
|
|
|
|
ath11k_generate_macs_ion4x() {
|
|
touch /lib/firmware/ath11k-macs
|
|
wifimac0=$(grep WLAN0_BASEMAC= /dev/mtd15 |cut -d '=' -f2)
|
|
wifimac1=$(grep WLAN1_BASEMAC= /dev/mtd15 |cut -d '=' -f2)
|
|
wifimac2=00:00:00:00:00:00
|
|
echo -ne \\x${wifimac0//:/\\x} >> /lib/firmware/ath11k-macs
|
|
echo -ne \\x${wifimac1//:/\\x} >> /lib/firmware/ath11k-macs
|
|
echo -ne \\x${wifimac2//:/\\x} >> /lib/firmware/ath11k-macs
|
|
}
|
|
|
|
ath11k_generate_macs_wf660a() {
|
|
touch /lib/firmware/ath11k-macs
|
|
mmc_dev=$(find_mtd_chardev "0:APPSBLENV")
|
|
[ -z "$mmc_dev" ] && mmc_dev=$(find_mmc_part "0:APPSBLENV")
|
|
[ -n "$mmc_dev" ] && mac=$(grep BaseMacAddress= $mmc_dev | cut -dx -f2)
|
|
eth=$(macaddr_canonicalize $mac)
|
|
mac1=$(macaddr_add $eth 1)
|
|
mac2=$(macaddr_add $eth 2)
|
|
mac3=$(macaddr_add $eth 3)
|
|
echo -ne \\x${mac1//:/\\x} >> /lib/firmware/ath11k-macs
|
|
echo -ne \\x${mac2//:/\\x} >> /lib/firmware/ath11k-macs
|
|
echo -ne \\x${mac3//:/\\x} >> /lib/firmware/ath11k-macs
|
|
}
|
|
|
|
caldata_die() {
|
|
echo "caldata: " "$*"
|
|
exit 1
|
|
}
|
|
|
|
caldata_extract() {
|
|
local part=$1
|
|
local offset=$(($2))
|
|
local count=$(($3))
|
|
local mtd
|
|
|
|
mtd=$(find_mtd_chardev $part)
|
|
[ -n "$mtd" ] || caldata_die "no mtd device found for partition $part"
|
|
|
|
dd if=$mtd of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \
|
|
caldata_die "failed to extract calibration data from $mtd"
|
|
}
|
|
|
|
board=$(board_name)
|
|
|
|
case "$FIRMWARE" in
|
|
"ath11k/IPQ6018/hw1.0/caldata.bin")
|
|
case "$board" in
|
|
cig,wf188n|\
|
|
cig,wf660a|\
|
|
edgecore,eap101|\
|
|
emplus,wap386v2|\
|
|
hfcl,ion4xi|\
|
|
hfcl,ion4x|\
|
|
hfcl,ion4x_2|\
|
|
hfcl,ion4x_3|\
|
|
hfcl,ion4xe|\
|
|
wallys,dr6018|\
|
|
wallys,dr6018-v4|\
|
|
yuncore,ax840|\
|
|
yuncore,fap650|\
|
|
glinet,ax1800)
|
|
caldata_extract "0:ART" 0x1000 0x20000
|
|
;;
|
|
esac
|
|
;;
|
|
ath11k/QCN9074/hw1.0/caldata_1.bin)
|
|
case "$board" in
|
|
wallys,dr6018-v4)
|
|
caldata_extract "0:ART" 0x26800 0x20000
|
|
;;
|
|
esac
|
|
;;
|
|
ath11k-macs)
|
|
case "$board" in
|
|
hfcl,ion4xi|\
|
|
hfcl,ion4x|\
|
|
hfcl,ion4x_2|\
|
|
hfcl,ion4x_3|\
|
|
hfcl,ion4xe)
|
|
ath11k_generate_macs_ion4x
|
|
;;
|
|
edgecore,eap101)
|
|
ath11k_generate_macs_eap101
|
|
;;
|
|
cig,wf188n|\
|
|
emplus,wap386v2)
|
|
ath11k_generate_macs
|
|
;;
|
|
cig,wf660a)
|
|
ath11k_generate_macs_wf660a
|
|
;;
|
|
esac
|
|
;;
|
|
ath11k/IPQ6018/hw1.0/board.bin)
|
|
case "$board" in
|
|
cig,wf188n)
|
|
country=`cat /etc/ucentral/country`
|
|
if [ "$country" == "CA" ]; then
|
|
ln -s /lib/firmware/ath11k/IPQ6018/hw1.0/board.bin.CA /lib/firmware/ath11k/IPQ6018/hw1.0/board.bin
|
|
else
|
|
ln -s /lib/firmware/ath11k/IPQ6018/hw1.0/board.bin.US /lib/firmware/ath11k/IPQ6018/hw1.0/board.bin
|
|
fi
|
|
;;
|
|
esac
|
|
;;
|
|
*)
|
|
exit 1
|
|
;;
|
|
esac
|