TP-Link TL-WDR4300 Support
Mike
russiane39 at gmail.com
Sat Jan 3 00:25:57 UTC 2015
Ok, original TP-Link uboot is refusing to accept images without
TP-Link header and lacks many useful commands, so I reflashed mine
TP-Link with alternative U-Boot to quickly check, will it boot FreeBSD
or not.
In case someone else wants to do it too, here is what I did:
1. Downloaded compiled pepe2k uboot
(https://github.com/pepe2k/u-boot_mod) from
https://raw.githubusercontent.com/gwlim/Openwrt_Firmware/master/TP-Link_TL-WDR3500-3600-43XX-WM4350R/TP-Link_TL-WDR3500-3600-43XX-WM4350R_Overclock_Section/uboot_for_tp-link_tl-wdr3600-43x0_oc_600_400_200.bin
2. Flashed from original TP-Link uboot:
tftpboot 0x80800000 uboot_for_tp-link_tl-wdr3600-43x0_oc_600_400_200.bin
erase 0x9F000000 +0x10000
cp.b 0x80800000 0x9F000000 0x10000
reset
3. After that FreeBSD started booting. Pastebin:
http://pastebin.mozilla.org/8156450
4. I should warn, that printenv is changed dramatically after this uboot update:
Before:
bootargs=console=ttyS0,115200 root=31:02 rootfstype=squashfs
init=/sbin/init
mtdparts=ath-nor0:256k(u-boot),64k(u-boot-env),6336k(rootfs),1408k(uImage),64k(mib0),64k(ART)
bootcmd=bootm 0x9f020000
bootdelay=1
baudrate=115200
ethaddr=0xba:0xbe:0xfa:0xce:0x08:0x41
ipaddr=192.168.1.111
serverip=192.168.1.100
dir=
lu=tftp 0x80060000 ${dir}u-boot.bin&&erase 0x9f000000 +$filesize;cp.b
$fileaddr 0x9f000000 $filesize
lf=tftp 0x80060000 ${dir}db12x${bc}-jffs2&&erase 0x9f050000
+0x630000;cp.b $fileaddr 0x9f050000 $filesize
lk=tftp 0x80060000 ${dir}vmlinux${bc}.lzma.uImage&&erase 0x9f680000
+$filesize;cp.b $fileaddr 0x9f680000 $filesize
stdin=serial
stdout=serial
stderr=serial
ethact=eth0
After:
bootargs=console=ttyS0,115200 root=31:02 rootfstype=squashfs
init=/sbin/init
mtdparts=ath-nor0:256k(u-boot),64k(u-boot-env),6336k(rootfs),1408k(uImage),64k(mib0),64k(ART)
bootcmd=bootm 0x9F020000
bootdelay=1
baudrate=115200
ipaddr=192.168.1.1
serverip=192.168.1.2
bootfile="firmware.bin"
loadaddr=0x80800000
ncport=6666
uboot_addr=0x9F000000
uboot_name=uboot.bin
uboot_size=0x10000
uboot_upg=if ping $serverip; then tftp $loadaddr $uboot_name && if
itest.l $filesize == $uboot_size; then erase $uboot_addr +$filesize &&
cp.b $loadaddr $uboot_addr $filesize && echo OK!; else echo ERROR!
Wrong file size!; fi; else ERROR! Server not reachable!; fi
firmware_addr=0x9F020000
firmware_name=firmware.bin
firmware_upg=if ping $serverip; then tftp $loadaddr $firmware_name &&
erase $firmware_addr +$filesize && cp.b $loadaddr $firmware_addr
$filesize && echo OK!; else ERROR! Server not reachable!; fi
stdin=serial
stdout=serial
stderr=serial
ethact=eth0
--
With best regards from Russia, Mike
More information about the freebsd-wireless
mailing list