Newer
Older
#!/bin/sh
# If QCA6234 softmac.bin and/or ark3bdaddr.pst files don't exist, create them
# using MAC IDs that were burnt into eFuses during gateway manufacture.
# Then load ath6kl_sdio.ko module.
get_fuse () {
local name=$1
local bytes=$2
# read the fuse and pad the left with zeros to the size of $pad
local fuse=$(cat /sys/fsl_otp/$name | cut -b 3-)
echo ${fuse}
}
get_mac () {
local upper_fuse=$1
local upper_mac=$(get_fuse HW_OCOTP_GP$upper_fuse)
local lower_mac=$(get_fuse HW_OCOTP_GP$(( $upper_fuse - 1 )))
echo $upper_mac$lower_mac
}
if [ ! -f /lib/firmware/ath6k/AR6004/hw3.0/softmac.bin ] ; then
#QCA6234 WiFi softmac file not present, so create it
echo -ne $(echo $(get_mac 31) | sed -e 's/../\\x&/g') > /tmp/hold> /lib/firmware/ath6k/AR6004/hw3.0/softmac.bin
fi
if [ ! -f /lib/firmware/ar3k/1020201/ar3kbdaddr.pst ] ; then
#QCA6234 Bluetooth ar3kbddar.pst file not present, so create it
echo $(get_mac 33) > /lib/firmware/ar3k/1020201/ar3kbdaddr.pst
fi
#install ath6kl driver module
MODVER=$(ls /lib/modules)
insmod /lib/modules/$MODVER/kernel/drivers/net/wireless/ath/ath6kl/ath6kl_sdio.ko
#start bluettooh coexistance user-space daemon
abtfilt -d -a -x -w wlan0 -b -s