-->

domingo, 21 de setembro de 2008

Procedimento de leitura da flash serial do MT1389-L

Este post complementa o meu tutorial de extração de firmware, que só aborda a leitura de memórias flash paralelas. Este procedimento foi originalmente divulgado pelo mestre New Age. Eu estou apenas expandindo com o acréscimo de mais informações e alguns gráficos.

Você vai precisar:
  • Do cabo serial MT1389 convencional;
  • Da versão mais recente do MT1389 flasher de New Age.

Primeiro você precisa ter certeza de que a conexão física com a placa está correta, pois um fio mal conectado, porta serial errada ou mesmo a inversão acidental de TX e RX podem fazer você perder um looongo tempo e alguns cabelos. Para isso basta usar o próprio MT1389 Flasher:

Ajuste para Normal With Debug e clique em Read. Você precisa ter numa fração de segundo uma resposta semelhante à da figura abaixo:


As linhas prefixadas por um "R" (Read) são o chip respondendo. O valor exato da resposta não é tão importante aqui quanto o fato de haver uma resposta. Pois se você não estiver corretamente conectado não haverá resposta alguma. Enquanto você não estiver vendo essas linhas, não adianta tentar mais nada. Reveja suas conexões, teste o cabo, etc.

Estando a conexão física com a placa OK, o procedimento para ler a flash é o seguinte:

1) Desligue o aparelho (da tomada, preferencialmente);

2) Conecte os pinos 1 (CS#) e 4 (VSS) da flash com um fio e deixe conectado. A figura abaixo mostra como é no Eletrovision EV-597 que facilita enormemente as coisas por ter um soquete. Eu simplesmente enfiei o fio (rígido, de telefone) no espaço entre o soquete e o pino do chip:



ATENÇÃO: Certifique-se de que você sabe identificar quais são os pinos 1 e 4. O exemplo acima não é universal. Cuidado para não fritar o chip!

3) Ligue o aparelho. É normal que ele pareça morto e nem o display acenda;

4) Aguarde alguns segundos (New Age diz de 5 a 10 segundos);

5) Desconecte os pinos 1 e 4 com o aparelho ligado mesmo;

6) Inicie a leitura com o MT1389 Flasher (use um modo sem debug);

Se estiver tudo OK, flasher exibirá algo assim:



Note que ele reconheceu o chip como um EN25F80. Se seu aparelho tiver o mesmo chip, flasher precisa ter sido capaz de reconhecê-lo, do contrário há algo errado. Se o seu aparelho usar outro chip e flasher não identificá-lo imediatamente, verifique a seção [serial flash] do arquivo flasher.ini. Com a ajuda do datasheet do seu chip (ou mesmo de "educated guessing") você poderá acrescentar uma linha com a descrição de que flasher precisa. Eu não vou explicar aqui como a edição de flasher.ini funciona.

Tenha paciência. O processo de leitura leva cerca de 30 minutos para 1MB.

Para ter certeza de que a leitura foi correta (isso é importantíssimo se você está extraindo um firmware original), faça duas e compare o checksum/CRC de ambas. É altamente improvável que você consiga fazer duas leituras que dêem o mesmo checksum se ambas não estiverem perfeitas.

Se você não desligar o aparelho, poderá fazer quantas leituras quiser sem precisar repetir a colocação do jumper.

No meu PC não há diferença relevante entre os modos Normal, Faster e Faster2. E todos consomem uma CPU desprezível, que não chega a 5% de média. Provavelmente esses métodos só fazem diferença na leitura de flash paralela.

Para depois...

Eu ainda pretendo fazer experiências com um método mais direto de leitura/gravação deste chip, que não leve tanto tempo. Estou aguardando apenas ter saco de ir ao centro comprar os componentes de que preciso. Eu tentei ler o chip no meu gravador Willem mas o software só suporta chips de até 128KB nessa interface e ainda leu dezenas de bytes errados nesses 128KB. Uma vergonha...

Óbviamente existe um método mais rápido, porque o EV-597 leva segundos para dar boot e não 30 minutos.

4 comentários:

  1. Putz, tô rindo à toa aqui com essa maravilhosa notícia. Tava quase perdendo a esperança de upgrade de firmware pro EV-597. Já que a fábrica não consegue criar um firmware decente, os sábrios amigos daqui vão lá e detonam.
    Grande Abraço!

    ResponderExcluir
  2. 30 minutos? Mêinha nossa!

    Jefferson, os 1389L ainda continuam sem certificado de imortalidade? Se estivesse morto, via serial não teria como regravar a flash, com os conhecimentos atuais? Só através de um hardware específico com o chip soquetado nele, né?

    Essas notícias do New Age me deixam esperançoso. Hehehe!

    ResponderExcluir
  3. Jefferson,

    Já testou esse processo todo no Proview 801?

    []'s
    Daniel

    ResponderExcluir
  4. Daniel,

    Meu DVP-801 não é "L".


    Rafa,

    Eu ainda tenho muitos testes a fazer.

    ResponderExcluir

Siga as regras do blog ou seu comentário será ignorado.