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.htm>
More information about the l4-hackers
mailing list