Miniguida riassuntiva JTAG <-> IP301

Modifiche Firmware e altro

Moderatore: phpBB Moderatori

Messaggioda sebonweb » mar gen 20, 2009 5:38 pm

Mini guida riassuntiva per flashare l'ip301 con tjtag (parte prima)

N.B: Ho utilizzato linux per comodita', in quanto tjtag e' gia compilato ed e' possibile utilizzare una distro live avendo l'accortezza di scaricare i file necessari su pendrive.
E' possibile utilizzare anche windows, ma:

1) bisogna compilare il programma (installare un compilatore)
2) bisogna installare cygwin
3) bisogna installare il driver per l'accesso diretto alla parallela.
4) tjtag funziona meglio sotto linux che e' l'ambiante nativo.

Se volete utilizzare solo windows qui: (http://beghiero.myftp.org) il pacchetto completo COMPRESO il TJTAG.EXE per Windows (grazie beghiero).
N.B. In questo caso le indicazioni per l'utilizzo di tjtag sono le stesse ma si opera in ambiente windows.


Hardware necessario:
- ip301 (qualsiasi versione bloccata) :)
- pc con porta seriale e porta parallela.
- cavo jtag autocostruito (unbuffered Cable, Xilinx DLC5 Cable III). vedi qui: http://wiki.openwrt.org/OpenWrtDocs/Cus ... JTAG_Cable
- cavo seriale con adattatore di livelli rs232-ttl per il collegamento seriale. Io ho utilizzato il cavo seriale per collegare il pc ad una vecchia agenda della casio.

Lo schema per la realizzazione dell'adattatore di livelli rs232-ttl a componenti discreti e' questo: http://picprojects.org.uk/projects/simpleSIO/ssio.htm
Lo schema con integrato max si puo trovare qui: http://www.compsys1.com/workbench/On_to ... apter.html
Su ebay si trovano gia montati: basta cercare rs232-ttl.

