mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 09:12:39 +00:00
b133e466b0
This changes size and offset set for WiFi caldata extraction and MAC address adjustment to hexadecimal notation. This will be much clearer for the reader when numbers are big, and will also match the style used for mtd-cal-data in DTS files. Since dd cannot deal with hexadecimal notation, one has to convert back to decimal by simple $(($hexnum)). Acked-by: Alexander Couzens <lynxis@fe80.eu> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
45 lines
807 B
Bash
45 lines
807 B
Bash
#!/bin/sh
|
|
# Based on gabors ralink wisoc implementation.
|
|
|
|
rt2x00_eeprom_die() {
|
|
echo "rt2x00 eeprom: " "$*"
|
|
exit 1
|
|
}
|
|
|
|
rt2x00_eeprom_extract() {
|
|
local part=$1
|
|
local offset=$(($2))
|
|
local count=$(($3))
|
|
local mtd
|
|
|
|
mtd=$(find_mtd_part $part)
|
|
[ -n "$mtd" ] || \
|
|
rt2x00_eeprom_die "no mtd device found for partition $part"
|
|
|
|
dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count || \
|
|
rt2x00_eeprom_die "failed to extract from $mtd"
|
|
}
|
|
|
|
[ -e /lib/firmware/$FIRMWARE ] && exit 0
|
|
|
|
. /lib/functions.sh
|
|
|
|
board=$(board_name)
|
|
|
|
case "$FIRMWARE" in
|
|
"rt2x00.eeprom" )
|
|
case $board in
|
|
hg556a_c)
|
|
rt2x00_eeprom_extract "cal_data" 0x1fe00 0x200
|
|
;;
|
|
hg622 |\
|
|
hg655b)
|
|
rt2x00_eeprom_extract "cal_data" 0x0 0x200
|
|
;;
|
|
*)
|
|
rt2x00_eeprom_die "board $board is not supported yet"
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|