I posted a "how-to" with lots of pictures showing how I added a serial port to the WR703 along with my choice for the level-shifter and how I hook it up. The how-to is here:
http://wiki.villagetelco.org/index.php? … _TL-WR703N
Once you have serial port access to the bootloader (uboot), you need to connect an ethernet cable from eth0 on the 703 to the ethernet port on your build machine. Set the IP address of the ethernet port on your build machine to 192.168.1.100. This is the default for the tftp server IP address on uboot. If you want to change it, you can use the setenv uboot command. However, I haven't tried that so YMMV. Finally, you need to have the tftp daemon running on your build machine and the default tftp download directory set to where your firmware image is. Then you can reflash the 703 firmware as follows:
hornet> tftpboot 0x81000000 openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin
Notice that I used the squashfs-factory.bin version of my built firmware NOT the squashfs-sysupgrade.bin version. If you didn't fat finger the filename for your image, you'll see lots of rows of pound signs on the console as your image is tranferred to the 703 memory. Next type,
hornet> erase 0x9f020000 +0x3c0000
This will wipe out your previous image in the 703 flash. Make sure you don't mess up the address or count and that the hex numbers start with 0x. Also don't forget the "+" in front of the count. When the erase completes (counts up to about 61 sectors), type:
hornet> cp.b 0x81000000 0x9f020000 0x3c0000
This copies your new image in memory to the flash part. Again, make sure you don't fat finger these addresses or the count and that they are all preceded with 0x. Also notice that unlike the erase command, you don't use the "+" in front of the count for the cp.b command. When the cp.b completes, boot up the new image as follows:
hornet> bootm 9f020000
Notice that bootm assumes the number is in hex. I believe it's OK to precede the address with 0x but I learned to do it without it and haven't tried it with the 0x myself. Again, YMMV.
I found that going through the process of getting a working serial console for at least one of my 703's has made me a lot more comfortable about creating and testing builds. No matter how bad the build is, I still have access to uboot and can simply reflash with a "non-bricking" image. Once I know I have a good working image, I can apply the sysupgrade version of that image to my other 703's that don't have the serial port.
BTW..the other case where you flash with the squashfs-factory.bin version of the image is when you flash a new 703 that still has the TP-link factory firmware. After that, use the squashfs-factory.bin images when flashing via uboot/tftpboot and the squashfs-sysupgrade.bin images when flashing using the sysupgrade utility from within the openwrt running image on the target 703.