G640T brickato: impossibile scrivere sulla flash tranne i primi 64Kb

  • 28 Risposte
  • 12043 Visite

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline marven

  • VIP
  • *****
  • 3882
Re: G640T brickato: impossibile scrivere sulla flash tranne i primi 64Kb
« Risposta #15 il: 24 Ottobre 2007, 17:47 »
Guybrush, non so se ti è sfuggito... nel caso lo ripeto perchè è fondamentale:

l'indirizzo target RAM per la CPU MIPS 4kec deve essere 0xA0000000 altrimenti il flash programmer non ti funzionerà mai.

cerca poi di procurarti la versione non demo.

Offline guybrush

  • Esperto
  • ****
  • 810
Re: G640T brickato: impossibile scrivere sulla flash tranne i primi 64Kb
« Risposta #16 il: 24 Ottobre 2007, 19:58 »
Ho corretto l'indirizzo target ram start ma il comportamento è sempre lo stesso...

Offline guybrush

  • Esperto
  • ****
  • 810
Re: G640T brickato: impossibile scrivere sulla flash tranne i primi 64Kb
« Risposta #17 il: 24 Ottobre 2007, 21:55 »
@marven

L'unica cosa che mi rimane da provare è OCD Commander anche se non sono troppo fiducioso... Volendo usare fpgm per il flashing, ho visto che l'immagine bin andrebbe convertita in s19 (c'è un programmino apposito sotto fpgm) ma non capisco cosa intenda per start address che va specificato da linea di comando...  :o Non credo proprio sia quello nella flash visto che stiamo solo convertendo un file...
I risultati delle prove che ho postato alla pagina precedente non ti suggeriscono nulla? Ho dato uno sguardo al topic che mi hai segnalato (sguardo inevitabilmente superficiale dato che sono circa 14 pagine) e non mi pare di aver trovato accenni ai miei problemi con la compilazione di Jtag Tools: tu hai per caso avuto i miei stessi problemi? Nel topic dici di aver utilizzato il precompilato di jtag-brecis ma magari ti è capitato di farlo in un'altra occasione, almeno spero! ;)
Ciao e grazie per la tua risposta! :)
« Ultima modifica: 24 Ottobre 2007, 21:58 da guybrush »

Offline guybrush

  • Esperto
  • ****
  • 810
