6476148034
This commit adds support for the OCEDO Raccoon SOC: Atheros AR9344 RAM: 128MB FLASH: 16MiB WLAN1: AR9344 2.4 GHz 802.11bgn 2x2 WLAN2: AR9382 5 GHz 802.11an 2x2 INPUT: RESET button LED: Power, LAN, WiFi 2.4, WiFi 5 Serial: Header Next to Black metal shield Pinout is 3.3V - GND - TX - RX (Arrow Pad is 3.3V) The Serial setting is 115200-8-N-1. NOTE: The U-Boot won't boot with the serial attached. Boot the device without serial attached and attach it after 3 seconds. Tested and working: - Ethernet - 2.4 GHz WiFi - 5 GHz WiFi - TFTP boot from ramdisk image - Installation via ramdisk image - OpenWRT sysupgrade - Buttons - LEDs Installation seems to be possible only through booting an OpenWRT ramdisk image. Hold down the reset button while powering on the device. It will load a ramdisk image named 'raccoon-uImage-initramfs-lzma.bin' from 192.168.100.8. Note: depending on the present software, the device might also try to pull a file called 'raccoon-uimage-factory'. Only the name differs, it is still used as a ramdisk image. Wait for the ramdisk image to boot. OpenWRT can be written to the flash via sysupgrade or mtd. Due to the flip-flop bootloader which we not (yet) support, you need to set the partition the bootloader is selecting. It is possible from the initramfs image with > fw_setenv bootcmd run bootcmd_1 Afterwards you can reboot the device. Signed-off-by: David Bauer <mail@david-bauer.net>
73 lines
1.4 KiB
Bash
73 lines
1.4 KiB
Bash
#!/bin/sh
|
|
|
|
[ -e /lib/firmware/$FIRMWARE ] && exit 0
|
|
|
|
. /lib/functions.sh
|
|
. /lib/functions/system.sh
|
|
|
|
ath9k_eeprom_die() {
|
|
echo "ath9k eeprom: " "$*"
|
|
exit 1
|
|
}
|
|
|
|
ath9k_eeprom_extract() {
|
|
local part=$1
|
|
local offset=$2
|
|
local count=$3
|
|
local mtd
|
|
|
|
mtd=$(find_mtd_chardev $part)
|
|
[ -n "$mtd" ] || \
|
|
ath9k_eeprom_die "no mtd device found for partition $part"
|
|
|
|
dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
|
|
ath9k_eeprom_die "failed to extract from $mtd"
|
|
}
|
|
|
|
ath9k_eeprom_extract_reverse() {
|
|
local part=$1
|
|
local offset=$2
|
|
local count=$3
|
|
local mtd
|
|
local reversed
|
|
local caldata
|
|
|
|
mtd=$(find_mtd_chardev "$part")
|
|
reversed=$(hexdump -v -s $offset -n $count -e '/1 "%02x "' $mtd)
|
|
|
|
for byte in $reversed; do
|
|
caldata="\x${byte}${caldata}"
|
|
done
|
|
|
|
printf "%b" "$caldata" > /lib/firmware/$FIRMWARE
|
|
}
|
|
|
|
board=$(board_name)
|
|
|
|
case "$FIRMWARE" in
|
|
"ath9k-eeprom-pci-0000:00:00.0.bin")
|
|
case $board in
|
|
"avm,fritz300e")
|
|
ath9k_eeprom_extract_reverse "urloader" 5441 1088
|
|
;;
|
|
"ocedo,raccoon"|\
|
|
"tplink,tl-wdr3600"|\
|
|
"tplink,tl-wdr4300")
|
|
ath9k_eeprom_extract "art" 20480 1088
|
|
;;
|
|
"netgear,wnr612-v2"|\
|
|
"on,n150r"|\
|
|
"tplink,tl-mr3220-v1"|\
|
|
"tplink,tl-mr3420-v1"|\
|
|
"tplink,tl-wr740n-v2"|\
|
|
"tplink,tl-wr841-v7"|\
|
|
"tplink,tl-wr2543-v1"|\
|
|
"ubnt,unifi")
|
|
ath9k_eeprom_extract "art" 4096 2048
|
|
;;
|
|
*)
|
|
ath9k_eeprom_die "board $board is not supported yet"
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|