Software necessario:
- pc con windows e linux installati (per comodita' ho utilizzato ubuntu).
- tjtag modificato da roleo (grazie ancora): http://roleo.dyndns.org/public/varie/src
Attenzione nuova versione di tjtag:
roleo ha scritto:Ho messo le label per definire le aree di memoria, per cui ora si può leggere e scrivere senza usare custom.

Queste le label:
BOOTLOADER
FCODEC
IC
VOIP
X
Y
SETTINGS
WHOLEFLASH

Le label X e Y non so cosa contengono per cui l'indirizzo di start e la lunghezza potrebbero non essere corretti.
Anche su SETTINGS ho qualche dubbio.

Ho disattivato il parametro /nodma perché non sono riuscito a farlo funzionare pienamente in PrAcc mode, tanto non serve.

Ho compilato anche la versione win grazie a un amico...

Ecco un comando di esempio per leggere ic.gz:

Codice: Seleziona tutto
# tjtagv2-1-4.exe -backup:ic




- un editor esadecimale per editare ic.img (io ho utilizzato winhex http://www.x-ways.net/winhex.zip)
- putty (per gestire il collegamento seriale): http://www.chiark.greenend.org.uk/~sgta ... nload.html
- server tftp per effettuare il download del firmware via seriale (http://tftpd32.jounin.net/)
-1- Operazioni pratiche hardware da effettuare con un saldatore adeguato (microstilo):
Assemblaggio del cavo JTAG: collegare il cavo jtag (5 fili) al connettore jp10 dell' ip301 secondo questo schema:

Codice: Seleziona tutto
LPT------------JP10
2<----100ohm--->3  (DATA0)
3<----100ohm--->9  (DATA1)
4<----100ohm--->7  (DATA2)
13<---100ohm--->5  (SELECT)
17.25<--------->2  (GND)

L'ordine delle piazzole del JP10 e' indicato da una serigrafia bianca vicino al piedino 1 (che e' quadrato): le piazzole 2-4-6-8-10-12 sono tutte gnd. Se avete dei dubbi controllate con un tester. Un particolare del connettore JP10 qui: http://www.flickr.com/photos/32180926@N02/3063753427/

Per le resistenze si possono utilizzare quelle da 1/4w o da 1/2w, non ha importanza, la cosa fondamentale e che i fili non siano piu' lunghi di 15-20 centimetri.

Collegare il cavo seriale+adattatore di livelli al connettore jp2 (3 fili) dell'ip301 (qui la guida: http://www.vocesuip.com/ip_301_guida_al ... 171.0.html)


-2- Operazioni preliminari per l'utilizzo di tjtag:
- Avviare ubuntu

Se utilizzate la distro live:
- Collegate la pendrive dove avete precedentemente scaricato e scompattato l'archivio tjtag: il dispositivo apparira' sul desktop.
- Cliccate sull'icona della pendrive e prendete nota del percorso (ad esempio /media/disk1)
- Avviare un finestra con prompt dei comandi (terminale) [Applicazioni->Accessori->Terminale]
- entrate nella cartella radice sulla pendrive
Codice: Seleziona tutto
  # cd /media/disk1


- entrate nella cartella tjtag/linux dove risiede l'eseguibile:
Codice: Seleziona tutto
# cd tjtag/linux
(o il nome che avete dato alla cartella tjtag quando avete scompattato l'archivio)

Se utilizzate distro su harddisk:
- scaricate l'archivio tjtag:
Codice: Seleziona tutto
# sudo wget http://roleo.dyndns.org/public/varie/src/tjtagv2-1-4_for_Lexra_LX4380_CPU.zip - O tjtag.zip


- scompattare l'archivio con il software per jtaggare l'ip301
Codice: Seleziona tutto
# sudo unzip tjtag.zip

- entrare nella cartella dove risiede l'eseguibile:
Codice: Seleziona tutto
# cd tjtag/linux


N.B. Da qui in poi le operazioni sono comuni alle 2 modalita':
- cambiare i permessi a tjtagv2:
Codice: Seleziona tutto
# sudo chmod 777 tjtagv2


- disattiviamo il demone lp per consentire l'accesso diretto alla porta parallela a tjtag
Codice: Seleziona tutto
# sudo rmmod lp


- lanciamo tjtag per vedere se tutto fin qui e' ok (permessi, etc):
Codice: Seleziona tutto
 # sudo ./tjtagv2

Dovrebbero apparire una serie di info...andiamo avanti.

-3- Backup della flash:
- Effettuiamo il backup dei primi 4 blocchi della memoria dell'ip301 (blocco 1: bootloader, blocchi 2,3 i codec, e blocco 4 l'interprete dei comandi gestibile via interfaccia seriale: ic.img):
Codice: Seleziona tutto
# sudo ./tjtagv2 -backup:custom /window:0x1fc00000 /start:0x1fc00000 /length:0x40000

Se tutto e' ok, verranno visualizzati dei messaggi diagnostici, visualizzato e scritto un file (CUSTOM.BIN.SAVEDxxxxxxxx...) con il dump della memoria.

Se qualcosa non va per il verso giusto potrebbe dipendere da:
1) cavo jtag male realizzato o troppo lungo
2) collegamenti cavo ip301 errati
3) saldature fredde, male eseguite o in corto

-4- Patch di ic.img per consentire l'accesso seriale al programma di diagnostica dell'ìip301:
Il dump che abbiamo effettuato comprende 4 blocchi da 64k ciascuno, quello che ci interessa e' l'ultimo contenente ic.gz (ic.img in formato compresso con gzip).
La patch a ic.img serve per eliminare la richiesta della password quando da seriale si accede al programma di diagnostica premendo INVIO al boot dell'ip301.
Dobbiamo estrarre l'ultimo blocco da 64k dal nostro dump, scompattarlo (con gzip), patcharlo con un editor binario (come hex workshop) e poi riasseamblarlo all'interno del file di dump per poterlo riflashare.
Cominciamo a leggere qui: http://www.vocesuip.com/804322l_ci_lavo ... msg6598631

[fine prima parte]

Mini guida riassuntiva per flashare l'ip301 con tjtag (seconda parte)

-5- Preparazione per la patch:

- Facciamo una copia del nostro dump...
Codice: Seleziona tutto
# sudo cp CUSTOM.BIN.SAVEDxxxxxxx CUSTOM.BIN

- Otteniamo ic.gz da CUSTOM.BIN:
Codice: Seleziona tutto
# sudo dd if=CUSTOM.BIN of=ic.gz bs=256 skip=768 count=256


- Scompattiamo ic.gz:
Codice: Seleziona tutto
#  sudo gunzip -cd ic.gz > ic.img


Ora abbiamo ic.img da patchare.

-6- Patch di ic.img:
Se stiamo utilizzando ubuntu live con i file su pendrive conviene effettuare lo shutdown e tornare a windows:
- lanciamo winhex per modificare ic.img
- carichiamo ic.img e andiamo all'offset 00023A78 (quasi alla fine del file) e sostituiamo con degli zeri (0) tutto fino all'offset 00023AC0.

Codice: Seleziona tutto
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

00023A70                            63 00 00 00 6F 00 00 00           c...o...
00023A80   65 00 00 00 6D 00 00 00  74 00 00 00 75 00 00 00   e...m...t...u...
00023A90   61 00 00 00 6E 00 00 00  37 00 00 00 32 00 00 00   a...n...7...2...
00023AA0   64 00 00 00 72 00 00 00  38 00 00 00 33 00 00 00   d...r...8...3...
00023AB0   34 00 00 00 35 00 00 00  30 00 00 00 0A 20 0A 20   4...5...0.... .

Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

00023A70                            00 00 00 00 00 00 00 00           ........
00023A80   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00023A90   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00023AA0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00023AB0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................


- Salviamo il file (sempre su pendrive) dandogli ad esempio nome icmod.img
- Rifacciamo il boot con linux



Se invece stiamo utilizzando ubuntu installato sul pc, possiamo utilizzare ghex (se non e' installato basta andate su Applicazioni->Aggiungi/Rimuovi ed installarlo.
- Lanciamo ghex [Applicazioni->Programmazione->Editor Esadecimale]
- Apriamo ic.img e compiamo le stesse operazioni da effettuare con winhex...Salviamo il file dandogli nome icmod.img


L'immagine salvata non ha controllo di checksum o crc, ma verificate che il file salvato sia lungo esattamente 146.832 byte.


N.B.da qui le operazioni tornano ad essere in comune:

-7- Preparazione per flashare icmod.img patchato:
In ubuntu lanciamo una finestra con la console (vedi prima parte) e torniamo nella nostra cartella di lavoro.
Ricordiamoci nuovamente di disattivare il demone lp se siamo tornati da windows:
Codice: Seleziona tutto
# sudo rmmod lp



Ora dobbiamo ricomprimere il file patchato (icmod.img):
Codice: Seleziona tutto
# sudo gzip -c icmod.img > icmod.gz

Poiche flashare e' un operazione lenta e critica, preferiamo flashare solo il blocco modificato, quindi dovremo preparare un file CUSTOM da dare in pasto a tjtag:
Codice: Seleziona tutto
# cp icmod.gz CUSTOM.BIN


A questo punto abbiamo pronto il file per essere flashato.


-8- Flash di CUSTOM.BIN (icmod.gz):
La prossima operazione e' molto critica e se qualcosa va male l'ip301 sicuramente smettera' (per il momento) di funzionare. Quindi controllate bene le operazioni fin qui eseguite, perche' e' meglio un telefono bloccato che uno da rianimare... :)
- Andiamo con lo sblocco: scrivendo solo il blocco aggiornato:
Codice: Seleziona tutto
# sudo ./tjtagv2 -flash:custom /window:0x1fc00000 /start:0x1fc30000 /length:0x10000 /silent

Al termine dell'operazione se tutto e' andato per il verso giusto sara' possibile l'accesso via seriale all'ip301

N.B. se non riusciamo a flashare il telefono, cioe' tjtag non riesce a completare la scrittura, armiamoci di pazienza e ricontrolliamo tutti i collegamenti cavo jtag <-> ip301: e' un problema nostro e non del telefono. Se tutto e' ok l'operazione di flash va in porto senza problemi ed il telefono funzionera come al solito, anzi meglio visto che ora e' possibile accedervi via seriale.


-9- Rianimiamo il morto:
Come detto precedentemente se qualcosa e' andato storto il telefono non funzionera' piu'...pero' possiamo sempre riflashare il dump che abbiamo effettuato in precedenza.
Diamo un occhiata alla nostra cartella di lavoro:
Codice: Seleziona tutto
# ls -l CUSTOM.BIN.*

Controlliamo che l'output del comando ls riporti almeno un file (potrebbero essercene piu' di uno se abbiamo dato diverse volte il comando per effettuare il backup) e controlliamo che la lunghezza sia esattamente di 262144 bytes. Annotiamo il file che e' ok e facciamone una copia:
Codice: Seleziona tutto
 # cp CUSTOM.BIN.SAVED_xxxxxxx CUSTOM.BIN
(sostituite xxxxxxx con la parte finale del vostro file CUSTOM.BIN.SAVED...)
Rianimiamo l'ip301:
Codice: Seleziona tutto
# sudo ./tjtagv2 -flash:custom /start:0x1fc00000 /window:0x1fc00000 /length:0x40000


[fine seconda parte]

Mini guida riassuntiva per flashare l'ip301 con tjtag (considerazioni finali e trucchi)

Quest'ultima parte sara' meno approfondita in quanto giunti a questo punto saremo tutti piu' smaliziati ed informati...

Se siamo gia in possesso di una versione patchata di ic.gz e' possibile andare direttamente al punto -8- (flash di CUSTOM.BIN), tuttavia consiglio sempre di fare il backup della flash per testare il funzionamento del collegamento jtag.

Certi del funzionamento del collegamento jtag, dotati di buona pazienza, nulla ci impedisce di flashare l'intero contenuto della memoria dell'ip301 con un firmware nobrand per non dover intervenire via seriale.
Basta saper attendere perche il tempo per flashare l'intera memoria e' lungo... :)
Io consiglio questo firmware IP-301_80521.rom perche' l'ultimo (IP301_0810170.rom) ha un bug che esclude la prima suoneria.
Il comando per flashare l'intera memoria con un file .rom e' il seguente:
Codice: Seleziona tutto
# sudo ./tjtagv2 -flash:custom /start:0x1fc00000 /window:0x1fc00000 /length:0x200000


