Naggischer Freerunner

Geschrieben von MMind am Dienstag, 3. Dezember 2013 in Geräte, Openmoko Freerunner

Der Openmoko Neo Freerunner war ja mein erster Schritt in die embedded-Welt. Leider fristete er die letzten Jahre eher ein Schattendasein — verdrängt durch Oyo und Rockchip-Geräte.

Da viele meiner Samsung-spezifischen Umbauarbeiten alle S3C24xx Prozessoren betreffen hatte ich schon mal den Wunsch diese auch auf dem Freerunner zu testen und dank einer Spende von Christoph Pulster bin ich seit neuestem Eigentümer eines Debug-Boards für den Freerunner. Also hieß es nur noch, dem Freerunner die Hüllen vom Leib zu reißen und den fummeligen Folienleiter anzuschliessen.

Freerunner mit Debug-Board

Das Board stellt einige Features bereit — JTAG, ausgeleitete Pins von I2C- und SPI-Bussen und mehr — aber ich denke mehr als die serielle Ausgabe der Konsole werde ich gar nicht benutzen.

Heute Abend hatte ich dann auch endlich mal Zeit einen Kernel für den Freerunner zu bauen. Der Start gestaltete sich etwas schwierig, da zum einen der Kernel nicht wirklich weit kommt und zum anderen ich nicht wusste welcher UART nun der Debug-UART war. Natürlich war es der letzte probierte UART, der dann doch noch ein paar Kernel-Logs ausgab:

Booting Linux on physical CPU 0x0
Linux version 3.13.0-rc2-next-20131203+ (hstuebner@marty) (gcc version 4.4.5 (Debian 4.4.5-8) ) #229 Tue Dec 3 22:50:48 CET 2013
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
CPU: VIVT data cache, VIVT instruction cache
Machine: GTA02
bootconsole [earlycon0] enabled
Memory policy: Data cache writeback
CPU S3C2442B (id 0x32440aab)
S3C24XX Clocks, Copyright 2004 Simtec Electronics
S3C244X: core 400.000 MHz, memory 100.000 MHz, peripheral 50.000 MHz
LOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
Kernel command line: console=ttySAC0,115200 earlyprintk
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 126288K/131072K available (2355K kernel code, 163K rwdata, 708K rodata, 121K init, 226K bss, 4784K reserved)
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    vmalloc : 0xc8800000 - 0xff000000   ( 872 MB)
    lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
    modules : 0xbf000000 - 0xc0000000   (  16 MB)
      .text : 0xc0008000 - 0xc0305f34   (3064 kB)
      .init : 0xc0306000 - 0xc03247e4   ( 122 kB)
      .data : 0xc0326000 - 0xc034ef88   ( 164 kB)
       .bss : 0xc034ef88 - 0xc0387a50   ( 227 kB)
NR_IRQS:103
S3C2442: IRQ Support
irq: clearing pending status 000b02f0
irq: clearing pending status 000902d0
irq: clearing pending status 000000c7
irq: clearing pending status 00000082
sched_clock: 16 bits at 1000kHz, resolution 1000ns, wraps every 65535000ns
Console: colour dummy device 80x30
Calibrating delay loop... 199.47 BogoMIPS (lpj=498688)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
Setting up static identity map for 0x30252760 - 0x302527b8
devtmpfs: initialized
regulator-dummy: no parameters
DMA: preallocated 256 KiB pool for atomic coherent allocations
S3C Power Management, Copyright 2004 Simtec Electronics
S3C2442: Initialising architecture
S3C244X: Clock Support, DVS off
bio: create slab  at 0
Switched to clocksource samsung_clocksource_timer
s3c-adc s3c24xx-adc: operating without regulator "vdd" .
platform s3c24xx-adc: Driver s3c-adc requests probe deferral
msgmni has been set to 246
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
io scheduler noop registered
io scheduler deadline registered (default)
s3c2440-uart.0: Controller clock not found
samsung-uart: probe of s3c2440-uart.0 failed with error -2
s3c2440-uart.1: Controller clock not found
samsung-uart: probe of s3c2440-uart.1 failed with error -2
s3c2440-uart.2: Controller clock not found
samsung-uart: probe of s3c2440-uart.2 failed with error -2
bootconsole [earlycon0] disabled

Ich frage mich ob schon mal jemand einen 3.x-Kernel auf einem Freerunner gestartet hat — der letzte echte Kernel der alle Freerunner-Features unterstützte war ja 2.6.39 oder so.


2 Kommentare für diesen Eintrag

Ansicht der Kommentare: Linear | Verschachtelt

  • Raphael
    Kernel 3.2: https://github.com/shr-distribution/linux/tree/om-gta02/3.2/master (via http://comments.gmane.org/gmane.comp.handhelds.openmoko.community/62621, wo auch auf einen laufenden 3.5er hingewiesen wird)
  • Heiko
    Das ist ja sogar relativ neu, aber trotzdem schon wieder mehr als ein Jahr hinterher. Naja mein Fokus liegt eh nicht so wirklich auf dem Freerunner selbst, sondern mehr auf der weiteren Konsolidierung der S3C24XX-Architektur im Allgemeinen. So arbeite ich gerade an der Umstellung zum Common-Clock-Framework, also analog zu http://patches.sntech.de/projects/linux-kernel/01_mailinglist/s3c2416-common-clk/ nur für 2410, 2440 und 2442.

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

Suche

Nach Einträgen suchen in Outside the Walled Garden:

Das Gesuchte nicht gefunden? Gib einen Kommentar in einem Eintrag ab oder nimm per E-Mail Kontakt auf!