Linksys WRT54GS v7.2

Overview
Other Flash/RAM
 * Flash: Eon EN29LV160AB-70TCP (H28308C, 0822HSC)
 * RAM: Hynix HY57V281620ETP-H (817A C)

Links of Interest

 * Datasheet.pdf
 * User Guide.pdf
 * Quick Install.pdf
 * WRT54G series on Wikipedia
 * Linksys WRT54Gxx page on the DD-WRT wiki
 * New WRT54G v8.1, v8.2; GS v7.2

Flashing DD-WRT
Linksys WRT54GS-RM (CGNC), Same as Linksys WRT54GS v7.0

Supported


 * Flashing Linksys WRT54GS v7.0 & 7.2

NOTE TO WINDOWS USERS: The Windows TFTP Client is disabled by default, so enable it before proceeding
 * (or download a third party TFTP tool).

In Windows, go to "Add or Remove Programs" (or "Programs and Features", depending on the Windows
 * version) then the Windows Features section, and scroll down to select TFTP Client.

METHOD FOR EON, INTEL, AND POSSIBLY OTHER FLASH CHIPS
Download vxworkskillerGSv7-v3.bin and a recommended build here. ONLY USE MICRO GENERIC BUILDS e.g. dd-wrt.v24-micro_generic.bin from the broadcom folder.


 * 1) Configure your local LAN Ethernet address to 192.168.1.100 and connect your local Ethernet to your WRT54GSv7 on one of the four switch ports. Do not use a wlan connection! (can someone clarify how to configure your LAN Ethernet address to 192.168.1.100?)
 * 2) Disconnect the power cord from the WRT54GSv7.
 * 3) Push the reset button while reconnecting the power cord and hold the button for about 20 seconds.
 * 4) Open your browser and open http://192.168.1.1
 * 5) Use the firmware upgrade dialogue to flash vxworkskillerGSv7-v3.bin.
 * 6) After the dialogue about disconnecting the power cord is shown, disconnect the power cord and reconnect it.
 * 7) Wait for about two minutes.
 * 8) Again disconnect the power cord and reconnect it.
 * 9) Enter "tftp -i 192.168.1.1 put dd-wrt.v24-micro_generic.bin" on your local Windows console and press enter.
 * 10) (If you're using Windows Vista or Windows 7, you need to first enable the tftp client)
 * 11) (for linux, tftp 192.168.1.1; mode octet;put dd-wrt.v24-micro_generic.bin or tftp -v -m octet 192.168.1.1 -c put dd-wrt.v24-micro_generic.bin).
 * 12) The file will now be transferred to your router and be flashed. After this is done, your router will boot automatically and you can reach your it at http://192.168.1.1.
 * 13) Check for recommended builds here.

ALTERNATE METHOD TO FLASH DD-WRT ON A WRT54GS v7 WITH AN INTEL FLASH CHIP
I just loaded DD-WRT v24 RC7 on two of the WRT54GS v7 with an Intel flash chip. I used the latest vxworkskiller.
 * Below are instructions. Intel chip says JS28F160, C3BD70, and A7397147. Router is dated December 2007. S/N starts with CGNC.


 * 1) Manually configure your IP to.
 * 2) Reset router to factory defaults.
 * 3) Update firmware to vxworkskillerGSv7-v3.bin, the update will finish.
 * 4) Watch the lights on the router. Wait until the Power light is solid, then unplug the router.
 * 5) Plug the router back in.
 * 6) Get " " ready in a command prompt and hit enter.
 * 7) After the tftp is finished wait and watch the router lights.
 * 8) The Power light will eventually come one.
 * 9) Shortly after that the WLAN light will come on.
 * 10) Try to load the web configuration page about 5 seconds later; you're done!
 * 11) Check for recommended builds here.

Another similar method to flash WRT54G v8 and WRT54GS v7.2 (possibly other 7.x)
I've been doing something slightly different on WRT54G v8 and this WRT54GS v7, it hasn't failed me yet, below are the instructions.
 * I have done this on a countless number of WRT54G v8s and just did it on a WRT54GS v7 and it worked just the same.
 * There is no resetting in the middle of this process, just do exactly what it says below, no more and no less.
 * My WRT54GS v7 has a Broadcom BCM5354KFBG CPU and an EON EN29LB160AB-70TCP flash chip and 16MB of Samsung RAM.
 * The FCC ID is Q87-WRT54GSV72 which maybe means it's a v7.2? Serial number starts with CGNE.

Addition: tiger12506 adds that he has successfully performed this on two WRT54GS v7.2 with CGNE serial numbers.
 * He felt that it was impossible, that he had bricked one of the routers at first.

Messing around with JTAG cables taught him some things, but... be sure(!) Be absolutely sure that you have tftp
 * set to binary or octel. If you leave tftp in ascii it will appear to work but the flash won't take.


 * 1) Use the web interface to reset the router to factory defaults.
 * 2) Manually configure network interface to 192.168.1.10. (Any address from 192.168.1.2 - 192.168.1.254 should work)
 * 3) (In linux, this is sudo ifconfig eth0 192.168.1.10)
 * 4) Use the web interface to update the firmware to vxworkskillerGSv7-v3.bin.
 * 5) tftp -i 192.168.1.1 PUT dd-wrt.v24_micro_generic.bin (Windows only)
 * 6) [For linux users: use tftp. You may have to sudo apt-get install tftp or your equivalent.
 * 7)  tftp 192.168.1.1
 * 8)  tftp> mode binary
 * 9)  tftp> put dd-wrt.v24_micro_generic.bin
 * 10)  tftp> quit
 * 11) As soon as that is finished do this: ping 192.168.1.1 /t (Windows only)
 * 12) This will time out repeatedly and then the router will respond between two and six times.
 * 13) The router will time out again a few times and then start responding to pings.
 * 14) [At this point, tiger12506 had a little trouble, but after a long reset, and some short resets, more and more lights came on until finally the WLAN light came on and the router functioned normally running DD-WRT]
 * 15) You're done, try to load 192.168.1.1.
 * 16) Check for recommended builds here.

