Fiasco.OC and qemu vexpress machine model
Michele Paolino
m.paolino at virtualopensystems.com
Thu Apr 17 13:01:18 CEST 2014
Hi,
On 17/04/2014 00:02, Adam Lackorzynski wrote:
> Hi,
>
> 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?
>
>
>
> Adam
This is the globalconfig file:
#
# Automatically generated file; DO NOT EDIT.
# Fiasco configuration
#
#
# Target configuration
#
# CONFIG_IA32 is not set
# CONFIG_AMD64 is not set
CONFIG_ARM=y
# CONFIG_PF_IMX is not set
CONFIG_PF_REALVIEW=y
# CONFIG_PF_S3C2410 is not set
# CONFIG_PF_TEGRA is not set
# CONFIG_PF_OMAP is not set
# CONFIG_PF_SA1100 is not set
# CONFIG_PF_XSCALE is not set
# CONFIG_PF_EXYNOS is not set
# CONFIG_PF_KIRKWOOD is not set
# CONFIG_PF_INTEGRATOR is not set
# CONFIG_PF_BCM2835 is not set
CONFIG_BSP_NAME="realview"
# CONFIG_PF_REALVIEW_EB is not set
# CONFIG_PF_REALVIEW_PB11MP is not set
# CONFIG_PF_REALVIEW_PBX is not set
CONFIG_PF_REALVIEW_VEXPRESS=y
CONFIG_PF_REALVIEW_VEXPRESS_A15=y
CONFIG_PF_REALVIEW_RAM_PHYS_BASE_0x8=y
CONFIG_PF_REALVIEW_RAM_PHYS_BASE=0x80000000
CONFIG_ABI_VF=y
CONFIG_PF_ARM_MP_CAPABLE=y
CONFIG_CAN_ARM_CPU_CORTEX_A9=y
CONFIG_CAN_ARM_CPU_CORTEX_A15=y
# CONFIG_ARM_CORTEX_A9 is not set
CONFIG_ARM_CORTEX_A15=y
# CONFIG_ARM_ALIGNMENT_CHECK is not set
CONFIG_ARM_EM_STD=y
# CONFIG_ARM_EM_NS is not set
# CONFIG_ARM_EM_TZ is not set
# CONFIG_ARM_ENABLE_SWP is not set
# CONFIG_ARM_LPAE is not set
# CONFIG_FPU is not set
# CONFIG_ARM_CPU_ERRATA is not set
#
# Kernel options
#
# CONFIG_MP is not set
CONFIG_CONTEXT_4K=y
# CONFIG_FINE_GRAINED_CPUTIME is not set
CONFIG_SCHED_FIXED_PRIO=y
CONFIG_VIRT_OBJ_SPACE=y
#
# Debugging
#
CONFIG_INLINE=y
# CONFIG_NDEBUG is not set
CONFIG_NO_FRAME_PTR=y
# CONFIG_STACK_DEPTH is not set
# CONFIG_LIST_ALLOC_SANITY is not set
CONFIG_SERIAL=y
CONFIG_JDB=y
# CONFIG_JDB_LOGGING is not set
# CONFIG_JDB_DISASM is not set
# CONFIG_JDB_GZIP is not set
# CONFIG_VMEM_ALLOC_TEST is not set
# CONFIG_DEBUG_KERNEL_PAGE_FAULTS is not set
# CONFIG_WARN_NONE is not set
CONFIG_WARN_WARNING=y
# CONFIG_WARN_ANY is not set
#
# Compiling
#
CONFIG_CC="gcc"
CONFIG_CXX="g++"
CONFIG_HOST_CC="gcc"
CONFIG_HOST_CXX="g++"
# CONFIG_MAINTAINER_MODE is not set
CONFIG_LABEL=""
# CONFIG_EXPERIMENTAL is not set
CONFIG_PERF_CNT=y
CONFIG_BIT32=y
CONFIG_ARM_V7=y
CONFIG_ARM_V6PLUS=y
CONFIG_WARN_LEVEL=1
CONFIG_XARCH="arm"
CONFIG_ABI="vf"
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?
Regards,
--
Michele Paolino
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20140417/9f3e17df/attachment.html>
More information about the l4-hackers
mailing list