Forum: Mikrocontroller und Digitale Elektronik NGW100 - Bootproblem


von Torsten K. (avr_fan)


Lesenswert?

Hallo zusammen,

ich habe mir vor kurzen ein neues NGW100 von Atmel zugelegt. Nach der 
Freude über die kurze Lieferzeit kam nach dem ersten Einschalten die 
Ernüchterung. Für die Inbetriebnahme habe ich den LAN-Port mit meinem 
Netzwerk verbunden und dir RS232 für die Bootlog-Ausgabe am PC 
angeschlossen. Laut Beschreibung sollte auf dem Board ein 
funktionsfähiges, vorinstalliertes Linux drauf sein. Dem war leider 
nicht so. Nach dem sich der Bootloader gemeldet hat, ging es nicht mit 
dem Starten des Kernels vom Flash weiter, sondern der Bootloader hat 
versucht, das Kernelimage über TFTP zu laden. Da er das natürlich nicht 
im Netzwerk gefunden hat, wurde das Initialisieren des LAN-Interfaces 
und das erfolglose Booten per TFTP zu einer Endlosschleife.

Hier mal ein Auszug aus dem Bootlog mit Ausgabe der bei meinem Board 
werkseitig eingestellten Environment-Variablen:

U-Boot 1.1.4-at0 (Jan  3 2007 - 10:30:09)

U-Boot code: 00000000 -> 000144f7  data: 24000000 -> 24002d80
SDRAM: 32 MB at address 0x10000000
Testing SDRAM...OK
malloc: Using memory from 0x11fc0000 to 0x12000000
Flash:  8 MB at address 0x00000000
DRAM Configuration:
Bank #0: 10000000 32 MB
In:    serial
Out:   serial
Err:   serial
Net:   macb0, macb1
Press SPACE to abort autoboot in 1 seconds
Uboot>
Uboot> printenv

baudrate=115200
ethaddr=00:04:25:1C:52:74
bootdelay=1
ethact=macb0
serverip=172.24.41.2
tftpip=172.24.41.2
bootcmd=dhcp 0x10300000 uImage_a11_0002_rev8; bootm 0x10300000
eth1addr=00:04:25:1C:52:75
bootargs=console=ttyS0 root=/dev/nfs ip=dhcp 
nfsroot=172.24.41.2:/exports/nfsroot/ngw100 
mtdparts=physmap-flash.0:128k(u-boot)ro,8000k(root),64k(env)
stdin=serial
stdout=serial
stderr=serial

Environment size: 388/65532 bytes

Jetzt kommt aber das eigentliche Problem. Die Einstellung auf 
Netzwerk-Boot ist ja für Entwicklungszwecke nicht schlecht. Ein neues 
NGW100 sollte aber vom internen Flash booten. Leider ist es mir nicht 
gelungen, das booten vom internen Flash zu aktivieren. Es kursieren da 
mehrere unterschiedliche Werte für bootargs und bootcmd im Internet. 
Egal welche Einstellung ich getestet habe, das Ergebnis war immer das 
gleiche und zwar folgende Fehlermeldung:

Press SPACE to abort autoboot in 1 seconds
### JFFS2 loading '/boot/uImage' to 0x10400000
Scanning JFFS2 FS:     |   /   -   \   |   /   -   \   |   /   -   \   | 
/   -   \   |   /   -   \   |   /   -   \   |   /   -   \   |   /   - 
done.

find_inode failed for name=boot

load: Failed to find inode

### JFFS2 LOAD ERROR<0> for /boot/uImage!
## Booting image at 10400000 ...
Bad Magic Number

Eigentlich würde es mir für den Anfang reichen, wenn das zum 
Lieferumfang gehörende Linux starten würde und ich mit dem Board 
vertraut machen kann. Deshalb wäre ich für die Einstellungen der 
Environment-Variablen eines originalen neuen „funktionsfähigen“ NGW100 
dankbar.
Da der Bootprozess bei mir ja schon im Anfangsstadium von Anfang an 
hängen bleibt kann ich nicht mal eine Aussage darüber treffen, ob die 
Hardware voll funktionsfähig ist und ob der Flash überhaupt in Ordnung 
ist oder ob da überhaupt ein Image drin ist.

