[okl4-developer] unknown arm syscall: 0x0
Lukas HANEL
lukas.hanel at st.com
Wed Jul 23 23:30:15 EST 2008
Hi
I integrated our boards Nand flash driver to oklinux and am now able to
mount a diskimage in Nand as Linux root filesystem. However, when the
first application, compiled for our Linux kernel, starts, I get an
unknown arm syscall exception from Linux:
...
VFS: Mounted root (jffs2 filesystem) readonly.
Warning: unable to open an initial console.
1: unknown arm syscall: 0x0 at 0x814868
init:1:20001 unknown syscall
1: unknown arm syscall: 0x0 at 0x814868
init:1:20001 unknown syscall
...
It seems that "init" is the binary at /sbin/init.
This "at 0x814868" is referring to the IP of the running program.
When looking at kernel-2.6.23-v2/include/asm-l4/arm/syscalls_inline.h,
the function l4_arch_lookup_syscall is throwing the error message. The
variable call is according to the output 0. It is checked against
__NR_SYSCALL_BASE, which is defined in include/asm-arm/unistd.h as 0 if
__ARM_EABI__ is defined, otherwise as 0x900000. So this EABI is not set
in oklinux, but most likely in our kernel. What to do?
It seems that init has nothing on virtual address 0x008X XXXX. But there
can be dynamic libraries?
How to get the virtual memory layout for Linux programs that use
dynamic libraries?
When compiling oklinux, a check script complains about missings
syscalls. Are there syscall missing in oklinux?
I do not know how the binaries are created, i.e. with which toolchain.
Can toolchains be the source of this problem?
Do userland programs have to be compiled specially for oklinux? Or for
a certain Linux version? I.e. our kernel has version 2.6.20.
Where are oklinux processes executing in terms of L4?
What is the relation between virtual addresses in oklinux programs and
the single address space OS design?
thanks,
Lukas Hänel
More information about the Developer
mailing list