Cita:
Iniciado por SantiPHREACK
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 ![Stick Out Tongue](images/smilies/tongue.gif)
|
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