openwrt/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
Adrian Schmutzler 9f99000165 ramips/mt7620: Synchronize Makefiles with DTS compatible
This will "rename" devices in Makefiles to the pattern used in
DTS compatible. This will systematize naming of devices
enormously.

As device names are used to for default SUPPORTED_DEVICES entries,
we need to adjust the source for /tmp/sysinfo/board_name, too.
So remove relevant entries from base-files/lib/ramips.sh and
use device compatible for that.

Despite that, base-files are updated, too.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2019-07-10 17:36:29 +02:00

80 lines
1.8 KiB
Bash

#!/bin/sh
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 iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \
rt2x00_eeprom_die "failed to extract from $mtd"
}
jboot_eeprom_extract() {
local part=$1
local offset=$2
local mtd
mtd=$(find_mtd_part $part)
[ -n "$mtd" ] || \
rt2x00_eeprom_die "no mtd device found for partition $part"
jboot_config_read -i $mtd -o $offset -e /lib/firmware/$FIRMWARE 2>/dev/null || \
rt2x00_eeprom_die "failed to extract from $mtd"
}
rt2x00_eeprom_set_macaddr() {
local macaddr=$1
[ -n "$macaddr" ] || \
rt2x00_eeprom_die "invalid wlan mac address"
macaddr_2bin $macaddr | dd of=/lib/firmware/$FIRMWARE \
conv=notrunc oflag=seek_bytes bs=6 seek=4 count=1 2>/dev/null || \
rt2x00_eeprom_die "failed to write mac address to eeprom file"
}
FW="/lib/firmware/$FIRMWARE"
[ -e "$FW" ] && exit 0
. /lib/functions.sh
. /lib/functions/system.sh
board=$(board_name)
case "$FIRMWARE" in
"soc_wmac.eeprom")
case $board in
dlink,dir-510l|\
dlink,dwr-116-a1|\
dlink,dwr-118-a1|\
dlink,dwr-118-a2|\
dlink,dwr-921-c1|\
dlink,dwr-922-e2|\
lava,lr-25g001)
wan_mac=$(jboot_config_read -m -i $(find_mtd_part "config") -o 0xE000)
wifi_mac=$(macaddr_add "$wan_mac" 1)
jboot_eeprom_extract "config" 0xE000
rt2x00_eeprom_set_macaddr $wifi_mac
;;
dovado,tiny-ac)
wifi_mac=$(mtd_get_mac_ascii u-boot-env INIC_MAC_ADDR)
rt2x00_eeprom_extract "factory" 0 512
rt2x00_eeprom_set_macaddr $wifi_mac
;;
*)
rt2x00_eeprom_die "Please define mtd-eeprom in $board DTS file!"
;;
esac
;;
esac