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