openwrt/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom

80 lines
1.8 KiB
Plaintext
Raw Normal View History

#!/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|\
ramips: add support for DLINK DWR-922-E2 Very similar to the DWR-921-C1, except has a telephony/RJ11 port (not sure if supported, I didn't try), wireless router with QMI LTE embedded modem is based on the MT7620N SoC. Specification: * MediaTek MT7620N (580 Mhz) * 64 MB of RAM * 16 MB of FLASH * 802.11bgn radio * 5x 10/100 Mbps Ethernet (1 WAN and 4 LAN) * 2x external, detachable (LTE) antennas * UART header on PCB (57600 8n1) * 6x LED (GPIO-controlled) * 1x bi-color Signal Strength LED (GPIO-controlled) * 2x button * JBOOT bootloader The status led has been assigned to the dwr-922-e2:green:signalstrength (lte signal strength) led. At the end of the boot it is switched off and is available for lte operation. Works correctly also during sysupgrade operation. Installation: Apply factory image via d-link http web-gui, or via recovery interface: How to recover/revert to OEM firmware: 1.) Push and hold the reset button and turn on the power. Wait until all LEDs start rapidly blinking (~10sec.) 2.) DHCP should give you an IP in the 192.168.123.0/24 subnet, or set one manually 3.) Upload original factory image via JBOOT http interface at IP 192.168.123.254 4.) If http doesn't work, it can be done with curl command: curl -F FN=@XXXXX.bin http://192.168.123.254/upg where XXXXX.bin is name of firmware file. 5.) You can optionally telnet to 192.168.123.254 before or during the upload and it will report the flashing status, memory address etc. 6.) Once web UI and/or telnet says "Success", power cycle the router, or type "reboot" into the telnet session. Signed-off-by: Simon Quigley <squigley@squigley.net> [squashed commits, word wrap commit message, rename signal strenght led name to match what is used for the DWR-921-C1 since they share the led configuration, add label referenced in the aliases node] Signed-off-by: Mathias Kresin <dev@kresin.me>
2018-12-20 16:47:52 +00:00
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" 0x0 0x200
rt2x00_eeprom_set_macaddr $wifi_mac
;;
*)
rt2x00_eeprom_die "Please define mtd-eeprom in $board DTS file!"
;;
esac
;;
esac