This is more of an academic exercise. What I am curious about is what different people, particularly those experienced with wireless routers and other embedded devices, feel is the best way to debrick or otherwise (re-)initialize a device ... if you had the ability to specify that all future devices shall work that way (which is a stretch, given some manufacturers don't want us to run anything but their firmware on our own hardware that we paid for).
Presumably the default answer is JTAG. But is that stll the best choice even today? It is certainly not the simplest. But would it be any better to have direct capability to do this via connections like ethernet or USB or even a serial port? It could be secured to physical access by having a jumper or DIP switch to enable it. Of course if this is software controlled from the board end, that has to be unwritable software so you can't break that capability (which also means you can't update it if it is buggy).
Think about it in terms of you being the designer of a new product where the manufacturer is intending that it be capable of hackers/hobbyists being about to reload their own routers/devices (but not those of others they don't have physical access to). What would you do in the design to make an UNerasable means to reload the flash securely?
