Hi Petr,
This requires a custom version of the bootloader for your
application. It's an easy change but you'll need JTAG, and I take no
responsibility for you bricking your device!
I won't ever produce a 'standard' version of Biffboot that will do
this. It's just too risky since the serial port is often the only way
into the device when there is a problem booting Linux. Of course, we
can have the button enabling the serial console instead (hold it down
when you power on), however there will be another group of users who
complain about that, and want to disable that too, so I can't really
win!
Perhaps the answer is using some 'fuse' bits in the boot flash sector,
where once you 'blow' them, you permanently change the behaviour, and
can't change it back again. I guess we could have a kind of 'activate
bootloader on button press' fuse, once it's programmed, the serial
console no longer responds to <ESC> but activates when the button is
held down. We'd have to make it hard for the user to blow the fuse by
mistake. There are a few options: Blow it via JTAG (completely
safe), blow from the bootloader, with lots of 'are you really sure'
type questions, or (more dangerous) use some utility to blow them from
within OpenWrt, although that requires a change to the patches, as I
think the bootloader is read-only at the moment.
Another option I've just thought of is to enable the bootloader by
connecting TX to RX, i.e. stick the connected PC in character echo
mode. Send a longish pseudo-random binary sequence out the TX and
expect it all back in the RX, if the same sequence is received switch
into bootloader mode. It's a pain because it requires you to run one
program to power up the board and another to interact with it
(minicom), but it may suit some.
regards,
Biff.
PS: Contact me off-list about any customisations.