Openwrt on Westell 7500
Picked up a Westell 7500 for around USD$12.5, and decided to try to put Openwrt on it.
What works after flashing Openwrt:
- USB (?)
The internals of a Westell 7501 is similar to the 7500, so this may work for a 7501 as well.
The usual disclaimer: DO THIS AT YOUR OWN RISK! I WON'T BE RESPONSIBLE IF YOU BRICK YOUR ROUTER ETC.
Here are the steps (not for the faint of heart):
1. Solder headers for jtag and serial console as shown here jtag/serial headers
2. Obtain a modified tjtag here tjtag_w7501 src. Compile it under your OS to get the tjtag_w7501 binary. I used ubuntu 64-bit.
3. Connect a jtag cable to the jtag headers on the Westell 7500. I used a parallel Wiggler. Connect a serial cable between pc and Westell as well.
4. Backup the original firmware by executing this command:
>sudo ./tjtag_w7501 -backup:custom /window:1e000000 /start:1e000000 /length:400000 /swap_endian /bypass /instrlen:5 /wiggler
5. Do step 4 twice and make sure the backed up files are the same. Reboot the Westell by power on/off in between backups to be safe.
6. Flash a generic cfe to the Westell by doing:
>cp cfe6358.bin CUSTOM.BIN >sudo ./tjtag_w7501 -flash:custom /window:1e000000 /start:1e000000 /length:10000 /swap_endian /bypass /instrlen:5 /wiggler
7. Reboot the Westell by power on/off. You should see the bootloader in serial console. Choose 96358VW2 for your board, number of mac addresses 11, the rest default would be ok.
8. Flash the Openwrt firmware to the Westell by doing:
>cp openwrt-96358VW2-generic-squashfs-cfemod.bin CUSTOM.BIN >sudo ./tjtag_w7501 -flash:custom /window:1e000000 /start:1e010000 /length:3f0000 /swap_endian /bypass /instrlen:5 /wiggler
This will take a while, like ~50mins on my PC.
9. If all is done correctly, you should see Openwrt booting in the serial console.
10. The ethernet chip BCM5325 is tied to gpio 5 and is pulled low on boot, putting the BCM5325 in reset. So ethernet won't come up after boot, do the following at the Openwrt prompt:
root@OpenWrt:/# echo 5 > /sys/class/gpio/export root@OpenWrt:/# echo out > /sys/class/gpio/gpio5/direction root@OpenWrt:/# echo 1 > /sys/class/gpio/gpio5/value
This should bring the BCM5325 out of reset. Then do the following to load switch-robo again:
root@OpenWrt:/# insmod switch-robo
Ethernet should work after that. Telnet to the Westell and have fun.
Notes: 1. Reboot power on/off in between backup/flash to be safe.
2. The compiled tjtag_w7501 binary for ubuntu 64bit is here: tjtag_w7501
3. The generic cfe is here:cfe6358.bin
4. The modded Openwrt firmware is here:openwrt-96358VW2-generic-squashfs-cfemod.bin