oppure

Codice: Seleziona tutto
# sudo ./tjtagv2 -flash:wholeflash


Se vogliamo seguire la via seriale anche per scoprire il programma di diagnostica dell'ip301, colleghiamo il cavo seriale all'ip301.

- Impostiamo un ip fisso sul pc (p.e. 192.168.1.10)
- Colleghiamo con un cavo diretto la porta ethernet del pc alla porta LAN dell'ip301
- Lanciamo tftpd32, attiviamo il server tftp e dhcp impostando per quest'ultimo un indirizzo di partenza appartenente alla stessa sottorete del pc (p.e. 192.168.1.20) e un numero adeguato di ip da assegnare (pool): 50. Inseriamo anche la subnetmask corretta (255.255.255.0).
Ultima operazione e' quella di verificare la presenza di voip.gz nella cartella di upload del server tftp

- Lanciamo putty, selezioniamo la porta COM alla quale e' collegato il telefono e modifichiamo la velocita' da 9600 a 57600.

- Accendiamo il telefono: se tutto e' ok, apparira il POST.  Premiamo INVIO ed entriamo nel programma di diagnostica.
-Selezioniamo 
Codice: Seleziona tutto
 [F] Tftp Download

e poi
Codice: Seleziona tutto
[2] Burn Voip to Flash


