Modificaciones al hardware para eliminar problemas con la memoria Samsung QB y el Teensy++:Vamos a "robar" los 3.3v de la PS3, por lo que todo el cableado es el mísmo de siempre excepto por la parte de alimentación y el regulador de voltaje del Teensy++.
Para modificar la parte de la alimentación, debe hacerse exáctamente lo mísmo que lo explicado en la guía para conversión a 3.3V, excepto que NO HAY QUE PONER EL REGULADOR.
Si ya tenías puesto el regulador, desuéldalo y quítalo. Guía para conversión a 3.3V:
http://www.pjrc.com/teensy/3volt.htmlAdemás, un cable(que se dejará al aire) debe ser soldado para obtener 3.3V desde la PS3 hacia el Teensy++. Por favor miren la siguiente imágen para ver las modificaciones necesarias:
Lo que acabamos de hacer fue modificar el Teensy++ para que funcione con 3.3V, pero en lugar de obtenerlos desde el regulador de voltaje, lo haremos mediante el cable que hemos soldado y conectaremos al pad de 3.3V de la NOR en la PS3. Entonces, conecta el Teensy++ a tu memoria NOR como haces siempre. Recuerda soldar el cable que se ha dejado colgando en el Teensy++ al pad de 3.3V de la NOR en la motherboard de la PS3.
AHORA, lee atentamente:Acciones durante el proceso para eliminar problemas con la memoria Samsung QB y el Teensy++:1)Identificaremos el modelo de la memoria NOR, si la memoria resulta ser una Samsung QB utilizaremos un método, si no lo es utilizaremos otro distinto.
Identificando el modelo de la memoria:Condiciones iniciales:
* PS3 APAGADA;
* cable USB(Teensy++ <--> PC) desconectado;
Enciende la PS3 y espera 20 segundos. Asegúrate de que la PS3 no se apague, si lo hace vuelve a encenderla hasta que permanezca encendida correctamente.
Ahora, conecta el cable usb(Teensy++ <--> PC) y dumpea como de costumbre. Lee el modelo de la memoria según lo que el NORway informa y fíjate si la memoria es una Samsung QB, y entonces:
2)a) si la memoria NO ES una Samsung QB, continúa dumpeando/borrando/escribiendo como de costumbre. La parte importante es que la PS3 debe permanecer ENCENDIDA durante todo el proceso.
Listo, fin del tutorial para estos modelos de memorias.
b) si la memoria ES una Samsung QB, presiona y mantiene el botón de encendido de la PS3 hasta que se apague. Desconecta el cable de alimentación de la PS3.
NO DESCONECTES EL CABLE USB. Si lo desconectaste vas a perder la alimentación del Teensy++(y la conexión USB) por lo que vuelve al punto 1) e intenta nuevamente.
La parte importante es que aún con la PS3 apagada, el Teensy++ va a recibir alimentación al igual que la memoria.
¡CUIDADO!: el archivo dumpeado en el ítem 1) es sólo para identificar la memoria, elimínalo ya que no puede ser confiable(por estar la PS3 encendida durante el dumpeo).Ahora, continúa dumpeando/borrando/escribiendo como de costumbre. La parte importante es que la PS3 debe permanecer APAGADA durante todo el proceso.
Listo, fin del tutorial para este modelo de memoria.
=============================================================================================================
POST ORIGINAL
=============================================================================================================
Hola!
Voy a comentarles un poco mi experiencia con una consola PS3 que tengo brickeada y tiene memoria Samsung K8Q2815UQB NOR.
Me he pillado un Teensy++ y lo he soldado a la consola, como demuestra la siguiente imágen:
http://img200.imageshack.us/img200/7421/dsc08982c.jpgLos resultados han sido bastante desalentadores.
Dumpeando la memoria utilizando la versión oficial del NORway, o bien una modificada(
http://pastie.org/2527251) me he cansado de dumpear el firmware. ¡Todo de maravilla! O al menos eso pensé al ver que la data era la que supuestamente debía salir:
http://img193.imageshack.us/img193/9806/parecen.pngPero no todo lo que brilla es oro. Y se me dió por calcular el MD5 de distintos dumpeos realizados a la memoria. Y ¡zaz!.
Todos los MD5 dieron distintos. Al comparar los archivos, vi que había diferencias(pequeñas, centenares de ellas) suficientes como para no poder asegurarme de que lo leído era lo cierto.
http://img231.imageshack.us/img231/6965/perono.pngEsto no hubiese sido nada si no fuese porque al momento de descubrir esto ya había perdido el contenido inicial de la memoria, al haber intentado escribir un firmware parcheado(y fracasado también) tanto como con el NORway v0.3 y el archivo modificado por foobar que supuestamente solucionaba el problema del cuelgue al grabar esta memoria Samsung.
Resumiendo: ningún dump me ha dado el mísmo MD5 dos veces. Difieren en posiciones bastante aleatorias, pero...mirando las diferencias en detalle, he notado que difieren siempre en posiciones pares de Words. Esto puede implicar alguna contención eléctrica en la línea A0, que pronto espero investigar en profundidad.
[*]El comando de grabación que viene con el NORway v0.3 no grabó nada. Sólo borró(seteó a 0xFF) el Bloque0 de la memoria(que es de 4kW), pero se cuelga de lo lindo al intentar grabar y enseguida falla la verificación.
[*]El comando de grabación creado por foobar, que supuestamente funcionaba, lo hace hasta los 128KB. Momento en el cual se cuelga permanentemente(hay justo un cambio de bloque, creo que allí comienza el Bloque09, por la Address 0x10000 (0x20000 en bytes)).
Así que bueno, no habiendo podido ni leer ni escribir correctamente... ¡manos a la obra!. ¡A intentar construir sobre lo que otros han hecho(Y GRACIAS POR ELLO)! Y allí fuí.
He desarrollado una subrutina específica para la Samsung(y creo que debería funcionar con el resto de los modelos de memorias). Dicha subrutina requiere cambiar tanto en el archivo del lado de la PC como el del firmware interno del Teensy++.
Lo bueno es que parece funcionar. Cuando digo "parece" es porque si no logro leer dos veces lo mísmo...¿cómo esperan que pueda verificar la escritura al 100%? Tiene el típico problema de fallar al intentar escribir más allá de la dirección 0x400000(0x800000 en Bytes), es decir, en el segundo chip de la memoria.
Esto dicen que se soluciona conectando la línea A22 del Teensy++ con una resistencia de 3.3k en serie a a 3.3V. Dirán: ¿Para qué me hacen poner eso? ¿Acaso no pueden, mediante software, poner la pata del Teensy++ que comanda el pin A22 a 3.3V? ¿Acaso no es lo que hacen con el resto de los pines? Bueno, evidentemente hay un problema eléctrico. Un problema de cortocircuitos por estar comandando la memoria a la par de la PS3. Problema que puede ser causa de mis lecturas fallidas. He leído por ahí que este modelo de memoria Samsung sólo sería leída y grabada correctamente desoldandola y trabajando con ella por separado, para luego volver a soldarla una vez reprogramada. No me gusta la idea de tener que hacerlo, pero llegado el caso lo haré.
ADVERTENCIA! ASEGÚRENSE DE HABER DUMPEADO VARIAS VECES EL FIRMWARE QUE TIENE SU MEMORIA, Y CALCULEN LOS MD5 DE LOS ARCHIVOS DUMPEADOS. TIENEN QUE DAR EXÁCTAMENTE EL MÍSMO VALOR MD5 ANTES DE PROCEDER A BORRAR Y REESCRIBIR LA MEMORIAVolviendo, describo brevemente los comandos que he implementado:
El proceso es similar al que se utiliza para trabajar con el Teensy++ y el NORway(lo explíco para Windows. Los que utilizan Linux asumo que la tienen más clara):
Abrir una nueva consola de DOS e ir a la carpeta donde instalaron el Python. Una vez allí la estructura es:
primero, borrar el contenido de toda la memoria:
python.exe [RUTA_A_ARCHIVO_SAMSUNG.PY] [PUERTO] erase_samsung
Ejemplo:
python.exe C:\NORway\samsung.py COM3 erase_samsungLuego,
python.exe [RUTA_A_ARCHIVO_SAMSUNG.PY] [PUERTO] writeAlt [RUTA_A_ARCHIVO_A_ESCRIBIR] [offset(opcional)]
Ejemplos:python.exe C:\NORway\samsung.py COM3 writeAlt C:\NORway\final.bin.REVEjemplo para grabar sólo el segundo chip(por ahora con la resistencia a positivo que mencioné anteriormente):
python.exe C:\NORway\samsung.py COM3 writeAlt C:\NORway\final.bin.REV 0x400000Debería grabar toda la memoria en unos 7 minutos.
He modificado varias subrutinas(y una nueva: dumpAlt, que si bien es EXTREMADAMENTE lenta, parece ser la única que no me ha fallado al leer por lo poco que la he probado).
Los archivos están en etapa "beta" y no son definitivos.Adjunto los archivos necesarios:
<--- Contiene el archivo .hex compatible con mi programa de PC que debe ser cargado en el Teensy++ previo a ejecutar cualquier comando en la PC.
<--- Contiene el archivo que deben ejecutar en la PC para ingresar y ejecutar los comandos especificados.
Éxitos y cualquier avance, comentario o duda no duden en escribir.
Sigo en la lucha...
Links relacionados:noralizerps3devwiki