www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Blackfin (537-STAMP, 537-EZKIT) - uCLinux in Flash schreiben


Autor: Robert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Blackfin-Kenner!

Ich habe hier zwei Blackfin-Boards mit dem 537 liegen (STAMP und EZKIT) 
die ich gerne in einem ersten Schritt einfach mit einem fertigen 
uCLinux-Image versorgen würde.

Habe es per serieller Schnittstelle geschafft ein fertiges uBoot-Image 
serial aufzuspielen und zu flashen, sprich ich kann nun im Bootmode 0 
starten. Dann per TFTP ein fertiges Image (sowohl 
uImage-537-stamp-2008R1.5-RC3 (komprimiert) als auch 
linux-537-stamp-2008R1.5-RC3.bin) an 0x1000000 laden und per bootm bzw. 
bootelf starten.

Was nicht geht ist: Das Image irgendwie in den Flash zu schreiben um das 
Board standalone nutzen zu können! Auf blackfin.uclinux.org und auch per 
google finde ich dazu nichts! Auch das "spraaa0a.pdf" von TI nutzt mir 
nichts da ich die verwendeten Befehle nicht im Image habe. Sind die 
fertigen Images wirklich nur als "remote"-Images brauchbar?

Würde mich riesig über eine kleine Hilfestellung freuen wie ich die 
Dinger mit einem uCLinux und funktionierendem Dateisystem ausstatte!

Danke!

Gruß
Robert

Autor: hmk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hasse den Flash auch geunlocked?
In u-boot mal "help unlock" eingeben ;)

Autor: Robert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Den Schreibschutz musste ich ja schon zum schreiben des u-Boot aufheben 
(protect all off). Mir ist unklar wie es dann weitergeht? Installiere 
ich das Linux-Image mittels U-Boot (cp.b etc.) oder mittels eines im 
Speicher gebooteten Linux (nandflash etc. - was aber scheinbar in den 
Images nicht enthalten ist). Woher weiß ich welche Partition ich in 
welchen Flash-Bereich schreiben soll/darf?

Gruß
Robert

Autor: Strubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Robert,

Das uImage-* knallst Du ab der Adresse $addr (siehe unten) ins Flash. 
Nand-Flashes sind eine andere Geschichte.
Das wird dann per 'bootm $(addr)' vom bootscript "flashboot" (siehe 
obige header-Datei) gebootet.
Das uImage ist ein komplettes Ramdisk-Image. Darin ist das Kernel und 
root file system enthalten (komprimiert).
Die Frage nach $addr: u-boot belegt inkl. environment normalerweise 
0x40000 Bytes (siehe 'update'-script im obigen config header).
Also solltest Du so weiterkommen (nach protect off):

bfin> cp.b $(geladenes image) 0x20040000 $(filesize)
bfin> bootm 0x20040000

(Checken, ob filesize auch beim TFTP richtig gesetzt wird)

Falls Du root-FS auf dem Flash im JFFS2-Format haben willst, musst Du 
vmImage (kernel) und rootfs.jffs2 getrennt erzeugen, wie auch die 
bootargs  und fuer dein Board die Flash-Partitionstabelle anpassen 
(linux-2.6.x/arch/blackfin/mach-bf537/boards/stamp.c). Wie das geht, 
sollte unter docs.blackfin.uclinux.org (auf englisch) beschrieben sein.

Gruss,

- Strubi

Autor: Robert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Strubi,

vielen Dank für Deine Hilfe. Habe versucht die von Dir angegebenen 
Schritte nachzuvollziehen, leider kommt es zu einer Fehlermeldung:
bfin> flinfo

Bank # 1: CFI conformant FLASH (16 x 16)  Size: 4 MB in 67 Sectors
 Erase timeout 16384 ms, write timeout 1 ms, buffer write timeout 1 ms, buffer size 1
  Sector Start Addresses:
    20000000      20004000      20006000      20008000      20010000
    20020000      20030000      20040000      20050000      20060000
    20070000      20080000      20090000      200A0000      200B0000
    200C0000      200D0000      200E0000      200F0000      20100000
    20110000      20120000      20130000      20140000      20150000
    20160000      20170000      20180000      20190000      201A0000
    201B0000      201C0000      201D0000      201E0000      201F0000
    20200000      20210000      20220000      20230000      20240000
    20250000      20260000      20270000      20280000      20290000
    202A0000      202B0000      202C0000      202D0000      202E0000
    202F0000      20300000      20310000      20320000      20330000
    20340000      20350000      20360000      20370000      20380000
    20390000      203A0000      203B0000      203C0000      203D0000
    203E0000      203F0000
bfin> tftp 0x1000000 uImage-bf537-stamp-2008R1.5-RC3
Using Blackfin EMAC device
TFTP from server 192.168.178.33; our IP address is 192.168.178.51
Filename 'uImage-bf537-stamp-2008R1.5-RC3'.
Load address: 0x1000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ##############################################
done
Bytes transferred = 4228798 (4086be hex)
bfin>protect off all
Un-Protect Flash Bank # 1
................................................................... done
bfin> cp.b 0x1000000 0x20040000 $(filesize)
Copy to Flash... Outside available Flash

Hast du eine Idee woran das liegen könnte? Das Image ist ja angeblich 
extra für das Board - kann es sein dass ich trotzdem zu wenig Flash 
habe?

Wenn ich Dirch richtig verstehe komme ich nur durch 
Modifikationen/Selbstkompilieren zu einem Linux mit persistentem 
Dateisystem? Ist dieser "Wunsch" für Leute die mit den Blackfins 
arbeiten ungewüöhnlich oder warum wird dies nicht auf zig Internetseiten 
erklärt bzw. mit den Images unterstützt?

Gruß
Robert

Autor: Strubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Robert,

hmm. Das ist etwas pfui - das Image ist in der Tat zu gross fuer die 4MB 
des Parallel-Flash. Irgendwer hat sich da entweder nichts bei gedacht, 
oder es gibt ein alternatives uImage binary fuer die uebliche 
Flash-Groesse (sollte auf jeden Fall unter 2.5 MB liegen), oder ich bin 
punkto etwas anderes bloed oder blind :-)
Zur letzteren Frage: Die von blackfin.uclinux.org vertretene Politik 
ist, um die Kosten niedrig zu halten: Do it yourself. Deswegen werden 
ev. nicht alle Releases gleich gruendlich auf Anwendbarkeit getestet, 
sondern vom User erwartet, dass er sich sein System selber konfiguriert 
und baut. Im Endeffekt kommt man beim Produktdesign darum ja auch nicht 
herum.
Fuer alle moeglichen Wunschkonfigurationen die Images zu bauen und zu 
testen waere ein supporttechnischer Killer. Drum eben die 
docs.blackfin.uclinux.org, wo im Prinzip alles beschrieben steht.

Probier sonst mal einen 'snapshot' von:

http://blackfin.uclinux.org/gf/project/uclinux-dist/frs


Gruss,

- Strubi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.