Ed il gioco e' fatto... :)

Nota: Il testo evidenziato in questo colore indica una nuova revisione della guida.
Ultima modifica di sebonweb il ven gen 23, 2009 8:11 am, modificato 1 volta in totale.
sebonweb
Beginner
Beginner
 
Messaggi: 22
Iscritto il: mer nov 29, 2006 12:10 pm
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda linus » mar gen 20, 2009 5:56 pm

Per il collegamento seriale, si può utilizzare un cavo Siemens della serie C/M/S 35 che si trovano a basso prezzo poiché tale cellulare non viene più commercializzato, modificando opportunamente il connettore.

Per maggiori info, potete vedere http://wiki.vocesuip.com/index.php?titl ... le_Seriale

@sebonweb
Complimenti per la chiarezza dell'esposizione e la capacità di riassumere i passaggi salienti delle procedure.

linus
Solo se sai cercare riuscirai nel tuo intento, la ricerca ci accompagna per tutta la vita e fa si che cresciamo ogni giorno un po'. Se hai la minestra pronta e riscaldata, non riuscirai mai a gustare il suo vero sapore e trovarne il piacere.
Avatar utente
linus
Guru
Guru
 
Messaggi: 4105
Iscritto il: lun ago 14, 2006 10:27 am
Ha ringraziato: 2 volte
Hai ringraziamenti: 28 volte