Reverting

 * 1) Reset to defaults
 * 2) goto the Admin screen firmware upgrade, and browse to VxWorksRevert-GSv7-v3.bin, and click upgrade. During this time the Web browser may say upgrade successful and to reboot -"Do NOT REBOOT"- Wait for 2 min's and then reboot.
 * 3) Goto   and you should see a mgmt mode screen, this is where you browse to the original Linksys Firmware, and and upgrade.
 * 4) Wait for 1 min, even if it say's upgrade successful and to reboot, believe me, in my tests, it has not finished yet.
 * 5) goto   - you should have the regular Linksys Firmware.

JTAG Pinouts
 nTRST  1o o2	GND TDI  3o o4	GND TDO  5o o6	GND TMS  7o o8	GND TCK  9o o10	GND nSRST 11o o12  N/C Using Universal JTAG Adapter  white   1o o2	 black red   3o o4	 GND blue   5o o6	 GND green   7o o8	 GND yelow   9o o10  GND orange 11o o12  N/C
 * /noreset switch required

DD-WRT JTAG Recovery
JTAG:
 * 1) Backup CFE x2 (Compare the files, they must match exactly or there is something wrong with your JTAG setup)
 * 2) Erase Wholeflash x2
 * 3) Flash CFE
 * 4) Unplug Power
 * 5) Unplug JTAG Cable

TFTP:
 * 1) Set Rig ip static 192.168.1.10
 * 2) Plug network cable from rig to port 1
 * 3) Get TFTP ready, server ip - 192.168.1.1, Password - blank, file - dd-wrt.v24_micro_generic.bin
 * 4) Plug in power
 * 5) As soon as windows says "connected" hit upgrade. May have to use a network hub to make sure windows is always connected.
 * 6) Hard Reset 30\30\30

DD-WRT Serial Recovery

 * 1) Connect Serial cable
 * 2) Start one of the programs from above
 * 3) Get TFTP ready with file selected
 * 4) Use dd-wrt.v24_micro_generic.bin
 * 5) Connect power to the router
 * 6) start a rapid fire Cntl-C as you plug the router to power
 * 7) type "nvram erase" w/o quotes, hit enter
 * 8) type "flash -noheader : flash1.trx" w/o quotes, this starts the tftp daemon, hit enter
 * 9) but have tftp.exe ready
 * 10) Click go or start on TFTP
 * 11) give it 5 minutes after it finishes
 * 12) then power cycle....hard reset...then config
 * 13) when it stops spitting out txt in the serial consol....hit the enter key...you should get a login prompt...at that point, power cycle it, Hard reset or 30/30/30...then config
 * 14) you'll see it boot up

Serial Pinouts
 VCC 1 o  TX  2 o  RX  3 o N/C  4 o GND  5 o

DD-WRT vlan Info

 * TechInfoDepot:DD-WRT/VLAN Support

Confirmed the WRT54GS v7.2 supports port-based vlans via the GUI.

Confirmed the WRT54GS v7.2 supports port-based vlans via nvram with build 14853 micro-plus-SSH.

WRT54GS v7.2's ports are mapped like this:  1 2 3 4 | case labels 3 2 1 0 | nvram port numbers

Defaults
root@DD-WRT:~# nvram show | grep vlan.ports vlan1ports=4 5 vlan0ports=3 2 1 0 5* size: 17324 bytes (15444 left) root@DD-WRT:~# nvram show | grep port.vlans port5vlans=0 1 16 port4vlans=0 port3vlans=0 port2vlans=0 port1vlans=0 port0vlans=1 size: 17324 bytes (15444 left) root@DD-WRT:~# nvram show | grep vlan.hwname vlan1hwname=et0 vlan0hwname=et0 size: 17324 bytes (15444 left) root@DD-WRT:~#

Commands
root@DD-WRT:~# nvram set vlan1ports="3 4 5" root@DD-WRT:~# nvram set vlan0ports="2 1 0 5*" root@DD-WRT:~# nvram commint root@DD-WRT:~# reboot

nvram
root@DD-WRT:~# nvram show | grep vlan.ports vlan1ports=3 4 5 vlan0ports=2 1 0 5* size: 17325 bytes (15443 left) root@DD-WRT:~# nvram show | grep port.vlans port5vlans=0 1 16 port4vlans=0 port3vlans=0 port2vlans=0 port1vlans=0 port0vlans=1 size: 17325 bytes (15443 left) root@DD-WRT:~# nvram show | grep vlan.hwname vlan1hwname=et0 vlan0hwname=et0 size: 17325 bytes (15443 left) root@DD-WRT:~# lsmod Module                 Size  Used by ip_nat_pptp             2192   0 (unused) ip_conntrack_pptp      2524   1 ip_nat_proto_gre       1552   0 (unused) ip_conntrack_proto_gre   2312   0 [ip_nat_pptp ip_conntrack_pptp] switch-robo            5036   0 (unused) switch-core            5984   0 [switch-robo] root@DD-WRT:~# ls /proc/switch eth0 root@DD-WRT:~# cat /proc/switch/eth0/vlan/0/ports 0      1       2       5t* root@DD-WRT:~# cat /proc/switch/eth0/vlan/1/ports 3      4       5t root@DD-WRT:~# cat /proc/switch/eth0/vlan/2/ports 3 root@DD-WRT:~#

Images
DarkShadow's Unit