The original Cisco/Linksys firmware of EA6700 is not bad, but alternative firmwares offers more functionality, settings and in my case also more stability. The router itself has powerful hardware with fast CPU and 256MB of memory at can handle a lot of additional services. I missed simple Web server with MySQL, bridge mode and also struggle with „Cut Through Forwarding“ which hang-up whole Wi-Fi.
I choose AdvancedTomato and upload to router. It works nice until i have some difficulty with electricity. The EA6700 and other new Linksys routers has two firmwares and if router doesn’t successfully start three times in sequence then second-backup firmware is loaded. My router started with backup original firmware and i wasn’t able to load AdvancedTomato again. I find some solutions with resetting the router, loading older original firmware two or three times in sequence or connect to router over serial link and clean NVRAM. In short, only erasing NVRAM over serial link helps in my case.
There problem is in CFE (the ‚BIOS‘ of the router) which manages NVRAM (the partition where all volatile configuration is stored). There is a 32Kb limit on NVRAM usage, but CFE enable use more and after restart some variables get deleted at random. The original firmware never overlap 32Kb limit and doesn’t have this problem.
Serial link on service connector
You will need the USB to TTL-level serial port adapter to connect into router over serial link. First step is opening up the device. Find the screws (they are hidden under the rubber legs…) and unscrew all of them. Depress the 12 clips along the edge into the router. For opening the device I have used the plastic credit card and go around the edge.
Next step is to connect the adapter to the device. In the middle of board is plastic 6-pin connector.

EA6700 service connector
Pins connection on board(from left to right):
1 – Serial GND
2 – Serial RX
3 – N/A
4 – Serial TX
5 – N/A
6 – N/A

EA6700 connector with connected USB-Serial adapter
Using Putty serial mode at 115200 BAUD gives us a text console of router. I used CTRL+C to abort the boot process and looked at the contents of NVRAM. Press Enter to get the console prompt.
nvram show | grep =$ | wc -l
The problem is usually with NVRAM bigger then 32Kb. I solved my problem by deleting the NVRAM and rebooting the router:
nvram erase
nvram commit
reboot
The AdvancedTomato has possibility to add commands into init script over GUI. I add following lines to avoid NVRAM overload and rebooting to backup original firmware:
for line in `nvram show | grep =$ `; do var=${line%*=}; nvram unset $var; done
nvram set partialboots=1
nvram commit
Finally the router has stable AdvancedTomato firmware.
Useful links