Messaggioda crisman » mar gen 20, 2009 6:15 pm

sebonweb ha scritto:Patch di ic.img per consentire l'accesso seriale al programma di diagnostica dell'ìip301:
Il dump che abbiamo effettuato comprende 4 blocchi da 64k ciascuno, quello che ci interessa e' l'ultimo contenente ic.gz (ic.img in formato compresso con gzip).
La patch a ic.img serve per eliminare la richiesta della password quando da seriale si accede al programma di diagnostica premendo INVIO al boot dell'ip301.
Dobbiamo estrarre l'ultimo blocco da 64k dal nostro dump, scompattarlo (con gzip), patcharlo con un editor binario (come hex workshop) e poi riasseamblarlo all'interno del file di dump per poterlo riflashare.
Cominciamo a leggere qui: http://www.vocesuip.com/804322l_ci_lavo ... msg6598631

[fine prima parte]


Una volta arrivati a questo punto, invece di patchare il file ic.img e riflasharlo, si può benissimo flashare l'ic.img di un firmware sbloccato. Penso che si risparmi molto tempo  ;D

Potete trovare un ic.gz dell'ultima versione di firmware nobrand conosciuta a questo link:
Codice: Seleziona tutto
http://www.megaupload.com/?d=X8QDIUS0


Una volta che si ha il file in oggetto, lo si può flashare nel telefono con il seguente comando:
Assicurarsi di rinominare il file ic.gz in CUSTOM.BIN e che quest'ultimo sia nella stessa cartella di tjtag.

Codice: Seleziona tutto
sudo ./tjtagv2 -flash:custom /start:0x1fc30000 /window:0x1fc00000 /length:0x10000


Una volta finita la procedura, potete usare la seriale per cambiare il firmware.
crisman
Beginner
Beginner
 
Messaggi: 43
Iscritto il: lun nov 10, 2008 1:06 pm
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda romans » mar gen 20, 2009 6:46 pm

sebonweb ha scritto:Mini guida riassuntiva per flashare l'ip301 con tjtag (parte prima)

N.B: Ho utilizzato linux per comodita', in quanto tjtag e' gia compilato ed e' possibile utilizzare una distro live avendo l'accortezza di scaricare i file necessari su pendrive.
E' possibile utilizzare anche windows, ma:

1) bisogna compilare il programma (installare un compilatore)
2) bisogna installare cygwin
3) bisogna installare il driver per l'accesso diretto alla parallela.
4) tjtag funziona meglio sotto linux che e' l'ambiante nativo.



Sarebbe possibile documentare anche l'utilizzo con Windoz?
romans
Beginner
Beginner
 
Messaggi: 49
Iscritto il: ven dic 19, 2008 3:08 pm
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda romans » mar gen 20, 2009 7:02 pm

sebonweb ha scritto:Mini guida riassuntiva per flashare l'ip301 con tjtag (parte prima)

Codice: Seleziona tutto
LPT------------JP10
2<----100ohm--->3  (DATA0)
3<----100ohm--->9  (DATA1)
4<----100ohm--->7  (DATA2)
13<---100ohm--->5  (SELECT)
17.25<--------->2  (GND)



Osservando JP10 i pin in basso sono tutti GND, quelli in alto li numero 1 3 5 7 9 11 da sinistra a destra?
romans
Beginner
Beginner
 
Messaggi: 49
Iscritto il: ven dic 19, 2008 3:08 pm
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda mipaneb » mar gen 20, 2009 7:08 pm

romans ha scritto:
Sarebbe possibile documentare anche l'utilizzo con Windoz?




Ti sei fermato nella lettura... poche righe dopo, si riporta:

sebonweb ha scritto:
Software necessario:

- pc con windows e linux installati (per comodita' ho utilizzato ubuntu)



Puoi tenere senz'altro Win, basta installare un virtualizzatore ed una qualunque versione  Linux di tuo gradimento.


PS: complimenti a Sebonweb anche da parte mia



Stay tuned
Michele
Avatar utente
mipaneb
phpBB Moderator
phpBB Moderator
 
Messaggi: 4178
Iscritto il: mar ott 16, 2007 2:10 pm
Località: Monte Nieddu - Sardegna
Ha ringraziato: 22 volte
Hai ringraziamenti: 76 volte

Messaggioda Tokka » mar gen 20, 2009 7:08 pm

@ Romans (& tutti gli altri): propongo di non postare in questa discussione fino al completamento della guida di Sebonweb (che ringrazio :)), se non per migliorìe o implementazioni, evitando richieste che per ora sono fuori luogo.
Grazie
Tk
Fritz
vari...
Ip-301 lock & free
Nslu2 -> debian [lenny]
Gigaset S450IP
Sto rimettendo in piedi la baracca
Avatar utente
Tokka
Guru
Guru
 
Messaggi: 4165
Iscritto il: gio feb 23, 2006 11:04 am
Località: 7113 fw mod con asterisk 1.8, 7240 fw mod con asterisk 11, 7140 fw mod con umts
Ha ringraziato: 9 volte
Hai ringraziamenti: 12 volte

Messaggioda ReSeT » mar gen 20, 2009 7:19 pm

sebonweb ha scritto:Mini guida riassuntiva per flashare l'ip301 con tjtag (parte prima)
- tjtag modificato da roleo (grazie ancora): http://roleo.dyndns.org/public/varie/sr ... 80_CPU.zip


Il link non funziona (404 not found)
ReSeT
PrimoLivello
PrimoLivello
 
Messaggi: 18
Iscritto il: mar dic 12, 2006 7:38 pm
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda user469 » mar gen 20, 2009 9:33 pm

Una domanda sulla procedura , se edito o modifico ( patcharlo) il file ic.img con con un editor binario (come hex workshop) mi devo preoccupare di avere un checksum corretto in qualche modo ?
Avatar utente
user469
Expert
Expert
 
Messaggi: 876
Iscritto il: sab lug 15, 2006 7:29 pm
Ha ringraziato: 1 volta
Hai ringraziamenti: 6 volte

Messaggioda crisman » mar gen 20, 2009 10:02 pm

sebonweb ha scritto:Mini guida riassuntiva per flashare l'ip301 con tjtag (seconda parte)

N.B. La preparazione della patch per ic.img si puo' saltare se siete gia in possesso di una versione modificata di ic.img


E' possibile anche utilizzare un ic.gz di un firmware nobrand ;)

Per chi invece vuole divertirsi a patchare quello esistente,

sebonweb ha scritto:

Preparazione per la patch:

- Facciamo una copia del nostro dump...
Codice: Seleziona tutto
# sudo cp CFE.BIN.SAVEDxxxxxxx CFE.BIN

- Otteniamo ic.gz da CFE.BIN:
Codice: Seleziona tutto
# sudo dd if=CFE.BIN of=ic.gz bs=256 skip=768 count=256


- Scompattiamo ic.gz:
Codice: Seleziona tutto
#  sudo gunzip -cd ic.gz > ic.img


Ora abbiamo ic.img da patchare.

Patch di ic.img:
Se stiamo utilizzando ubuntu live con i file su pendrive conviene effettuare lo shutdown e tornare a windows:
- lanciamo un editor esadecimale per modificare ic.img (io ho utilizzato winhex qui: http://www.x-ways.net/winhex.zip)
- carichiamo ic.img e andiamo all'offset 00023A78 (quasi alla fine del file) e sostituiamo con degli zeri (0) tutto fino all'offset 00023AC0.

Codice: Seleziona tutto
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

00023A70                            63 00 00 00 6F 00 00 00           c...o...
00023A80   65 00 00 00 6D 00 00 00  74 00 00 00 75 00 00 00   e...m...t...u...
00023A90   61 00 00 00 6E 00 00 00  37 00 00 00 32 00 00 00   a...n...7...2...
00023AA0   64 00 00 00 72 00 00 00  38 00 00 00 33 00 00 00   d...r...8...3...
00023AB0   34 00 00 00 35 00 00 00  30 00 00 00 0A 20 0A 20   4...5...0.... .

Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

00023A70                            00 00 00 00 00 00 00 00           ........
00023A80   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00023A90   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00023AA0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00023AB0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................


- Salviamo il file (sempre su pendrive) dandogli ad esempio nome icmod.img
- Rifacciamo il boot con linux



Se invece stiamo utilizzando ubuntu installato sul pc, possiamo utilizzare ghex (se non e' installato basta andate su Applicazioni->Aggiungi/Rimuovi ed installarlo.
- Lanciamo ghex [Applicazioni->Programmazione->Editor Esadecimale]
- Apriamo ic.img e compiamo le stesse operazioni da effettuare con winhex...Salviamo il file dandogli nome icmod.img



N.B.da qui le operazioni tornano ad essere in comune:

Preparazione per flashare icmod.img patchato:
In ubuntu lanciamo una finestra con la console (vedi prima parte) e torniamo nella nostra cartella di lavoro.
Ricordiamoci nuovamente di disattivare il demone lp se siamo tornati da windows:
Codice: Seleziona tutto
# sudo rmmod lp



Ora dobbiamo ricomprimere il file patchato (icmod.img):
Codice: Seleziona tutto
# sudo gzip -c icmod.img > icmod.gz



state attenti quando arrivate a questo punto, perchè se non ricordo male, il file compresso che viene creato non ha la dimensione di 64KB, ma è inferiore. Quindi bisogna inserire degli 0x00 alla fine del file fino ad arrivare alla dimensione di 64KB.
Questo risponde anche alla domanda di user469, non c'è nessun checksum da rispettare,ma deve essere rispettata la dimensione del file.
crisman
Beginner
Beginner
 
Messaggi: 43
Iscritto il: lun nov 10, 2008 1:06 pm
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda beghiero » mar gen 20, 2009 10:54 pm

sebonweb ha scritto:
E' possibile utilizzare anche windows, ma:

1) bisogna compilare il programma (installare un compilatore)
2) bisogna installare cygwin
3) bisogna installare il driver per l'accesso diretto alla parallela.
4) tjtag funziona meglio sotto linux che e' l'ambiante nativo.


Allora, premesso che anche ioi preferisco sempre, di solito, Linux, per motivi logistici (distanza) ho dovuto collegare la JTAG al PC Windows, e quindi mi sono compilato il TJTAG per XP.
Non serve cygwin e il driver per la parallela era gia' incluso (io l'avevo gia' da tante altre periferiche passate, e quindi non ho dovuto nemmeno installarlo).
Ho messo online nel mio sito (http://beghiero.myftp.org) il pacchetto completo COMPRESO il TJTAG.EXE per Windows.

Ciao, Piero.
Ultima modifica di beghiero il mar gen 20, 2009 10:59 pm, modificato 1 volta in totale.
Avatar utente
beghiero
PrimoLivello
PrimoLivello
 
Messaggi: 14
Iscritto il: dom lug 08, 2007 8:42 am
Località: MODENA
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda sebonweb » mer gen 21, 2009 8:47 am

@roleo: scusa ma non ho i permessi per risponderti (e ringraziarti) in pm. TI prego quindi di postare qui le note di correzione alla guida che poi integrero' nel post iniziale.

ciao
sebonweb
Beginner
Beginner
 
Messaggi: 22
Iscritto il: mer nov 29, 2006 12:10 pm
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda romans » mer gen 21, 2009 9:14 am

sebonweb ha scritto:
Codice: Seleziona tutto
# sudo tjtagv2 -flash:custom /window:0x1fc30000 /start:0x1fc30000 /length:0x10000 /silent


crisman ha scritto:
Codice: Seleziona tutto
sudo ./tjtagv2 -flash:custom /start:0x1fc30000 /window:0x1fc00000 /length:0x10000



Lieve discrepanza tra le due istruzioni per flashare ic.gz:
/window:0x1fc30000
oppure
/window:0x1fc00000 ?

Altra domanda: ma una volta costruita e fatta funzionare la jtag non si potrebbe flashare l'intera ROM 0810170 con li'istruzione data per il recupero del morto?
Codice: Seleziona tutto
cp IP301_0810170.ROM CFE.BIN
sudo tjtagv2 -flash:cfe /silent


PS: scusate per l'abuso di post, cancellate pure i miei post vecchi, ma le domande mi sorgono spontanee e forse aiutano a rendere piú dettagliato l'ottimo lavoro che state facendo!
romans
Beginner
Beginner
 
Messaggi: 49
Iscritto il: ven dic 19, 2008 3:08 pm
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda sebonweb » mer gen 21, 2009 9:41 am

@romans: refuso mio, ora ho corretto.

Per quanto riguarda flashare un intero file rom (per non dover intervenire poi con l'accesso seriale) il comando e' leggermente differente in quanto il metodo cfe scrive solo 4 blocchi (64K x 4=256K) mentre l'intera flash (con voip.img che occupa il resto) e' di 2048K.
Attenzione che in questo caso il tempo di flash e' molto lungo e gli errori di scrittura sono sempre in agguato..

Codice: Seleziona tutto
# sudo ./tjtagv2 -flash:custom /start:0x1fc00000 /window:0x1fc00000 /length:0x200000


Altra precisazione: la guida e' senzaltro migliorabile ma non nasce con l'intento di essere definitiva, il metodo utilizzato e' solo quanto fatto personalmente, ma si puo' integrare con le esperienze di altri utenti (come la parte windows gestita tramite il pacchetto di berghero)...
Piu' che altro nasce con l'intento di gettare acqua sul fuoco, viste le polemiche di questi ultimi giorni. Io ce l'ho fatta ed ho fatto cisi... :)


ciao
sebonweb
Beginner
Beginner
 
Messaggi: 22
Iscritto il: mer nov 29, 2006 12:10 pm
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda Grunf2008 » mer gen 21, 2009 2:45 pm

sebonweb ha scritto:@romans: refuso mio, ora ho corretto.

Per quanto riguarda flashare un intero file rom (per non dover intervenire poi con l'accesso seriale) il comando e' leggermente differente in quanto il metodo cfe scrive solo 4 blocchi (64K x 4=256K) mentre l'intera flash (con voip.img che occupa il resto) e' di 2048K.
Attenzione che in questo caso il tempo di flash e' molto lungo e gli errori di scrittura sono sempre in agguato..

Codice: Seleziona tutto
# sudo ./tjtagv2 -flash:custom /start:0x1fc00000 /window:0x1fc00000 /length:0x200000


Altra precisazione: la guida e' senzaltro migliorabile ma non nasce con l'intento di essere definitiva, il metodo utilizzato e' solo quanto fatto personalmente, ma si puo' integrare con le esperienze di altri utenti (come la parte windows gestita tramite il pacchetto di berghero)...
Piu' che altro nasce con l'intento di gettare acqua sul fuoco, viste le polemiche di questi ultimi giorni. Io ce l'ho fatta ed ho fatto cisi... :)


ciao



Hai svolto un lavoro ECCELLENTE: pur essendo, come me del resto, molto giovane nel forum, hai dimostrato una enorme maturità e saggezza ed un grande altruismo.
Mi associo ai ringraziamenti.  Bravo.
Grunf2008
Beginner
Beginner
 
Messaggi: 25
Iscritto il: ven ott 03, 2008 1:13 pm
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Prossimo

Torna a Firmware

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite