Fiasco.OC and qemu vexpress machine model

Michele Paolino m.paolino at virtualopensystems.com
Wed Apr 16 13:03:44 CEST 2014


Hello Adam,

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
    d0             {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d1             {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d2             {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d3             {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d4             {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d5             {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d6             {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d7             {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d8             {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d9             {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d10            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d11            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d12            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d13            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d14            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d15            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d16            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d17            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d18            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d19            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d20            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d21            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d22            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d23            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d24            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d25            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d26            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d27            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d28            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d29            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d30            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    d31            {u8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u16 =
    {0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0}, u64 = 0x0, f32 = {0x0, 0x0},
    f64 = 0x0}
    fpscr          0x0    0
    q0             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    q1             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    q2             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    q3             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    q4             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    q5             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    q6             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    q7             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    q8             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    q9             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    q10            {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    q10            {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    q12            {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    q13            {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    q14            {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    q15            {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0,
    0x0, 0x0,
         0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0},
    f32 = {0x0,
         0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
    fpsid          0x410430f0    1090793712
    fpexc          0x0    0
    s0             0    (raw 0x00000000)
    ..
    s31             0    (raw 0x00000000)


>
>
>
> Adam

Thanks,

-- 
Michele Paolino

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20140416/28be328d/attachment.html>


More information about the l4-hackers mailing list