Just want to share with everyone about what I have done.
About 2 weeks ago, I started to play with openwrt, even though I am a bewbie in embeded world, I was "brave enough" to build barrier_breaker and flashed my WNDR3400V3 router. BTW, barrier breaker does not have V3 profile build, I just opened my router and find the board number printed there, and put into build file, to my surprise, it magically worked, I could logon to the router with ssh and do my stuff.
However before long, I discovered that wifi does not work, so I wanted to flash back to Netgear's WNDR3400v3-V1.0.0.38_1.0.40.chk, but sysupgrade command does not take .chk file. Thus, I tried to rebuild openwrt mainline code, instally luci, tried to flash with .trx file. But none worked. It seems like: luci takes the chk file, but does not actually flash it, it just silently errorred out. The mainline openwrt does not support the wireless module, dmesg shows: b43-phy0 error: found unsupported radio.
Now I only have one way left: connect to serial port and use tftp. It seems V3 does not automatically to enter tftp mode no matter how you do it, it has to be done manually. So, the following is what I did:
1, have a Serial/USB adapter and cable. the adapter you can buy on amazon, cost less than 5 bucks. There are only 3 wires you need, GND, TX, RX. It is pretty straight forward, I attached picture below. The trick is: V3 does not have the connection pins, so I had to use needles to have a temporary connections, if you are careful enough, it works.
2, Install a minicom (ubuntu I used),
sudo apt-get install minicom