Fiasco.OC and qemu vexpress machine model

Michele Paolino m.paolino at virtualopensystems.com
Wed Apr 23 09:50:39 CEST 2014


Adam,

In fact it seems that the version present in the Ubuntu 12.04 repository 
is too old and has some problem with FIASCO. Thank you for your help, I 
downloaded and compiled qemu v2 and now it works.

Actually I didn't try to change the qemu version before because I tried 
to use the bootstrap.elf with FastModels and the kernel stops at 
"Roottask config  ip:801401a0 sp:00000000" ( more or less same behavior 
of the older versions of QEMU, so I thought the problem was the same). 
Is there anyone who has experience with FIASCO+FastModels?

Lastly, is there any example that you can mention of FIASCO.OC usage in 
production?

Regards,
Michele

On 19/04/2014 11:31, Adam Lackorzynski wrote:
> On Thu Apr 17, 2014 at 23:21:20 +0200, Adam Lackorzynski wrote:
>> Hi,
>>
>> On Thu Apr 17, 2014 at 13:01:18 +0200, Michele Paolino wrote:
>>> On 17/04/2014 00:02, Adam Lackorzynski wrote:
>>>> On Wed Apr 16, 2014 at 13:03:44 +0200, Michele Paolino wrote:
>>>>> On 15/04/2014 23:33, Adam Lackorzynski wrote:
>>>>>> On Tue Apr 15, 2014 at 17:26:36 +0200, Michele Paolino wrote:
>>>>>>> Hello Adam,
>>>>>>>
>>>>>>> On 14/04/2014 23:53, Adam Lackorzynski wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> On Mon Apr 14, 2014 at 11:35:25 +0200, Michele Paolino wrote:
>>>>>>>>> I'm trying to execute Fiasco.OC along with the hello module using qemu and
>>>>>>>>> the vexpress machine model. For both A9 and A15 cpus the system hangs at
>>>>>>>>> "Starting kernel fiasco". It seems that something (the UART driver?)
>>>>>>>>> prevents the system to log the kernel boot to the screen.
>>>>>>>>>
>>>>>>>>> I compiled the image using 'make qemu' in L4RE, and the vm is executed with
>>>>>>>>> the argument -nographic.
>>>>>>>>>
>>>>>>>>> Can you confirm this? Do you have any suggestion to solve it?
>>>>>>>>>
>>>>>>>>> Here below you can find the log of the A15 boot process:
>>>>>>>> Did you launch make qemu with PT=rv_vexpress_a15 and did the launch pick
>>>>>>>> up the right Fiasco binary, i.e. that one configured for vexpress-a15?
>>>>>>> Executing "make qemu O=../build PT=rv_vexpress_a15 E=hello" results in the
>>>>>>> following:
>>>>>>>
>>>>>>>        Image size(s) in bytes:
>>>>>>>                  bootstrap_hello.elf:  917888
>>>>>>>        Start address: 0x81000000
>>>>>>>        --> Build-Nr: 2
>>>>>>>     QEmu-cmd: qemu-system-arm -kernel
>>>>>>>     /home/neonum6/l4re-core-2014022818/src/build/images/bootstrap.elf
>>>>>>>     -nographic -M vexpress-a15 -m 256
>>>>>>>
>>>>>>>
>>>>>>> And soon after the log of the boot is exactly the one I posted before. I
>>>>>>> assume that what is in build/images/ is the right binary (bootstrap.elf is a
>>>>>>> symbolic link to
>>>>>>> build/pkg/bootstrap/server/src/OBJ-arm_armv7a/bootstrap.elf), should I check
>>>>>>> elsewhere?
>>>>>> I'd suspect that Fiasco could be wrongly configured, that's why I was
>>>>>> asking whether the build process picked up the right Fiasco image that
>>>>>> has been also configured for this target.
>>>>>>
>>>>>>> ps: I tried to investigate about the status of the CPU registers using GDB,
>>>>>>> the info all-registers command returns always the same value for all the
>>>>>>> registers.
>>>>>> Please show them, they might tell me something :)
>>>>> Sure. This is the log:
>>>>>
>>>>>     (gdb) target remote :1234
>>>>>     Remote debugging using :1234
>>>>>     0xffff000c in ?? ()
>>>>>     (gdb) info all-registers
>>>>>     r0             0x1c    28
>>>>>     r1             0x2    2
>>>>>     r2             0x2    2
>>>>>     r3             0xffffffff    -1
>>>>>     r4             0x0    0
>>>>>     r5             0x9000200b    -1879039989
>>>>>     r6             0xc53c7f    12926079
>>>>>     r7             0x0    0
>>>>>     r8             0x80059cc0    -2147115840
>>>>>     r9             0x55555555    1431655765
>>>>>     r10            0x0    0
>>>>>     r11            0x80002500    -2147474176
>>>>>     r12            0x0    0
>>>>>     sp             0x0    0x0
>>>>>     lr             0xffff0010    -65520
>>>>>     pc             0xffff000c    0xffff000c
>>>>>     cpsr           0x600001d7    1610613207
>>>> So it page-faulted. Could you show me the globalconfig.out out of the
>>>> Fiasco build-dir?
>>> This is the globalconfig file:
>> [...]
>>> I tried several configurations, for example I added the following
>>>
>>>     < CONFIG_ARM_ALIGNMENT_CHECK=y
>>>     < CONFIG_ARM_ENABLE_SWP=y
>>>     < CONFIG_ARM_LPAE=y
>>>     < CONFIG_FPU=y
>>>     < CONFIG_ARM_CPU_ERRATA=y
>>>
>>> to the config file, but it doesn't solve the problem. In the meantime I'm
>>> checking the vexpress memory map in the directory
>>> kernel/fiasco/src/kern/arm, but everything looks good to me. Is there anyone
>>> who actually uses FIASCO with this configuration?
>> It's among the platforms I use more regularly, so yes. I just tried your
>> config and it works fine for me. Could you send me your bootstrap.elf
>> and fiasco.image files (off-list) so that I can take a look?
> Your image works fine for me with
> qemu-system-arm -kernel /tmp/bootstrap.elf -nographic -M vexpress-a15 -m 256
>
> I'm using a recent Qemu version. Which version do you use?
>
>
>
> Adam



More information about the l4-hackers mailing list