www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik uboot & mini2440 mit 256MB RAM


Autor: Zwie Blum (zwieblum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sagt mal, hat wer von euch des mini2440 mit 256MB Flash und uboot 
erfolgreich laufen? Bei mir funktioniert uboot zwar aus dem RAM, aber 
nicht vom Flash. Letzte Meldung ist:
I2C:   ready
DRAM:  64 MB
Flash:  2 MB
NAND:  nand_scan(): Cannot allocate oob_buf
0 MiB

uboot habe ich mit
#define CONFIG_USE_IRQ                    0       /* Needed for USB device! */

compiliert - womit angäblich das Ding mit 128MB Flash klar kommt, aber 
mit 256MB funktioniert's nicht.

Irgendjemand eine Idee?

Autor: Nils S. (kruemeltee) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab den uboot fürs 128MB Board schon nicht zum Laufen bekommen und 
für 256MB noch gar nie auch irgendwo ein Source-Kommentar o.ä. gesehen.

Schau dich mal hier um:

http://www.friendlyarm.net/forum/topic/370?lang=en
https://www.blogger.com/comment.g?blogID=11320970&...

http://www.friendlyarm.net/forum/topic/79?lang=en
http://labs.kernelconcepts.de/Publications/Micro24401/


Wäre sehr froh wenn ich auch bald mal eine Lösung hierfür finden 
würde...

Autor: Zwie Blum (zwieblum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun, die Links hab' ich alle durch, hat aber nichts geholfen. In einem 
chinesischem Forum hab' ich noch den Hinweis - groß angekündigt - auf 
diesen uboot gefunden: 
http://github.com/tekkamanninja/U-boot-2009.11_tekkaman

Nur funktioniert der mit 256MB auch nicht. Angäblich aber mit 128MB.

seufz

Autor: Zwie Blum (zwieblum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, diese Anleitung funktioniert zumindest für uboot und 128MB Flash:
http://bill.station51.net/index.php?post/2010/01/1...

Autor: Nils S. (kruemeltee) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke zwie blum, die Anleitung und 3 Stunden basteln hats bei mir 
gebracht, was genau es war, kann ich nicht sagen, aber auf jeden Fall 
bootest es nun bei mir.

Wenn du willst, kann ich dir das bin File schicken/Anhängen und 
schreiben wie ich es in den Flash bekommen habe.

Autor: Zwie Blum (zwieblum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:-) das freut mich

uboot am 128MB NAND hab' ich nach der Anleitung von bill.station51.net 
auch schon laufen. Den gepatchten Uboot von tekkamanninja hab' ich nicht 
zum laufen gebracht (hat nur gepiepst). Jetzt hat das Ding mit 256MB 
wieder vboot drauf.

Hast du irgendwo eine funktionierende Anleitung zum Kernel/Rootimage 
bauen? Ich habe von Kernel http://arm9.net/download.asp Kernel 2.6.32.2 
mit Toolchauin und Rootimage. Ich will das Ding aber mit Angstrom oder 
buildroot bauen, ich brauch nur ein minimales Rootimage mit SDL 
(dramebuffer) oder SDL(X11).

Autor: Sven B. (alterswede)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nils S. schrieb:
> Danke zwie blum, die Anleitung und 3 Stunden basteln hats bei mir
> gebracht, was genau es war, kann ich nicht sagen, aber auf jeden Fall
> bootest es nun bei mir.
>
> Wenn du willst, kann ich dir das bin File schicken/Anhängen und
> schreiben wie ich es in den Flash bekommen habe.

Ich habe ebenfalls ein Mini2440 mit 256 MB.

Würde mich auch interessieren. Danke... ;-)

Autor: Nils S. (kruemeltee) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
>Hast du irgendwo eine funktionierende Anleitung zum Kernel/Rootimage
>bauen? Ich habe von Kernel http://arm9.net/download.asp Kernel 2.6.32.2
>mit Toolchauin und Rootimage.
Kernel ist ganz easy. Leider hat bei mir der Sound mit dem 2.6.32 nicht 
funktioniert und Touchscreen habe ich auch nicht hintbekommen. Ebenso 
war das Bild auf den T35 Display um ca. 10-12px nach Osten verschoben.
Ich verwende den 2.6.29 von der Mini2440 DVD, der geht.
Compilieren:

$ cd <kernel source> ; mkdir ../kernel-bin/
$ CROSS_COMPILE=arm-linux- ARCH=arm make menuconfig O=../kernel-bin/
in der Menuconfig nun die passende Config laden (config_mini2440_.... 
oder so)
$ CROSS_COMPILE=arm-linux- ARCH=arm make O=../kernel-bin/
nun hat man in ../kernel-bin/ den Compilierten kernel 
(arch/arm/boot/...)

>Ich will das Ding aber mit Angstrom oder
>buildroot bauen, ich brauch nur ein minimales Rootimage
Wie das mit buildroot o.ä. geht musst du mit den diversen Howtos 
rausfinden, hab ich keine Ahnung von. Mein Flash beherbergt einen 
kompletten Eigenbau, also alles selbst aus den Quellcode Paketen 
compiliert und der chrootet in ein Gentoo auf einer USB-Disk :D

Im Anhang die funktionierende uboot.bin für 128MB

Autor: zwieblum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Interessant. Hast du die Codesourcery-Toolchain oder eine selbst 
gebaute? Bei Meinem funktioniert Sound, Touch und das Display korrekt, 
aber der Kernel kam schon prepatched (brrrr - die Doku, wo was gepatcht 
wurde gibt's auf chinesisch). Hast du X11 laufen?

Autor: Nils S. (kruemeltee) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Interessant. Hast du die Codesourcery-Toolchain oder eine selbst
>gebaute?
Ich hab die von der Mini2440-DVD

>Bei Meinem funktioniert Sound, Touch und das Display korrekt,
>aber der Kernel kam schon prepatched (brrrr - die Doku, wo was gepatcht
>wurde gibt's auf chinesisch).
Naja, stört mich herzlich wenig, solange ich Sourcen hab, die 
compilieren und laufen, wird kein Produktivsystem, nur zum Basteln, 
daher kann mir das egal sein.

>Hast du X11 laufen?
Ne, ich bastle mit dem Framebuffer herum. Bin gerade dabei einen 
Winamp-Klon zu (neu)schreiben, der auf den mpd zugreift für die Musik 
und die Ausgabe erfolgt mittels ezfb http://www.akrobiz.com/ezfb/
Ist sehr easy :)

Autor: Clemens N. (clemens2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe auch ein Mini2440 mit 256MB Nand und versuche u-boot darauf zum 
laufen zu bekommen - bis jetzt nur leider ohne Erfolg...

Die Version von tekkamanninja habe ich auch schon probiert; klappt aber 
auch nicht... Es gibt ja auch eine "offizielle" u-boot Version von 
denx.de. Diese unterstützt allerdings nicht das Mini2440 (zumindest die 
CPU wird teilweise unterstützt). Weiß jemand, ob diese Version einen 
NAND Flash mit 256MB unterstützt? Vielleicht könnte man ja diesen Teil 
in das u-boot für das Mini 2440 einfügen...

Was mich an der ganzen Sache ja ein wenig stört, ist, daß es dutzende 
u-boot varianten im Netz gibt, die alle weitgehend undokumentiert sind & 
wo auch nicht klar ist, welche Variante mit welcher Hardware zurande 
kommt oder auch nicht...

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Clemens Novak schrieb:
>
> Weiß jemand, ob diese Version einen
> NAND Flash mit 256MB unterstützt? Vielleicht könnte man ja diesen Teil
> in das u-boot für das Mini 2440 einfügen...
>

einfach kopieren ist vllt nicht drin, man muss schon an das jeweilige 
board anpassen. Ob 256MB NAND mit uboot gehen, keine ahnung, mit 512MB 
konnte bis jetzt nicht zum laufen bewegen.

> Was mich an der ganzen Sache ja ein wenig stört, ist, daß es dutzende
> u-boot varianten im Netz gibt, die alle weitgehend undokumentiert sind &
> wo auch nicht klar ist, welche Variante mit welcher Hardware zurande
> kommt oder auch nicht...

das ist doch der "vorteil" von opensource, stell dir vor du muss auf die 
"gnade des entwicklers hoffen" - wie bei dem supervivi wo die jungs nur 
für eigenes board anpassen und keine sources publizieren.

Autor: zwieblum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerHaken bei uboot+mini2440 scheint die initialisierung des SDRAM zu 
sein, und das steht in den Assembler Files, wenn ich mich nicht irre, 
jedenfalls hat der C-Code - wenn er denn überhaupt angesprungen wird - 
kein RAM. Aber das ist mir ein bischen zu hoch :-)

Source von Supervivi ist auf arm9.net zu finden, aber nicht von 
mkyaffs-128. Das Ding funktioniert zumindest. Ok, ich muss ein 
ext2-Rootimage erstellen, das mounten und ein yaffs-image erzeugen, jo 
mei, es funktioniert.

Was mich aber echt nervt ist, dass die Codesourcery Toolchain 
anscheinend nicht 100% funktioniert. Ich hab' gestern mit "buildroot" 
eine eigen Toolchain gebaut, ein Rootimage erzeugt und es rennt. Sogar 
"fbv" funktioniert, nur directfb + Xfbdev machen Mucken. Aber es 
funktioniert. Ich hab' momentan diese Codesourcery Toolchain im 
Verdacht, warum uboot nicht funktioniert.

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zwieblum schrieb:
> Source von Supervivi ist auf arm9.net zu finden, aber nicht von
> mkyaffs-128.

ehm, seit wann ? Ich finde da keine sources von supervivi.

Da steht nur "supervivi基于三星的vivi而来,由友善之臂发展并维护,不提供源代码", also "supervivi 
basierend auf vivi, keine sources".

Wäre mir neu das die developer es freigegeben haben.

Autor: zwieblum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oje, mea culpa! In dem Paket ist Vivi-Sourcecode drinnen :-(

Hat jemand von euch vielleicht eine Idee, wie ich aus der Ausgabe von 
"fbset" eine Modline für Xfbdev erzeuge? Ich häng' noch immer hier:

# fbset -i

mode "240x320-66"
    # D: 5.882 MHz, H: 21.626 kHz, V: 65.733 Hz
    geometry 240 320 240 320 16
    timings 170000 1 26 2 5 5 2
    rgba 5/11,6/5,5/0,0/0
endmode

Frame buffer device information:
    Name        : s3c2410fb
    Address     : 0x33940000
    Size        : 153600
    Type        : PACKED PIXELS
    Visual      : TRUECOLOR
    XPanStep    : 0
    YPanStep    : 0
    YWrapStep   : 0
    LineLength  : 480
    Accelerator : No
#

# Xfbdev -screen 240x320x16 -rgba rgb
Warning: mode not found, using default
error: Invalid argument

Fatal server error:
no screens found
#

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zwieblum schrieb:
> # Xfbdev -screen 240x320x16 -rgba rgb
> Warning: mode not found, using default
> error: Invalid argument

Die Seiten kennst du?
http://www.xfree86.org/current/Xfbdev.1.html
http://www.xfree86.org/current/TinyX.1.html

Autor: zwieblum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, aber darum geht es nicht. Es ist dieses Problem: 
http://lists.freedesktop.org/archives/xorg/2007-Au...

Irgendwie muss aus dem Output von "fbset -i" eine Modeline in der Form
/*  H       V       Hz      KHz */
/*  FP      BP      BLANK   POLARITY */
{   240,    320,    20104,  6735,
     17,     12,     32,     KdSyncNegative,
      1,      11,     14,     KdSyncNegative,
},

für das File xserver/hw/kdrive/src/kmode.c erzeugt werden. Die Frage ist 
nur, wie. Der Spaß mit "Xfbdev -screnn ..." funktioniert nur dann, wenn 
eine geeignete Modeline im Code steht.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zwieblum schrieb:
> DerHaken bei uboot+mini2440 scheint die initialisierung des SDRAM zu
> sein

Hi!

Das würde aber Deinem ersten Posting widersprechen, denn dort schreibst 
Du, daß UBoot aus dem RAM funktioniert. Man erkennt auch, daß der NAND 
nicht wirklich erkannt wird: "NAND:  nand_scan(): Cannot allocate 
oob_buf
0 MiB". Was auch immer UBoot an dieser Stelle macht, es kann einen 
Buffer für OOB (Out-of-Band-Data) nicht anlegen. Ich besitze keinen 
Mini2440, daher ist es nur eine Vermutung, aber es sieht so aus, als ob 
das NAND tatsächlich nur den reinen Speicher darstellt, ohne weitere 
Intelligenz wie Wear Levelling. Hier wird sicherlich ein Blick ins 
Datenblatt des NANDs helfen, denn so hat ein Sektor nicht die gewohnten 
z.B. 2048 oder 4096 Byte Größe sondern 2048/4096 + X, wobei X vielleicht 
16, 32 oder was anderes bedeuten kann. Exakt dort wird OOB 
abgespeichert, es können Prüfsummen über den eigentlichen Sektor sein, 
ein Marker fürs Wear Levelling, etc (das ist die Aufgabe der Software). 
Sobald die Access-Routinen auf den verbauten NAND-Typ angepaßt sind, 
müßte es mit UBoot klappen. Diese Theorie würde dadurch unterstützt, daß 
es mit 128MiB-NANDs scheinbar klappt.

BTW, ich meine mich dunkel zu erinnern, daß es bei NAND irgendwann eine 
Änderung bei der Adressierung gegeben hat - die kleineren brauchten zwei 
Bytes im Command, die größeren drei. Vielleicht ist genau bei 258MiB die 
Grenze?

Autor: zwieblum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"NAND:  nand_scan(): Cannot allocate oob_buf

Der Code scheitert, weil malloc beim Speicher anfordern (4096 Byte) NULL 
zurückgibt. Wenn ich uboot über Supervivi ins RAM lade und starte kommt 
der Fehler nicht - warum auch immer. Ich steig' ehlich gesagt beim 
Bootloder nicht ganz durch.

Autor: zwieblum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls wer das selbe Problem haben sollte: Damit Xfbdev+buildroot am 
mini2440 funktioniert, muss man in hw/kdrive/src/kmode.c diese Modeline 
einfügen (am besten an 1. Stelle):

    {   240,    320,    66,     0,
            0,      0,      0,     KdSyncNegative,
            0,      0,      0,     KdSyncNegative,
    },

"66" ist die Clock von "fbset -i", 'mode "240x320-66"'.

Ein paar Zeilen weiter unten muss MONITOR_TIMING_DEFAULT auf 0 gesetzt 
werden:

    #define MONITOR_TIMING_DEFAULT  0

Der Frambuffer läßt kein setzten des Videomodes zu, alle ioctl mit 
FBIOPUT_VSCREENINFO schlagen fehl. Der betroffene Codefindet sich in 
hw/kdrive/fbdev/fbdev.c, zeilen 666 bis 673:

    /* display it on the LCD **** COMMENT OUT THIS CODE */
/*    k = ioctl (priv->fd, FBIOPUT_VSCREENINFO, &priv->var);
    if (k < 0)
    {
        perror ("1: FBIOPUT_VSCREENINFO");
        return FALSE;
    }
*/

Recompile .... :-)

Autor: florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi zusammen,

ja das funktioniert so... nicht schön aber wirkungsvoll :-)

Einen funktionierenden Workaround für das "Cannot allocate oob_buf" 
Problem findet sich übrigens hier:

http://bill.station51.net/index.php?post/2010/01/1...

Die Änderung in "Step 3" hat hier das gewünschte Ergebnis geliefert, der 
U-Boot läuft jetzt problemlos auf einem neuen mini2440.

Gruß

Florian

Autor: Zwie Blum (zwieblum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du bitte dein funktionierendes u-boot posten? Bei mir hat's 
nämlich nach der Anleitung nicht geklappt.

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nachdem ich es auf öfters vergeblich probiert habe, füge ich mal ein für 
mein mini2440 funktionierende u-boot.bin an. Das Deaktivieren des 
CONFIG_USE_IRQ hat es wirklich gebracht. Mal schauen wie weit ich bei 
meinem Versuch ein Gentoo darauf laufen zu lassen komme ...

Viele Grüße
Alex

Autor: Pedro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

Habe auch ein Mini2440-256MB board, doch leder habe ich noch nicht
geschafft Linux mit QT zu installieren. Nirgends im Web finde ich
einen funktionsfähigen code Toolchan Beispiel.
kann jemand helfen?

Gruss
Pedro

Autor: Thorsten Weber (t_web)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
habe U-Boot mit Debian installiert, aber den x-server bekomme ich nicht 
ans laufen. Hat hier jemand die gefixten Debian Pakete zum download ?

mfg
t_web

Autor: K. J. (theborg0815) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thorsten Weber schrieb:
> Hallo
> habe U-Boot mit Debian installiert, aber den x-server bekomme ich nicht
> ans laufen. Hat hier jemand die gefixten Debian Pakete zum download ?
>
> mfg
> t_web

Hi lauft eigentlich out of box eine config dafür findest unter 
http://www.mikrocontroller.net/wikifiles/4/4a/Xorg.conf.txt

Autor: Thorsten Weber (t_web)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine schnelle Antwort.

geht aber leider mit der xorg.conf auch nicht.
Das Thema ist wohl der FB Treiber.
Damit muss ein neuer X-Server gebaut werden, aber das ist mir leider 
nicht gelungen.

X.Org X Server 1.7.7
Release Date: 2010-05-04
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.31-rc9 armv5tel Debian
Current Operating System: Linux mini2440 2.6.32-rc8 #1 Tue Jul 20 
22:55:51 CEST 2010 armv4tl
Kernel command line: console=ttySAC0,115200 noinitrd root=/dev/mmcblk0p1 
mini2440=0tb ip=dhcp rootwait=5
Build Date: 15 July 2010  08:36:13PM
xorg-server 2:1.7.7-3 (Cyril Brulebois <kibi@debian.org>)
Current version of pixman: 0.16.4
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Sat Jul 31 12:07:54 2010
(==) Using config file: "/etc/X11/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
(EE) FBDEV(0): FBIOPUT_VSCREENINFO: Invalid argument
(EE) FBDEV(0): mode initialization failed

Fatal server error:
AddScreen/ScreenInit failed for driver 0


Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
Please also check the log file at "/var/log/Xorg.0.log" for additional 
information.


giving up.
xinit:  No such file or directory (errno 2):  unable to connect to X 
server
xinit:  No such process (errno 3):  Server error

______________________________________________________________________ 
_


Autor: zwieblum (Gast)
Datum: 01.02.2010 09:01
Falls wer das selbe Problem haben sollte: Damit Xfbdev+buildroot am
mini2440 funktioniert, muss man in hw/kdrive/src/kmode.c diese Modeline
einfügen (am besten an 1. Stelle):

    {   240,    320,    66,     0,
            0,      0,      0,     KdSyncNegative,
            0,      0,      0,     KdSyncNegative,
    },

"66" ist die Clock von "fbset -i", 'mode "240x320-66"'.

Ein paar Zeilen weiter unten muss MONITOR_TIMING_DEFAULT auf 0 gesetzt
werden:

    #define MONITOR_TIMING_DEFAULT  0

Der Frambuffer läßt kein setzten des Videomodes zu, alle ioctl mit
FBIOPUT_VSCREENINFO schlagen fehl. Der betroffene Codefindet sich in
hw/kdrive/fbdev/fbdev.c, zeilen 666 bis 673:

    /* display it on the LCD **** COMMENT OUT THIS CODE */
/*    k = ioctl (priv->fd, FBIOPUT_VSCREENINFO, &priv->var);
    if (k < 0)
    {
        perror ("1: FBIOPUT_VSCREENINFO");
        return FALSE;
    }
*/

Recompile .... :-)


_____________________________________________________________________

Denke da liegt das Problem.

mfg
t_web

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.