[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