Creo este hilo con la intencion de informar de cómo lo he hecho.
Porque he buscado info sobre el problemilla que tenía por aqui y nada de lo que he visto me ha servido.
Resulta que estaba actualizando un Lite-On PLDS DG-16D2S 74850C de ix1.5 -> 1.6:
En principio, todo normal y ningun problema:
-
Dumpear dummy.bin desde ixtreme (con JungleFlasher 1.66)
- Insertar la información de los codigos de barras y codigos 2D del lector, para
rellenar la informacion del firmware faltante. (con JungleFlasher 1.66)
-
Guardar Fimware iXtreme 1.6 con los datos del lector (
fimware preparado para escribir al lector,
"lite_cfw.bin") (con JungleFlasher 1.66)
Y a la hora de escribir el firmware es cuando he tenido el problema:
- Con el JungleFlasher 1.66 y en WindowsXP,
voy a borrar el firmware del lector para, posteriormente, escribirle el nuevo.
Y se queda colgado el PC a medias. (Confiaba en que no me pasaría, porque he flasheado unos cuantos lectores y nunca habia tenido problemas en WindowsXP con JungleFlasher).
El verdadero problema me ha venido cuando despues de arrancar en MS-DOS con un USB de arranque, al hacer "L-O-ERAS 09F0" (El puerto SATA donde tenia el lector conectado) conseguia ponerlo en el estado 0x72. Pero... al intentar escribir el firmware con DOSFLASH no me detectaba:
- el "Vendor ID" (me salia = "0xFF")
- el "Device ID" (me salia = "0xFF")
- el "Flash Chip Name" (me salia vacío = "")
- el "Size" (me salia = 0)
Y, logicamente a la hora de escribir el firmware, haciendo "DOSFLASH 09F0 W LITE_CFW.BIN" me decia que no podia porque no reconocia el tipo de Flash Chip.
He intentado un monton de cosas que he ido leyendo por aqui, ninguna me ha funcionado.
Asi que me he puesto a mirar los argumentos que se le pueden pasar al programa "DOSFLASH":
E:\>dosflash /?
DOSFLASH V1.7 Beta Build 20081223 by Geremia, Modfreakz and Kai Schtrom
DOSFLASH [R|W|E] [PORT] [PORT TYPE] [DRIVE POS] [MTK TYPE] [FLASH TYPE]
[FLASH SIZE] [FLASH CHIP ERASE OPCODE] [FILE NAME]
[SEND ATAPI DEVICE RESET]
R: Read FLASH
W: Write FLASH
E: Erase FLASH
PORT: Port to send command to e.g. 0970
PORT TYPE: 0 for IDE, 1 for SATA
DRIVE POS: A0 for Master, B0 for Slave
MTK TYPE: 0 for 0x70 par, 1 for 0x73 ser, 2 for 0x72 ser
FLASH TYPE: 0 for normal handling, 1 for serial SST
FLASH SIZE: size of flash chip in number of banks
FLASH CHIP ERASE OPCODE: individual chip erase opcode command byte
this is only needed for erasing a serial flash
FILE NAME: name of the file to read/write from/to flash
SEND ATAPI DEVICE RESET: 0 for no, 1 for yes
All numbers are intepreted as hex values!
Press any key to continue...
DOSFLASH LiteOn Extended Command Set
DOSFLASH [LITEON] [E|K] [PORT] [COM PORT] [INQUIRY FILE] [IDENTIFY FILE]
[KEY FILE] [DUMMY FILE]
LITEON: Set drive type to LiteOn
E: Geremia's LiteOn Erase
K: Geremia's LiteOn DvdKey
PORT: Port to send command to e.g. 0970
COM PORT: number of COM port to receive drive key data
e.g. 1, 2, 3 or 4
INQUIRY FILE: File name for inquiry data
IDENTIFY FILE: File name for identify data
KEY FILE: File name for key data
DUMMY FILE: File name for dummy firmware data
All numbers are intepreted as hex values!
Veo que puedes especificar las propiedades del "Flash Chip" con los parametros: [MTK TYPE], [FLASH TYPE] y [FLASH SIZE].
Asi que pruebo a ponerle los siguientes parametros:
"dosflash w 09F0 1 A0 2 1 4 lite_cfw.bin 1"Explico:
"dosflash" - Es el programa
1er arguento [R|W|E] = "W": Write Flash (Escribir en la Flash)
2ndo argumento [PORT] = "09F0": Es el puerto SATA Maestro en el que tengo conectado el lector.
3er argumento [PORT TYPE] = "1": Tipo del puerto = SATA
4rto argumento [DRIVE POS] = "A0": Maestro
5nto argumento [MTK TYPE] = "2": "for 0x72 ser" (Por probar, si no hubiera funcionado hubiera probado con "1 for 0x73 ser"
- (Sé que era una memoria Flash de comunicacion Serie ([MTK TYPE] = "1 for 0x73
ser" o "2 form 0x72
ser". Intuyo que lo de "ser" al final significaba "serial" = serie), y no "paralel" = paralelo ([MTK TYPE] = "0 for 0x70 par")
6xto argumento [FLASH TYPE] = "1": "1 for serial SST" (ponia "serial", asi que... por probar)
7imo argumento [FLASH SIZE] = "4": El numero de bancos de la memoria, equivalen a 256KB.
8avo argumento [FLASH CHIP ERASE OPCODE] - Me lo salto porque no tengo ni remota idea de lo que es...
9eno argumento [FILE NAME] = "lite_cfw.bin": el firmware a escribir
10mo argumento [SEND ATAPI DEVICE RESET] = "1": "1 for yes" Supuse que sería posiblemente un comando Outro o algo asi... Por probar
Y al probar con esos argumentos, automáticamente se pone a escribir el fimware, vuelvo a ejecutar "dosflash" y ya me reconocía el "Vendor ID" = 0xEF, el "Device ID" = 0x11, el "Flash Chip Name" = "Winbond..." y el "Size" = 262144 bytes.
Apago el PC y conecto la lectora a la consola para probarlo. Lo pruebo y no expulsaba la bandeja, asi que no lo había escrito bien.
Entonces supongo que si ya me reconoce el tipo de chip y todo eso, puedo volver a escribir nomalmente el firmware. Pues entonces, vuelvo a conectar el lector al PC, arranco en MS-DOS, ejecuto "dosflash":
- Me pregunta cual de la lista de unidades és el lector, con la informacion de la Flash que no me reconocía.
- Al seleccionarlo te pregunta qué es lo que quiero hacer sobre ese lector, pongo que quiero escribir "Write" = "W"
- Ahora pregunta sobre el fimware a escribir; asi que pongo "lite_cfw.bin"
- Se pone a escribir el fimware, y termina correctamente.
Lo comprueba volviendo a conectar el lector a la consola. Pruebo a expulsar la bandeja y sin problemas, pruebo una copia de seguridad y sin problemas.
Espero que la info le sirva a alguien mas