Da ich nach langer Suche bezüglich dieses Problems lediglich nur einen 
Beitrag mit genau diesem Thema gefunden habe, wende ich mich an Euch 
alle. Leider konnte mir die in dem Beitrag genannte Einstellung des 
Bootloaders auch keine positive Veränderung bringen:

set serverip
set tftpip
set bootargs root=mtd1 rootfstype=jffs2
set bootcmd 'fsload 0x10400000 /boot/uImage; bootm'
saveenv
reset

Viele Grüße
Torsten

von Udo S. (udo)


Lesenswert?

Hallo Torsten,

Torsten K. schrieb:
> ein neues NGW100 von Atmel zugelegt.

Darf man fragen wo du das NGW gekauft hast? Bei einem Händler oder aus 
privater Hand?

Torsten K. schrieb:
> Uboot> printenv
>
> baudrate=115200
> ethaddr=00:04:25:1C:52:74
> bootdelay=1
> ethact=macb0
> serverip=172.24.41.2
> tftpip=172.24.41.2
> bootcmd=dhcp 0x10300000 uImage_a11_0002_rev8; bootm 0x10300000
> eth1addr=00:04:25:1C:52:75
> bootargs=console=ttyS0 root=/dev/nfs ip=dhcp
> nfsroot=172.24.41.2:/exports/nfsroot/ngw100
> mtdparts=physmap-flash.0:128k(u-boot)ro,8000k(root),64k(env)
> stdin=serial
> stdout=serial
> stderr=serial

Das sieht danach aus als wenn jemand das NGW schon mal in Betrieb hatte.
Die original Environment-Einstellungen sehen wie folgt aus:

U-Boot> printenv
ethaddr=xx:xx:xx:xx:xx:xx
bootargs=console=ttyS0 root=/dev/mtdblock1 rootfstype=jffs2
bootcmd=fsload /boot/uImage;bootm
bootdelay=1
baudrate=115200
hostname="atngw100"
stdin=serial
stdout=serial
stderr=serial
ethact=macb0

wobei die MAC-Adresse von der Seriennummer deines NGWs abhängt. Wie die 
lauten muss kannst du hier nachlesen/berechnen:
http://www.avrfreaks.net/wiki/index.php/Documentation:NGW/NGW100_Ethernet_PHY

Du solltest die Environment-Variablen besser auch mit dem Befehl 
"askenv" einstellen. Also "askenv bootcmd" ect.

Gruß
Udo

von Torsten K. (avr_fan)


Lesenswert?

Hallo Udo,

Danke für die Antwort.
Das NGW100 habe ich diese Woche von embedded-projects geliefert 
bekommen.
Ich werde heute Abend die von Dir genannten Einstellungen testen und 
mich dann wieder melden.


Gruß Torsten

von Torsten K. (avr_fan)


Lesenswert?

Hallo,

es hat leider etwas länger gedauert, aber ich habe einiges ausgetestet.

Die Originaleinstellungen brachten keinen Erfolg. Gleiche Fehlermeldung.

Dann habe ich das Board über TFTP/NFS gebootet (Kernel & Rootfs von der 
Atmel-Seite), erfolgreich.

Nächster Schritt war das erstellen eines eigenen Images mit Buildroot 
unter Ubuntu 9.10 mit den Standardeinstellungen, erfolgreich.

Dann habe ich das ganze auf eine SD-Karte entpackt und das Board darüber 
ohne Fehler gestartet.

Nun kommt meine Frage. Kann man mit dem gestarteten Linux von SD-Karte 
auf den Onboardflash zugreifen und sich den Inhalt ansehen 
(dev/mtdblock1 und dev/mtdblock3).

Viele Grüße
Torsten

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.