Pues parece que después de todo este artefacto se está resistiendo.
Tras hablar con gmtii y arreglar un par de cosas, todavía hay unos pequeños detalles que nos obligan a tener conectado el puerto serie/TTL al router, porque podemos sufrir un enladrillado que sólo podemos quitar mediante el puerto serie.
El caso es que el router parece tener una configuración de flash dual con dos zonas de memoria de 16MB cada una, y al quemar la imagen en la flash la zona en la que se quema es alternativa (zona 0 y al siguiente flasheo zona 1).
Esto parece que también le pasaba a los VR3025x y se arreglaba podiendo una longitud agregada a la imagen para obligar al CFE a quemar la imagen en la zona 0. Pues bien, el parcheo de este tipo no funciona porque además el CFE tiene una longitud máxima de carga de 11534336 bytes (0xB00000), con lo cual volvemos a estar bajo la longitud de una zona completa de memoria y se volverá a quemar en zonas alternativas de memoria.
El caso es que la única forma de que la imagen se grabe en la zona adecuada de la flash es mediante el puerto serie y mirando en qué dirección nos dice que va a quemar la imagen:
Flashing root file system and kernel at 0xb8020000
Flashing root file system and kernel at 0xb9000000
Como vemos, en el primer caso es justo detrás del CFE, y en el segundo justo en mitad de la memoria flash.
Si vemos que la imagen la está quemando en mitad de la memoria, cortamos el router sin esperar a que termine y lo volvemos a encender y a flashear mediante TFTP hasta que diga que la imagen la quema en la dirección 0xb8020000
No habría más problema al quemar en mitad de la flash si no fuera porque al arrancar desde ahí, la memoria está fragmentada y la capacidad de la flash no se corresponde con lo que queda desde donde se quemó la imagen hasta el final de la flash, lo que hace que el sistema de ficheros jffs2 pete, a veces hasta con un kernel panic:
[ 16.560000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at
0x015a0024: 0x3e30 instead
[ 16.568000] jffs2: Further such events for this erase block will not be print
ed
[ 16.624000] jffs2: Cowardly refusing to erase blocks on filesystem with no va
lid JFFS2 nodes
[ 16.632000] jffs2: empty_blocks 145, bad_blocks 0, c->nr_blocks 246
[ 16.636000] VFS: Cannot open root device "mtdblock2" or unknown-block(31,2):
error -5
[ 16.644000] Please append a correct "root=" boot option; here are the availab
le partitions:
[ 16.656000] 1f00 128 mtdblock0 (driver?)
[ 16.660000] 1f01 1023 mtdblock1 (driver?)
[ 16.664000] 1f02 31552 mtdblock2 (driver?)
[ 16.668000] 1f03 128 mtdblock3 (driver?)
[ 16.676000] 1f04 32512 mtdblock4 (driver?)
[ 16.680000] Kernel panic - not syncing: VFS: Unable to mount root fs on unkno
wn-block(31,2)
El caso es que si da kernel panic, no podremos acceder ni tan siquiera a la web de rescate del CFE y no queda más remedio que recuperar el router mediante el puerto serie/TTL y TFTP.
A ver si averiguo algo más y en otro ratito pongo el método para flashear el router y alguna imagen para probar.