Re: G640T brickato: impossibile scrivere sulla flash tranne i primi 64Kb
« Risposta #18 il: 24 Ottobre 2007, 23:54 »
Ho scaricato e installato ocd commander e, a parte che non sono sicuro di aver correttamente definito la cpu (a parte che anche qui la TI non c'è, i modelli sono diversi da quelli di fpgm comunque ho messo IDT mips32...) anche facendo l'halt la scrittura di mtd3 si blocca al principio.
Inizio a pensare seriamente di dovermi arrendere... :(

Offline marven

  • VIP
  • *****
  • 3882
Re: G640T brickato: impossibile scrivere sulla flash tranne i primi 64Kb
« Risposta #19 il: 25 Ottobre 2007, 12:20 »
@Guybrush
La sintassi di BinToS19.exe è questa (esempio con adam2):

BinToS19.exe mio_adam2 0x90000000 mio_adam2.s19

Il file .s19 è un file di testo e l'indirizzo della flash il flash programmer lo legge da li facilitando le cose. in realtà ci puoi mettere l'indirizzo che vuoi e poi quello giusto lo metti nell'interfaccia di flash programmer.

Prima di flashare il file .s19 lo devi convertire ancora con il programmillo ByteSwapS19.exe. E' una questione di endianess del processore.

ByteSwapS19.exe mio_adam2.s19 mio_adam2_swappato.s19

quindi alla flash invii il file mio_adam2_swappato.s19

ByteSwapS19.exe lo trovi dentro uno dei file .zip che trovi qui:

http://files.dlinkpedia.net/altro/adam2_backup/

Riguardo la configurazione di OCD Commander, come Target Processor devi mettere MIPS/4KE oppure MIPS/EJTAG 2.5, 32 bit

Magari devi anche impostare  la velocità della LPT1 : 1 è la più alta, 8 la più bassa. Talvolta abbassando la velocità di comunicazione (ciò vale anche per il flash programmer) si possono risolvere eventuali problemi di compatibilità con la porta parallela. Anche cambiare il modo di comunicazione della parallela nel bios del PC può aiutare.

Riguardo Jtag Tools, io ho usato l'exe che c'è nel pacchetto. Non ricordo di averlo mai compilato.

Se non l'hai già fatto e se ti è possibile ti consiglierei di provare  OCD flash e programmer con un router che sicuramente non ha problemi alla flash, poi una volta che ti sei assicurato che il setup cioè interfaccia JTAG, impostazioni varie di OCD e del bios PC sono a posto e tutto funziona, puoi passare al G604T problematico.


« Ultima modifica: 25 Ottobre 2007, 12:22 da marven »

Offline guybrush

  • Esperto
  • ****
  • 810
Re: G640T brickato: impossibile scrivere sulla flash tranne i primi 64Kb
« Risposta #20 il: 25 Ottobre 2007, 14:54 »
Ciao marven e grazie! Avevo intuito qualcosa del genere (anche se come giustamente dici anche tu è un'informazione ridondante dato che viene ridefinita all'atto della scrittura) infatti la conversione l'avevo fatta con il comando:

bintos19 mtd3.bin 0x903f0000 mtd3.s19

ma non ho fatto il byte swap (il programmino è già presente in fpgm, quello di dlinkpedia ha qualcosa di diverso?), grazie della dritta! Ho comunque provato a fare il flashing (anche se di un'immagine non corretta visto che mancava lo swap) e tutto è andato come sempre però con una strana differenza: a volte si blocca subito, altre si blocca dopo un pò (comunque molto poco e sempre in punti diversi)...

Ovvio che in OCD Commander cercassi il mips/4KE. In effetti è molto strano visto anche che sullo stesso sito MacRaigor dicono che ocd supporta lo stesso hw di fpgm ma i processori disponibili sono diversi e il mips non c'è come ti ho detto. Ho scaricato l'ultima versione disponibile sul sito.

Per quanto riguarda la parallela, sfondi una porta aperta: quando faccio queste cose, la prima cosa che faccio è mettere da bios la parallela in modalità SPP (quindi la più lenta) e di impostare la velocità della porta in fpgm al minimo proprio come mi hai suggerito.

Per la validità dell'accoppiata parallela/jtag, ti confermo che ci ho già resuscitato alcuni modem e router di amici (l'ultimo circa tre settimane fa) quindi che vada è l'unica certezza che ho.

Penso seriamente di dover iniziare a pensare alla resa anche se mi fa una rabbia che non immagini non per il danno (il router non è neanche mio ma come al solito di un amico) ma per il fatto di dargliela vinta!  >:(
« Ultima modifica: 25 Ottobre 2007, 14:57 da guybrush »

Offline marven

  • VIP
  • *****
  • 3882
Re: G640T brickato: impossibile scrivere sulla flash tranne i primi 64Kb
« Risposta #21 il: 25 Ottobre 2007, 17:02 »
Citazione
Per la validità dell'accoppiata parallela/jtag, ti confermo che ci ho già resuscitato alcuni modem e router di amici (l'ultimo circa tre settimane fa) quindi che vada è l'unica certezza che ho.
E' già qualcosa. Ti resta da verificare il "trio" wiggler-OCD-router_senza_problemi.

Citazione
Ovvio che in OCD Commander cercassi il mips/4KE. In effetti è molto strano visto anche che sullo stesso sito MacRaigor dicono che ocd supporta lo stesso hw di fpgm ma i processori disponibili sono diversi e il mips non c'è come ti ho detto. Ho scaricato l'ultima versione disponibile sul sito.
Non so che dirti. Ho scaricato e installato l'ultima versione 1 min fa e MIPS c'è.

Offline guybrush

  • Esperto
  • ****
  • 810
Re: G640T brickato: impossibile scrivere sulla flash tranne i primi 64Kb
« Risposta #22 il: 25 Ottobre 2007, 19:37 »
Guarda...Non so che dire! Magari ieri mi è sfuggito, ma effettivamente in OCD Commander MIPS c'è così come il 4KE. Si vede che, a forza di sbattere la testa sempre su queste stesse cose, non vedo neanche più quello che ho sotto al naso, scusami!
Cmq di seguito ti riporto i passi che ho seguito:
  • Impostato ocd con MIPS 4KE e velocità al minimo, dato il reset quindi l'halt (tutto liscio senza problemi). Lo status viene sempre dato "in DEBUG", credo sia normale essendo OCD un debugger...
  • Aperto fpgm con:
    CPU: MIPS32_4KE
    target RAM starts at: 0xA0000000
    EEPROM: AT49BV322A
    starts at: 0x90000000
  • Convertito mtd3.bin salvato da telnet da un G604T gemello (al momento non ho un G604T con pettine jtag saldato per poterlo fare da jtag ma tanto non cambia nulla) mediante il comando:
    BinToS19.exe mtd3.bin 0x903f0000 mtd3.s19
  • Fatto il byte swap del file appena creato mediante il comando:
    ByteSwapS19.exe mtd3.s19 mtd3swp.s19
    (non ho specificato la swap size assumendo che, dato che non mi hai detto nulla, il 4 di default vada bene)
  • Tentata la scrittura con fpgm del file così creato con questi risultati:
    Prima scrittura: blocco su 0x903f0000
    Seconda: blocco su 0x903f1000
    Terza: blocco su 0x903f2000
    Quarta: blocco su 0x903f3000
    Quinta: blocco su 0x903f4000
    Sesta: di nuovo blocco su 0x903f0000 (e di nuovo con la sequenza appena descritta all'infinito, non riesco mai ad andare oltre ox903f4000)
  • Ho riprovato la stessa esatta procedura anche selezionando come flash la AT49BV322AT e tutto va nello stesso esatto modo
Penso che questa cosa del blocco su punti diversi a seconda del tentativo (sempre allo stesso modo, te lo ripeto) possa essere significativa. Non so che altro dire se non che sarebbe utile poter provare con Jtag Tools.
Pensavo... E' vero che hai usato il jtag.exe precompilato ma ioperm.sys l'avrai quantomeno dovuto compilare ed io ho avuto problemi anche lì: a te invece è andato tutto liscio?

Offline guybrush

  • Esperto
  • ****
  • 810
Re: G640T brickato: impossibile scrivere sulla flash tranne i primi 64Kb
« Risposta #23 il: 25 Ottobre 2007, 19:59 »
Stavo pensando: e se scrivessi la flash in blocchi più piccoli? L'unità minima sono 8Kb? E poi, come potrei spezzare (senza corrompere) il file? Ciao e buona serata! :)

Offline marven

  • VIP
  • *****
  • 3882
Re: G640T brickato: impossibile scrivere sulla flash tranne i primi 64Kb
« Risposta #24 il: 25 Ottobre 2007, 20:36 »
Riguardo la scrittura a pezzi ciò è possibile. Devi dividere il file da inviare.
La procedura da seguire è quella da me descritta un paio di anni fa su dlinkpedia per risolvere un probema con la flash Intel di un mio 302t:

http://www.dlinkpedia.net/hardware/jtag_su_30xT-preparazione-adam.php

Li il blocco avveniva a 1 KB.

Però non capisco perchè vuoi scrivere la mtd3. Ti basta cancellarla. Ti risparmi tutto il lavoro con gli s19 etc
Una volta cancellata flashi il router con Ciclamab. Probabilmente nello stato in cui è ora la mtd3 contiene dei valori (dovuti a corruzione) che bloccano ADAM2, ma se è cancellata funzionerebbe.
Se sei riuscito a scriverci qualcosa (verifica con Target memory) è sicuramente sprotetta.
Hai riprovato con Ciclamab/Jtag o debrick-mod?

Riguardo ioperm.sys non l'ho compilato, l'ho trovato sicuramente da qualche parte, non ricordo dove, cerca con google.

PS
Ti sei assicurato che la versione adam2 installata sulla flash sia adatta alla flash AT49BV322A?
Hai provato con altre versioni, per esempio quelle di Jack?
« Ultima modifica: 25 Ottobre 2007, 20:44 da marven »

Offline guybrush

  • Esperto
  • ****
  • 810
Re: G640T brickato: impossibile scrivere sulla flash tranne i primi 64Kb
« Risposta #25 il: 26 Ottobre 2007, 00:51 »
Non sono masochista, credimi... Come descritto all'inizio del thread, se cancello mtd3, al primo avvio adam2 provvede a scriverlo con i valori di default (come è normale che sia), peccato che si blocchi all'inizio della scrittura! :( Questo verificato via seriale. Per quello devo necessariamente trovare un modo di scriverlo io...
La versione di adam2 come detto viene da un router con la stessa esatta flash (e comunque, correggimi se sbaglio, la distinzione è Intel vs tutti gli altri produttori quindi, a meno di non incappare in una flash Intel, il problema non si pone).
Il blocco "ciclico" e il fatto che le ID rilevate dalla flash non corrispondano con quelle attese non ti dice nulla? Cmq darò uno sguardo al link che mi hai indicato. Ciao e buona giornata per domani (o per meglio dire oggi! ;) )

Offline marven

  • VIP
  • *****
  • 3882
Re: G640T brickato: impossibile scrivere sulla flash tranne i primi 64Kb
« Risposta #26 il: 26 Ottobre 2007, 11:57 »
Il problema è che anche se la mtd3 la flashi tu via Jtag ciò che ti serve non è la mtd3 corretta che hai flashato ma la cancellazione che precede la scrittura. Quindi è sufficiente che cancelli la mtd3 e verifichi che sia cancellata con Target Memory oppure facendone un backup con Ciclamab/Jtag o debrick-mod.

Anche dovessi riuscire a metterci una mtd3 corretta via Jtag e dovessero permanere i problemi di scrittura con adam2 e/o con il firmware (sempre che riesci a mettercelo) probabilmente avresti un router con dei problemi. Al primo tentativo di scrittura delle variabili d'ambiente o del config la scrittura si bloccherebbe e forse la mtd3 si corromperebbe.

OCD deve rilevare ID corretti, altrimenti vuol dire che ci sono dei problemi. Anche il blocco in scrittura indica ovviamente che ci sono dei problemi.

Riguardo la questione flash Intel o non Intel, adam2 per flash Intel o flash non Intel, è vero che il problema talvolta è stato rilevato su router Dlink con flash Intel in cui all'origine (o dopo un aggiornamento firmware) è stato installato adam2 per flash AMD, ciò non toglie che il "tuo"  adam2 possa avere dei problemi con "quella" flash problematica e che un altro adam2 invece no. Quindi vale la pena provare.


Offline guybrush

  • Esperto
  • ****
  • 810
Re: G640T brickato: impossibile scrivere sulla flash tranne i primi 64Kb
« Risposta #27 il: 26 Ottobre 2007, 20:10 »
Hai perfettamente ragione... Sono tutte considerazioni che ho già fatto e infatti mi arrendo qui perchè è evidente che ci deve essere un qualche danno hw (infatti il router ha smesso di funzionare di punto in bianco senza cause apparenti). L'ultimo tentativo che ho fatto è stato scrivere mtd3 in blocchi da 1Kb come mi hai indicato (tutto molto più semplice di quanto immaginassi) e il risultato è che la scrittura va a buon fine (in realtà per ogni blocco da 1Kb devo fare due scritture perchè la prima fallisce regolarmente ma alla fine riesco e il verify da esito positivo) salvo poi il fatto che di punto in bianco la flash si riazzera.
Ho provato tre adam2 originali e anche la versione di Oleg sempre con lo stesso risultato quindi temo sia chiaro che il problema non risiede lì.
Come detto, depongo le armi. Grazie mille per le dritte che mi hai dato: se non altro ho imparato altre cose e, fosse solo per questo, non è stato tempo perso. ;)

Offline marven

  • VIP
  • *****
  • 3882
Re: G640T brickato: impossibile scrivere sulla flash tranne i primi 64Kb
« Risposta #28 il: 26 Ottobre 2007, 20:27 »
Eh si, mi sa che è arrivata l'ora di rassegnarsi, dev'esserci un problema HW. Vabbè, è sempre tutta esperienza  8)