97c5cbc496
This patch adds dts for qca956x and also support for Phicomm K2T The qca965x.dtsi adds nearly all the necessary components. Both ath9k AHB and PCIe worked well. The Phicomm K2T uses MTD partition 'config' to store the mac addresses in JSON format. To extract these fields correctly, a script is introduced: /lib/functions/k2t.sh This script provides a helper function to extract mac addresses, and is used in three places. Hardware spec of Phicomm K2T: CPU: QCA9563 DRAM: 64MB DDR2 Flash: 16MB SPI-NOR Switch: QCA8337 WiFi 5.8GHz: QCA9886 Flash instruction: Apply sysupgrade.bin via serial console: tftp 0x80000000 sysupgrade.bin && erase 0x9f090000 +$filesize && cp.b $fileaddr 0x9f090000 $filesize Signed-off-by: Weijie Gao <hackpascal@gmail.com>
55 lines
991 B
Bash
Executable file
55 lines
991 B
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Copyright (C) 2018 Weijie Gao <hackpascal@gmail.com>
|
|
#
|
|
# Helper function to extract mac addresses from mtd part for Phicomm K2T
|
|
#
|
|
|
|
. /lib/functions.sh
|
|
. /lib/functions/system.sh
|
|
. /usr/share/libubox/jshn.sh
|
|
|
|
k2t_config_load() {
|
|
local mtd_blk=$(find_mtd_part config)
|
|
|
|
if [ -z "$mtd_blk" ]; then
|
|
echo "k2t_config_load: no mtd part named config" >&2
|
|
exit 1
|
|
fi
|
|
|
|
local json_size=$(dd if=$mtd_blk bs=1 count=8 2>/dev/null)
|
|
|
|
json_size="0x$json_size"
|
|
json_size=$((json_size))
|
|
|
|
if [ "$?" -ne 0 ]; then
|
|
echo "k2t_config_load: invalid json data size" >&2
|
|
exit 2
|
|
fi
|
|
|
|
if [ "$json_size" -eq 0 ]; then
|
|
echo "k2t_config_load: empty json data" >&2
|
|
exit 3
|
|
fi
|
|
|
|
local json_data=$(dd if=$mtd_blk bs=1 skip=8 count=$json_size 2>/dev/null)
|
|
|
|
json_load "$json_data"
|
|
}
|
|
|
|
k2t_get_mac() {
|
|
local old_ns
|
|
|
|
json_set_namespace "k2t" old_ns
|
|
|
|
if k2t_config_load; then
|
|
json_select "this_dev_info"
|
|
json_get_var val "$1"
|
|
json_select ..
|
|
fi
|
|
|
|
json_set_namespace old_ns
|
|
|
|
echo $val
|
|
}
|
|
|