Ver Mensaje Individual
Antiguo 09/08/2007, 21:43   #461
SantiPHREACK 
Usuario PREMIUM+
 
Fecha de ingreso: 13/abr/2006
Mensajes: 223
SantiPHREACK está en el buen camino
Cita:
Iniciado por SantiPHREACK Ver mensaje
Gracias, ahora mismo me pongo a ello

PD: Coño, no me había fijado que has puesto los registros del M3329C-E1 y también hay otro diferente, el 0xB8000074 que por defecto esta a 0x00000100 y el boot lo pone a 0x00000900, curioso
Wenas Jubamo

Anoche estuve haciendo pruebas con los registros y pequeñas modificaciones del "flaps.c" y te cuento mis pocas conclusiones que me dio tiempo.

Mi prioridad era primero intentar leer la flash "0x1FC00000" sin los primeros 512 bytes protegidos, y posteriormente intentar borrar algún sector

Después de unas cuantas compilaciones del flaps.c modificando los registros que aparecen en el boot y viendo que no había éxito, me decante por el método burro, y me puse a sobre escribirle la tabla entera de registros a lo bestia (por si atinaba apagando el bit dichoso) y cual fue mi sorpresa que muchos de los bits están también protegidos

Mas o menos serian estos:

Código:
             SL-65-B1   SL-65-E1-SPI   SL-35-E1
             M3329-B1     M3329-E1     M3329C-E1
-----------  --------     --------     --------
0xB8000000:  00000000  -  332704F2  -  00000000  ->            -> ID CPU ???
0xB8000040:  0001DFEA  -  00000000  -  0001DFEA
0xB8000048:  7FFFFFFF  -  FFFFFFFF  -  7FFFFFFF
0xB8000050:  007F4000  -  1A010100  -  007F8780
0xB8000058:  80000000  -  00020000  -  80000000
0xB8000064:  00000000  -  001D0000  -  00000000  ->            -> ??
0xB8000070:  0004221B  -  000320D3  -  0004221B
0xB8000074:  00000000  -  00000000  -  00000100  ->            -> ??
0xB8000080:  04000000  -  15040000  -  04000000  -> "04000000" -> Clear Watchdog
0xB8000084:  C1B33505  -  01333505  -  C1B33505
0xB8000090:  000F0005  -  003F0004  -  000F0005  -> "000F0005" -> Enable Flash      
0xB8000094:  00000000  -  0000000A  -  00000000  ->            -> ??
0xB8000098:  00000000  -  06000D03  -  00000000  ->            -> ??
0xB80000A0:  002AAAAA  -  0020000A  -  002AAAAA
0xB80000A8:  0000FFFF  -  007FFFFF  -  0000FFFF
En rojo serian los bytes que ni siquiera se dejan tocar, y en azul los que solo se puede activar o desactivar algún bit de ese byte y que curiosamente aparecen muchos en el boot

La historia es que no vasta con dar con cual es, sino que el "E1" es mucho mas caprichoso, y seguramente sera una combinación de varios

Como anécdota, uno de los registros protegidos por la propia CPU es el primero, el 0xB8000000= 332704F2 , que claramente se identifica el modelo de CPU y revisión, y que los muy cabritos, en el bootloader nuevo hacen un chequeo de ese registro para echarlo a andar o no

Código:
ROM:00000954                 lui     $t0, 0xB800
ROM:00000958                 lh      $t1, 0xB8000002  
ROM:0000095C                 li      $t2, 0x3327
ROM:00000960                 bne     $t1, $t2, locret_98C
ROM:00000964                 nop
ROM:00000968                 lh      $t1, 0xB8000000
ROM:0000096C                 andi    $t1, 0x400
ROM:00000970                 beqz    $t1, loc_980
ROM:00000974                 nop
ROM:00000978                 b       locret_98C
ROM:0000097C                 nop
PD: no habría alguna forma de poder tener acceso por el Ejtag pero con el deco sin estar en modo Debug? Me refiero a la forma como en la que han hecho el Dump de la SDRAM de los Max S100, porque seria una alternativa, es decir, inyectándole el bootloader por el ejtag y posteriormente con un "poke" decirle que se escriba en la flash (al estilo de lo que se hace por el puerto serie)


PD-2: A lo mejor estamos mirando la tabla de registros equivocada, porque parece ser, que las tabla es mucho mas extensa y llega hasta 0xB8004300

Última edición por SantiPHREACK; 09/08/2007 a las 21:47.
SantiPHREACK está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir