Ho fatto quello che c'è scritto qua
http://www.nslu2-linux.org/wiki/HowTo/RecoverFromABadFlashUsingJTAGallora mi sono costruito l' interfaccia hardware con 4 resistenze da 75 ohm seguendo questo schema:
GND 17-25 <----------------------------------------------------< GND pin of C21
TDI 5 >---------------XXXX---------------------------------> => R133
TMS 3 >---------------XXXX---------------------------------> => R132
TCLK 4 >---------------XXXX---------------------------------> => R134
TDO 11 <---------------XXXX---------------------------------> => R137
25 pins male 4 resistors 51 ohms or 75 ohms NSLU2
Ho collegato il cavo da un lato alla porta parallela settata bidirezionale da bios e dall'altra alla porta jtag del NSLU2 ( bisogna fare 4 saldature + una al condensatore C21 )
bisogna installare il software urjtag sul pc sotto linux (io ho ubuntu), poi da console si digita jtag e si entra in questa schermata:
$ jtag
jtag> cable WIGGLER parallel 0x378
Initializing parallel port at 0x378
jtag> detect
sè l'interfaccia viene trovata e riconosciuta compariranno tutti i dati dell'NSLU2
sè non compare nulla vuol dire che l'interfaccia che avete costruito presenta qualche problema ricontrollate i collegamenti
sè invece viene riconosciuta digitate
jtag> detectflash 0
a questo punto copiate e incollate questo file di testo [url][http://www.nslu2-linux.org/wiki/Main/SlugImage/url] e createne uno chiamandolo slugimage.pl
eseguite questo comando
chmod 755 slugimage.pl
adesso scaricate il firmware che volete installare io ho messo unslug da 8 mb
eseguite questo comando
$ ./slugimage.pl -u -i ../directorydovesitrovailfile/nomeimmaginecheavetescaricato.img
verrano create delle cartelle
Read 2 blocks into <RedBoot>
Read 0x00006 bytes into <EthAddr>
Read 1 blocks into <SysConf>
Read 0x0B26C bytes into <Loader>
Read 10 blocks into <Kernel>
Read 24 blocks into <Ramdisk>
Read 1 blocks into <FIS directory>
Read 0x00010 bytes into <Trailer>
Wrote 0x00040000 bytes from <RedBoot> into "RedBoot"
Wrote 0x00020000 bytes from <SysConf> into "SysConf"
Wrote 0x0000B26C bytes from <Loader> into "apex.bin"
Wrote 0x001219F4 bytes from <Kernel> into "vmlinuz"
Wrote 0x002F766A bytes from <Ramdisk> into "ramdisk.gz"
Wrote 0x00000010 bytes from <Trailer> into "Trailer"
$ ls
RedBoot SysConf Trailer apex.bin ramdisk.gz vmlinuz
poi cancelliamo la memoria flash
jtag> eraseflash 0x50000000 4
Manufacturer: Intel
Chip: 28F064J3A
eseguiamo questi altri comandi
jtag> endian
Endianess for external files: little
jtag> endian big
jtag> endian
Endianess for external files: big
e dopo possiamo riscrivere la flash ci mette un po'
jtag> flashmem 0x50000000 RedBoot
Manufacturer: Intel
Chip: 28F128J3A
program:
addr: 0x5003FF00
verify:
Done.
nel mio caso ho dovuto anche riinserire il mac address perchè altrimenti non mi andava in upgrade mode
$ slugimage -o temp.bin -p -e 00:0F:66:XX:XX:XX
$ slugimage -i temp.bin -u -b redboot_mac.bin
$ dd if=./redboot_mac.bin of=redboot_mac_swap.bin ibs=1 count=262144 conv=swab
quindi ho rifatto il passaggio di sopra mettendo il nuovo nome
jtag> flashmem 0x50000000 redboot_mac.bin
Manufacturer: Intel
Chip: 28F128J3A
program:
addr: 0x5003FF00
verify:
Done.
dopo aver finito la programmazzione il mio nslu2 è andato in upgrade mode a quel punto usando il softare Upslug2 sempre sotto linux ho ricaricato il firwmare di unslug.
Spero si sia capito qualcosa!!