Bueno pensé que sería más fácil (...menos de un año

).
Lo que he hecho yo para meterle mano es desoldar la flash que está al lado del procesador, leer con flashrom y buscar con GHex quiet=s (aparece 2 veces)
Lo cambias por quiet=n grabas con flashrom sueldas y ya tienes consola por el puerto serie con putty o screen. Fácil pero mejor si se pudiera acceder por telnet
Es un chisme algo antiguo ¿merece la pena?
Flash:-------------
Serial Flash [Bus:0 CS:0] : s25fl128p 16384KB, 256 sectors each 64KB
Serial Flash [Bus:0 CS:1] : s25fl128p 16384KB, 256 sectors each 64KB
Concatenating MTD devices:
(0): "sf0"
(1): "sf1"
into device "sf0"
7 cmdlinepart partitions found on MTD device sf0
partitions[0] = {.name = U-Boot, .offset = 0x00000000,.size = 0x00020000 (128K) }
partitions[1] = {.name = env1, .offset = 0x00020000,.size = 0x00010000 (64K) }
partitions[2] = {.name = env2, .offset = 0x00030000,.size = 0x00010000 (64K) }
partitions[3] = {.name = UBFI1, .offset = 0x00040000,.size = 0x00fb0000 (16064K) }
partitions[4] = {.name = UBFI2, .offset = 0x00ff0000,.size = 0x00fb0000 (16064K) }
partitions[5] = {.name = RootFileSystem, .offset = 0x00146000,.size = 0x00530000 (5312K) }
partitions[6] = {.name = nvram, .offset = 0x01fb0000,.size = 0x00050000 (320K) }
Creating 7 MTD partitions on "sf0":
0x00000000-0x00020000 : "U-Boot"
0x00020000-0x00030000 : "env1"
0x00030000-0x00040000 : "env2"
0x00040000-0x00ff0000 : "UBFI1"
0x00ff0000-0x01fa0000 : "UBFI2"
0x00146000-0x00676000 : "RootFileSystem"
0x01fb0000-0x02000000 : "nvram"
Creating 1 MTD partitions on "sf0":
0x00000000-0x01000000 : "sf0"
Creating 1 MTD partitions on "sf1":
0x00000000-0x01000000 : "sf1"
-----------
Tiene el firm duplicado, (va a ser por eso que quiet=s esté dos veces) y este es el script de arranque de Uboot:
bootcmd=while itest.b 1 == 1;do;
if itest.b ${ACTIMAGE} == 1 || itest.b ${ACTIMAGE} == 3;then
aimgname=UBFI1;
aubfiaddr=${UBFIADDR1};
bimgname=UBFI2;
bubfiaddr=${UBFIADDR2};
bimgnum=2;
else
if itest.b ${ACTIMAGE} == 2;then
aimgname=UBFI2;
aubfiaddr=${UBFIADDR2};
bimgname=UBFI1;
bubfiaddr=${UBFIADDR1};
bimgnum=1;
else
echo *** ACTIMAGE invalid;
exit;
fi;
fi;
if itest.b ${ACTIMAGE} == 3;then
eval *0x80000000 - ${UBFI3RAMRESERVE};
eval 0x80000000 + ${evalval};
ramimgaddr=${evalval};
if autoscr ${ramimgaddr};then
bootm ${LOADADDR};
else
echo Reloading RAM image;
tftpboot ${ramimgaddr} ${UBFINAME3};
if autoscr ${ramimgaddr};then
bootm ${LOADADDR};
else
setenv ACTIMAGE 1;
fi;
fi;
fi;
echo *** ACTIMAGE = ${ACTIMAGE}, will try to boot $aimgname stored @${aubfiaddr};
if autoscr $aubfiaddr;then
echo *** $aimgname bootscript executed successfully.;
echo Start booting...;
bootm ${LOADADDR};
fi;
echo *** $aimgname is corrupted, try $bimgname...;
setenv ACTIMAGE $bimgnum;
if autoscr $bubfiaddr;then
echo *** $bimgname bootscript executed successfully.;
echo Check image...;
if imi ${LOADADDR};then
echo Save updated ACTIMAGE...;
saveenv;
echo Image OK, start booting...;
bootm ${LOADADDR};
fi;
fi;
echo Backup image also corrupted...exit.;
exit;
done;
Uff.