Re: Booting L4Re with qemu-system-arm: Panic in sigma0

Leslie Zhai <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
Hi Matthias,

Thanks for your kind response!


在 2017年10月31日 20:41, Matthias Lange 写道:
> Hi,
>
> this looks like an undefined instruction. Maybe the build and the
> emulated CPU model does not match? Have you tried changing the CPU model
> with the '-cpu" option?

still failed:

QEMU-cmd: qemu-system-arm -kernel 
/data/project/xiangzhai/l4re/l4/build-arm/images/bootstrap.elf -serial 
stdio -M integratorcp -cpu arm926 -m 256

I am trying to build Fiaso and L4Re with different GNU cross-compiler 
toolchain.

>
> Best,
> Matthias.
>
>
> On 10/31/2017 09:24 AM, Leslie Zhai wrote:
>> Hi L4 hackers,
>>
>>
>> $ svn info
>> Path: .
>> Working Copy Root Path: /data/project/l4re
>> URL: https://svn.l4re.org/repos/oc/l4re/trunk
>> Relative URL: ^/trunk
>> Repository Root: https://svn.l4re.org/repos/oc/l4re
>> Repository UUID: d050ee49-bd90-4346-b210-929a50b99cfc
>> Revision: 75
>> Node Kind: directory
>> Schedule: normal
>> Last Changed Author: l4check
>> Last Changed Rev: 75
>> Last Changed Date: 2017-10-15 19:49:39 +0800 (Sun, 15 Oct 2017)
>>
>>
>> My Fiasco build config:
>>
>> #
>> # Automatically generated file; DO NOT EDIT.
>> # Fiasco configuration
>> #
>> CONFIG_HAS_FPU_OPTION=y
>> CONFIG_HAS_SERIAL_OPTION=y
>> CONFIG_HAS_JDB_GZIP_OPTION=y
>>
>> #
>> # Target configuration
>> #
>> # CONFIG_IA32 is not set
>> # CONFIG_AMD64 is not set
>> CONFIG_ARM=y
>> # CONFIG_MIPS is not set
>> CONFIG_PF_INTEGRATOR=y
>> # CONFIG_PF_REALVIEW is not set
>> # CONFIG_PF_SUNXI is not set
>> # CONFIG_PF_BCM283X is not set
>> # CONFIG_PF_SA1100 is not set
>> # CONFIG_PF_XSCALE is not set
>> # CONFIG_PF_ARMADA38X is not set
>> # CONFIG_PF_KIRKWOOD is not set
>> # CONFIG_PF_TEGRA is not set
>> # CONFIG_PF_LAYERSCAPE is not set
>> # CONFIG_PF_IMX is not set
>> # CONFIG_PF_RCAR3 is not set
>> # CONFIG_PF_EXYNOS is not set
>> # CONFIG_PF_S3C2410 is not set
>> # CONFIG_PF_OMAP is not set
>> # CONFIG_PF_ZYNQ is not set
>> CONFIG_BSP_NAME="integrator"
>> CONFIG_CAN_ARM_CPU_926=y
>> CONFIG_CAN_ARM_CPU_1176=y
>> CONFIG_ABI_VF=y
>> CONFIG_ARM_926=y
>> # CONFIG_ARM_1176 is not set
>> CONFIG_FPU=y
>> CONFIG_ARM_ALIGNMENT_CHECK=y
>> CONFIG_ARM_EM_STD=y
>> CONFIG_ARM_CPU_ERRATA=y
>>
>> #
>> # Kernel options
>> #
>> # CONFIG_CONTEXT_8K is not set
>> CONFIG_CONTEXT_4K=y
>> CONFIG_FINE_GRAINED_CPUTIME=y
>> CONFIG_SCHED_FIXED_PRIO=y
>> # CONFIG_SCHED_WFQ is not set
>> # CONFIG_SCHED_FP_WFQ is not set
>>
>> #
>> # Debugging
>> #
>> CONFIG_INLINE=y
>> # CONFIG_NDEBUG is not set
>> # CONFIG_NO_FRAME_PTR is not set
>> CONFIG_STACK_DEPTH=y
>> CONFIG_LIST_ALLOC_SANITY=y
>> CONFIG_SERIAL=y
>> CONFIG_JDB=y
>> CONFIG_JDB_LOGGING=y
>> CONFIG_JDB_GZIP=y
>> # CONFIG_JDB_ACCOUNTING is not set
>> # CONFIG_WARN_NONE is not set
>> # CONFIG_WARN_WARNING is not set
>> CONFIG_WARN_ANY=y
>>
>> #
>> # ARM debugging options
>> #
>> CONFIG_VMEM_ALLOC_TEST=y
>> CONFIG_DEBUG_KERNEL_PAGE_FAULTS=y
>>
>> #
>> # Compiling
>> #
>> CONFIG_CC="gcc"
>> CONFIG_CXX="g++"
>> CONFIG_HOST_CC="gcc"
>> CONFIG_HOST_CXX="g++"
>> CONFIG_MAINTAINER_MODE=y
>> CONFIG_LABEL=""
>> CONFIG_EXPERIMENTAL=y
>> CONFIG_PERF_CNT=y
>> CONFIG_BIT32=y
>> CONFIG_WARN_LEVEL=2
>> CONFIG_XARCH="arm"
>> CONFIG_ABI="vf"
>>
>>
>> My L4Re build config:
>>
>> # Automatically generated. Don't edit
>>
>> BID_COMPILER_TYPE=gcc
>> BUILD_SYSTEMS=arm_armv5te arm_armv5te-l4f
>> CONFIG_ARCH_ENABLE_STACK_PROTECTOR=y
>> CONFIG_BID_GCC_ENABLE_STACK_PROTECTOR=y
>> CONFIG_BID_GCC_STACK_PROTECTOR=y
>> CONFIG_BUILD_ABI="l4f"
>> CONFIG_BUILD_ABI_l4f=y
>> CONFIG_BUILD_ARCH="arm"
>> CONFIG_BUILD_ARCH_arm=y
>> CONFIG_CPU_ARM_ARMV5TE=y
>> CONFIG_CPU="armv5te"
>> CONFIG_CTAGS="ctags"
>> CONFIG_DROPS_INSTDIR="/path/to/l4re"
>> CONFIG_DROPS_STDDIR="/path/to/l4re"
>> CONFIG_ETAGS="etags"
>> CONFIG_LEX="flex"
>> CONFIG_MAKECONFS_ADD=""
>> CONFIG_YACC="yacc"
>> GCCDIR=/usr/lib/gcc/arm-linux-gnueabi/6.1.1
>> GCCFORTRANAVAIL=
>> GCC_HAS_ATOMICS=
>> GCCINCFIXEDPATH=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/include-fixed
>> GCCLIB_EH=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/libgcc_eh.a
>> GCCLIB_FILE_crtbegin.o=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/crtbegin.o
>> GCCLIB_FILE_crtbeginS.o=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/crtbeginS.o
>> GCCLIB_FILE_crtbeginT.o=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/crtbeginT.o
>> GCCLIB_FILE_crtend.o=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/crtend.o
>> GCCLIB_FILE_crtendS.o=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/crtendS.o
>> GCCLIB_HOST=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/libgcc.a
>> GCCLIB_S_SO=
>> GCCMAJORVERSION=6
>> GCCMINORVERSION=1
>> GCCNOSTACKPROTOPT=-fno-stack-protector
>> GCCPATCHLEVEL=1
>> GCCSTACKPROTALLOPT=-fstack-protector-all
>> GCCSTACKPROTOPT=-fstack-protector
>> GCCSYSLIBDIRS=-L/usr/lib/gcc/arm-linux-gnueabi/6.1.1/
>> -L/usr/lib/gcc/arm-linux-gnueabi/6.1.1/../../../../arm-linux-gnueabi/lib/arm-linux-gnueabi/6.1.1/
>> -L/usr/lib/gcc/arm-linux-gnueabi/6.1.1/../../../../arm-linux-gnueabi/lib/ -L/usr/arm-linux-gnu/sys-root/lib/arm-linux-gnueabi/6.1.1/
>> -L/usr/arm-linux-gnu/sys-root/lib/
>> -L/usr/arm-linux-gnu/sys-root/usr/lib/arm-linux-gnueabi/6.1.1/
>> -L/usr/arm-linux-gnu/sys-root/usr/lib/
>> GCCVERSION=6
>> HOST_SYSTEM=linux
>> INT_CPP_NAME=cc1
>> INT_CXX_NAME=cc1plus
>> INT_LD_NAME=arm-linux-gnu-ld
>> LD_EMULATION=armelf_linux_eabi
>> LD_GENDEP_PREFIX=LD_PRELOAD=libgendep.so
>> LD_LIBRARY_PATH=/data/project/xiangzhai/l4re/l4/build-arm/tool/gendep/64:/data/project/xiangzhai/l4re/l4/build-arm/tool/gendep/32
>>
>> LD_HAS_HASH_STYLE_OPTION=n
>> LDVERSION=227-3
>> include /data/project/xiangzhai/l4re/l4/build-arm/.config.indep
>> include /data/project/xiangzhai/l4re/l4/build-arm/.config.platform
>>
>>
>> Booting L4Re with qemu-system-arm:
>>
>> $ make qemu CROSS_COMPILE=arm-linux-gnu- E=hello
>> MODULE_SEARCH_PATH=/data/project/xiangzhai/l4re/kernel/fiasco/build-arm
>> make[1]: Entering directory '/data/project/xiangzhai/l4re/l4'
>>    Image size(s) in bytes:
>>              bootstrap_hello.elf:  1279488
>>    Start address: 0x1000000
>>    --> Build-Nr: 6
>> QEMU-cmd: qemu-system-arm -kernel
>> /data/project/xiangzhai/l4re/l4/build-arm/images/bootstrap.elf -serial
>> stdio -M integratorcp -m 256
>>
>> L4 Bootstrapper
>>    Build: #6 Tue Oct 31 15:50:55 CST 2017, 6.1.1 20160621 (Red Hat Cross
>> 6.1.1-2)
>>    Scanning up to 256 MB RAM, starting at offset 32MB
>>    Memory size is 256MB (00000000 - 0fffffff)
>>    RAM: 0000000000000000 - 000000000fffffff: 262144kB
>>    Total RAM: 256MB
>>    Scanning fiasco
>>    Scanning sigma0
>>    Scanning moe
>>    Moving up to 5 modules behind 1100000
>>    moving module 02 { 10e7000-11284af } -> { 11d8000-12194af } [267440]
>>    moving module 01 { 10d5000-10e6343 } -> { 11c6000-11d7343 } [70468]
>>    moving module 00 { 1053000-10d4edb } -> { 1144000-11c5edb } [532188]
>>    moving module 04 { 1031000-1052697 } -> { 1122000-1143697 } [136856]
>>    moving module 03 { 100f000-1030473 } -> { 1100000-1121473 } [136308]
>>    Loading fiasco
>>    Loading sigma0
>>    Loading moe
>>    find kernel info page...
>>    found kernel info page (via ELF) at 2000
>> Regions of list 'regions'
>>      [     1000,      193f] {      940} Kern   fiasco
>>      [     2000,     8efff] {    8d000} Kern   fiasco
>>      [    8f000,     8f0eb] {       ec} Root   mbi_rt
>>      [    e0000,     eb16b] {     b16c} Sigma0 sigma0
>>      [    f0000,     f517b] {     517c} Sigma0 sigma0
>>      [   140000,    1711df] {    311e0} Root   moe
>>      [   180000,    18c4eb] {     c4ec} Root   moe
>>      [  1000000,   100e4f7] {     e4f8} Boot   bootstrap
>>      [  1100000,   1143fff] {    44000} Root   Module
>>    found kernel options (via ELF) at 3000
>>    Sigma0 config    ip:000e0100 sp:00000000
>>    Roottask config  ip:00140254 sp:00000000
>>    Starting kernel fiasco at 00001118
>> Hello from Startup::stage2
>> FPU: Initialize
>> FPU0: Subarch: 1, Part: 10, Rev: 0, Var: 9, Impl: 41
>>
>> KERNEL: Warning: Buddy::alloc: Size mismatch: 1c000 v 20000
>> SERIAL ESC: allocated IRQ 1 for serial uart
>> Not using serial hack in slow timer handler.
>> Welcome to L4/Fiasco.OC!
>> L4/Fiasco.OC microkernel on arm
>> Rev: 362fdae-dirty compiled with gcc 6.1.1 20160621 (Red Hat Cross
>> 6.1.1-2) for Integrator    []
>> Build: #2 Tue Oct 31 15:39:15 CST 2017
>>
>> Calibrating timer loop... done.
>> MDB: use page size: 20
>> MDB: use page size: 12
>> EXCEPTION: (00) Why undef insn? pfa=00002000, error=00000000 psr=20000110
>> R[0]: 00002000 00000000 00000000 000e01d0  000f0004 00002000 000f0030
>> 00000000
>> R[8]: 00000000 00000000 00000000 000f281c  000f2808 00000000 00000000
>> 000e01d4
>>
>> KERNEL: Warning: Sigma0 raised an exception --> HALT
>> Panic: ...
>> ---------------------------------------------------------------------
>>      CPU 0 [f001519c]: abort
>> jdb:
>>
>>
>> Then how to use addr2line to find the root cause? please give me some
>> hint, thanks a lot!
>>
>> $ arm-linux-gnu-addr2line -p -i -e bin/arm_armv5te/bootstrap.elf -a
>> 00002000
>>
>>
>> Because 0001-Fix-invalid-initialization-in-new.patch has been already
>> merged into svn trunk, so this
>> http://os.inf.tu-dresden.de/pipermail/l4-hackers/2017/008111.html might
>> not fix my issue, but as Sarah mentioned "looks like a compiler issue"?
>>
>> $ arm-linux-gnu-gcc -v
>> Using built-in specs.
>> COLLECT_GCC=arm-linux-gnu-gcc
>> COLLECT_LTO_WRAPPER=/usr/libexec/gcc/arm-linux-gnueabi/6.1.1/lto-wrapper
>> Target: arm-linux-gnueabi
>> Configured with: ../gcc-6.1.1-20160621/configure --bindir=/usr/bin
>> --build=x86_64-redhat-linux-gnu --datadir=/usr/share
>> --disable-decimal-float --disable-dependency-tracking --disable-gold
>> --disable-libgcj --disable-libgomp --disable-libmpx
>> --disable-libquadmath --disable-libssp --disable-libunwind-exceptions
>> --disable-shared --disable-silent-rules --disable-sjlj-exceptions
>> --disable-threads --with-ld=/usr/bin/arm-linux-gnu-ld
>> --enable-__cxa_atexit --enable-checking=release
>> --enable-gnu-unique-object --enable-initfini-array
>> --enable-languages=c,c++ --enable-linker-build-id --enable-lto
>> --enable-nls --enable-obsolete --enable-plugin --enable-targets=all
>> --exec-prefix=/usr --host=x86_64-redhat-linux-gnu
>> --includedir=/usr/include --infodir=/usr/share/info
>> --libexecdir=/usr/libexec --localstatedir=/var --mandir=/usr/share/man
>> --prefix=/usr --program-prefix=arm-linux-gnu- --sbindir=/usr/sbin
>> --sharedstatedir=/var/lib --sysconfdir=/etc --target=arm-linux-gnueabi
>> --with-bugurl=http://bugzilla.redhat.com/bugzilla/ --with-isl
>> --with-newlib --with-plugin-ld=/usr/bin/arm-linux-gnu-ld
>> --with-sysroot=/usr/arm-linux-gnu/sys-root --with-system-libunwind
>> --with-system-zlib --without-headers --with-tune=cortex-a8
>> --with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16
>> --with-abi=aapcs-linux --enable-gnu-indirect-function
>> --with-linker-hash-style=gnu
>> Thread model: single
>> gcc version 6.1.1 20160621 (Red Hat Cross 6.1.1-2) (GCC)

-- 
Regards,
Leslie Zhai - https://reviews.llvm.org/p/xiangzhai/




_______________________________________________
l4-hackers mailing list
[email protected]
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.