I'm trying to run the ARM-based frame buffer configuration from conf/examples/arm-rv-lcd.cfg with pkg/io/config/arm-rv-eb-mc.devs and QEMU (-M realview-pbx-a9). I can boot the L4 Linux kernel on this (without GUI but just serial I/O) configuration, but I get an error when trying to set up the LCD (see below).
Perhaps the LCD device configuration from the .devs file does not match what hardware QEMU emulates? How can I actually enumerate in the IO server what hardware it actually runs on? Is there a way to do that?
Thanks, Anna
L4 Bootstrapper Build: #34 Mon Jul 11 16:17:10 BST 2011, 4.5.2 Scanning up to 256 MB RAM Memory size is 256MB (00000000 - 10000000) RAM: 0000000000000000 - 000000000fffffff: 262144kB Total RAM: 256MB mod11: 012a9000-012cac7c: ex_fb_spectrum mod10: 0121b000-012a846c: mag mod09: 011f1000-0121a5b8: fb-drv mod08: 0119d000-011f01b8: ned mod07: 010c2000-0119cb58: io mod06: 010a8000-010c1510: l4re mod05: 010a7000-010a70e4: arm-rv-lcd.io mod04: 010a6000-010a659d: arm-rv-eb-mc.devs mod03: 010a5000-010a56bb: arm-rv-lcd.cfg mod02: 0106b000-010a45f0: moe mod01: 01061000-0106a33c: sigma0 mod00: 01015000-0106014c: fiasco Moving 12 modules to 1100000 with offset eb000 moving module 12 { 12a9000-12cac7c } -> { 1394000-13b5c7c } moving module 11 { 121b000-12a846c } -> { 1306000-139346c } moving module 10 { 11f1000-121a5b8 } -> { 12dc000-13055b8 } moving module 09 { 119d000-11f01b8 } -> { 1288000-12db1b8 } moving module 08 { 10c2000-119cb58 } -> { 11ad000-1287b58 } moving module 07 { 10a8000-10c1510 } -> { 1193000-11ac510 } moving module 06 { 10a7000-10a70e4 } -> { 1192000-11920e4 } moving module 05 { 10a6000-10a659d } -> { 1191000-119159d } moving module 04 { 10a5000-10a56bb } -> { 1190000-11906bb } moving module 03 { 106b000-10a45f0 } -> { 1156000-118f5f0 } moving module 02 { 1061000-106a33c } -> { 114c000-115533c } moving module 01 { 1015000-106014c } -> { 1100000-114b14c } Scanning fiasco -serial_esc Scanning sigma0 Scanning moe rom/arm-rv-lcd.cfg Relocated mbi to [0x100f000-0x100f19e] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page at 0x2000 Regions of list regions [ 1000, 19ff] { a00} Kern fiasco [ 2000, 5cfff] { 5b000} Kern fiasco [ 90000, 9e17b] { e17c} Sigma0 sigma0 [ 140000, 17160b] { 3160c} Root moe [ 178000, 18eec7] { 16ec8} Root moe [ 1000000, 10143eb] { 143ec} Boot bootstrap [ 100f000, 100f29b] { 29c} Root Multiboot info [ 1190000, 13b5c7b] { 225c7c} Root Modules Memory API Version: (87) experimental Sigma0 config ip:000900e0 sp:01013044 Roottask config ip:00140178 sp:00000000 Starting kernel fiasco at 00001000 Realview System ID: Rev=0 HBI=178 Build=0 Arch=5 FPGA=00 L2: ID=00000000 Type=00000000 L2 cache enabled Hello from Startup::stage2 Initialize page table Number of IRQs available at this GIC: 96 Vmem_alloc::init() Cache config: ON ID_PFR0: 00001031 ID_PFR1: 00000011 ID_DFR0: 00000000 ID_AFR0: 00000000 ID_MMFR0: 00100103 ID_MMFR1: 20000000 ID_MMFR2: 01230000 ID_MMFR3: 00002111 SERIAL ESC: allocated IRQ 44 for serial uart Not using serial hack in slow timer handler. Welcome to Fiasco.OC (arm)! L4/Fiasco.OC arm microkernel (C) 1998-2011 TU Dresden Rev: r33 compiled with gcc 4.5.2 for Realview [] Build: #1 Tue Jun 21 12:57:15 BST 2011
Calibrating timer loop... done. SIGMA0: Hello! KIP @ 2000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [0:0;fff] [0:5d000;8ffff] [0:9f000;13ffff] [4:140000;171fff] [0:172000;177fff] [4:178000;18efff] [0:18f000;100efff] [4:100f000;100ffff] [0:1010000;118ffff] [4:1190000;13b5fff] [0:13b6000;effffff] IOMEM:---------------------- [0:10000000;ffffffff] MOE: Hello world MOE: found 242832 KByte free memory MOE: found RAM from 5d000 to f000000 MOE: allocated 239 KByte for the page array @0x9f000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:501000] BOOTFS: [1190000-11906bb] [C:503000] arm-rv-lcd.cfg BOOTFS: [1191000-119159d] [C:504000] arm-rv-eb-mc.devs BOOTFS: [1192000-11920e4] [C:505000] arm-rv-lcd.io BOOTFS: [1193000-11ac510] [C:506000] l4re BOOTFS: [11ad000-1287b58] [C:507000] io BOOTFS: [1288000-12db1b8] [C:508000] ned BOOTFS: [12dc000-13055b8] [C:509000] fb-drv BOOTFS: [1306000-139346c] [C:50a000] mag BOOTFS: [1394000-13b5c7c] [C:50b000] ex_fb_spectrum MOE: cmdline: moe rom/arm-rv-lcd.cfg MOE: Starting: rom/ned rom/arm-rv-lcd.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/arm-rv-lcd.cfg' IO | Io service mag | libio: Warning: Finding 'icu' in system bus failed with 'Void capability invoked' mag | Hello from MAG fbdrv | libio: Warning: Finding 'icu' in system bus failed with 'Void capability invoked' fbdrv | Could not find LCD. fbdrv | Failed to setup Framebuffer mag | Error: Exception: Void capability invoked: requesting goos info: backtrace ... mag | mag | MAG: destroy FB svc Ned[lua]: Hm, cpapbility 42d000 does not support the meta protocol: -2004 Ned: ERROR: rom/arm-rv-lcd.cfg:62: attempt to call method 'create' (a nil value)
Hi Anna,
On Mon Jul 11, 2011 at 16:43:58 +0100, Anna Fischer wrote:
I'm trying to run the ARM-based frame buffer configuration from conf/examples/arm-rv-lcd.cfg with pkg/io/config/arm-rv-eb-mc.devs and QEMU (-M realview-pbx-a9). I can boot the L4 Linux kernel on this (without GUI but just serial I/O) configuration, but I get an error when trying to set up the LCD (see below).
Perhaps the LCD device configuration from the .devs file does not match what hardware QEMU emulates? How can I actually enumerate in the IO server what hardware it actually runs on? Is there a way to do that?
MOE: rom name space cap -> [C:501000] BOOTFS: [1190000-11906bb] [C:503000] arm-rv-lcd.cfg BOOTFS: [1191000-119159d] [C:504000] arm-rv-eb-mc.devs BOOTFS: [1192000-11920e4] [C:505000] arm-rv-lcd.io BOOTFS: [1193000-11ac510] [C:506000] l4re BOOTFS: [11ad000-1287b58] [C:507000] io BOOTFS: [1288000-12db1b8] [C:508000] ned BOOTFS: [12dc000-13055b8] [C:509000] fb-drv BOOTFS: [1306000-139346c] [C:50a000] mag BOOTFS: [1394000-13b5c7c] [C:50b000] ex_fb_spectrum MOE: cmdline: moe rom/arm-rv-lcd.cfg MOE: Starting: rom/ned rom/arm-rv-lcd.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/arm-rv-lcd.cfg' IO | Io service mag | libio: Warning: Finding 'icu' in system bus failed with 'Void capability invoked'
I think the problem is 'just' that io hides its error messages when not being fed with -v (just corrected). Thus we do not see the proper output which I guess says that it cannot find one of the config files. Did you also change the file name in arm-rv-lcd.cfg? Anyway, on Qemu arm-rv-eb.devs is the right one, as unlike on hardware Qemu takes the realview-eb interrupt configuration also on pbx so that PS/2 works with this setup. It does not matter for the LCD. To see what io knows, add more -v's to it.
Adam
On Mon, 2011-07-11 at 21:34 +0000, Adam Lackorzynski wrote:
Hi Anna,
On Mon Jul 11, 2011 at 16:43:58 +0100, Anna Fischer wrote:
I'm trying to run the ARM-based frame buffer configuration from conf/examples/arm-rv-lcd.cfg with pkg/io/config/arm-rv-eb-mc.devs and QEMU (-M realview-pbx-a9). I can boot the L4 Linux kernel on this (without GUI but just serial I/O) configuration, but I get an error when trying to set up the LCD (see below).
Perhaps the LCD device configuration from the .devs file does not match what hardware QEMU emulates? How can I actually enumerate in the IO server what hardware it actually runs on? Is there a way to do that?
MOE: rom name space cap -> [C:501000] BOOTFS: [1190000-11906bb] [C:503000] arm-rv-lcd.cfg BOOTFS: [1191000-119159d] [C:504000] arm-rv-eb-mc.devs BOOTFS: [1192000-11920e4] [C:505000] arm-rv-lcd.io BOOTFS: [1193000-11ac510] [C:506000] l4re BOOTFS: [11ad000-1287b58] [C:507000] io BOOTFS: [1288000-12db1b8] [C:508000] ned BOOTFS: [12dc000-13055b8] [C:509000] fb-drv BOOTFS: [1306000-139346c] [C:50a000] mag BOOTFS: [1394000-13b5c7c] [C:50b000] ex_fb_spectrum MOE: cmdline: moe rom/arm-rv-lcd.cfg MOE: Starting: rom/ned rom/arm-rv-lcd.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/arm-rv-lcd.cfg' IO | Io service mag | libio: Warning: Finding 'icu' in system bus failed with 'Void capability invoked'
I think the problem is 'just' that io hides its error messages when not being fed with -v (just corrected). Thus we do not see the proper output which I guess says that it cannot find one of the config files. Did you also change the file name in arm-rv-lcd.cfg? Anyway, on Qemu arm-rv-eb.devs is the right one, as unlike on hardware Qemu takes the realview-eb interrupt configuration also on pbx so that PS/2 works with this setup. It does not matter for the LCD. To see what io knows, add more -v's to it.
Thanks, the problem was in the .cfg I forgot the "rom/" in the path name to the files. Now it boots just fine.
Cheers, Anna
l4-hackers@os.inf.tu-dresden.de