Stelian Pop wrote:
> Le jeudi 19 avril 2007 ~ 08:38 +0200, Stelian Pop a ~crit :
> > Le jeudi 19 avril 2007 ~ 01:35 +0200, Gilles Chanteperdrix a ~crit :
> > > Stelian Pop wrote:
> > > > Hi,
> > > >
> > > > The attached patch adds an option to make Xenomai userspace issue EABI
> > > > syscalls. This is needed to make Xenomai work with kernels compiled
> > > with
> > > > CONFIG_EABI.
> > > >
> > > I get a problem with this patch: I am in the no EABI case in user-space
> > > and kernel-space, and when starting latency, I get an "Illegal
> > > instruction" message. If I revert this patch, latency starts
> > > correctly. Any idea ?
> >
> > Hmm, I might have screwed up here. A quick looking points me to this
> > change:
> >
> > +#define __SYS_REG
> > +#define __SYS_REG_LIST
> > +#define __syscall "swi\t" __sys1(XENO_ARM_SYSCALL) ""
> >
> > Does replacing XENO_ARM_SYSCALL with (0x00900000 + XENO_ARM_SYSCALL)
> > fixes it ?
> >
> > I may be able to mount a test platform later today if this needs further
> > debugging...
>
> I have finally managed to get my old-ABI toolchain to work and can
> confirm that the modification above fixes the problem.
>
> The whole section of include/asm-arm/syscall.h must read:
>
> #ifdef CONFIG_XENO_ARM_EABI
> #define __SYS_REG register unsigned long __r7 __asm__ ("r7") =
> XENO_ARM_SYSCALL;#define __SYS_REG_LIST ,"r" (__r7)
> #define __syscall "swi\t0"
> #else
> #define __SYS_REG
> #define __SYS_REG_LIST
> #define __NR_OABI_SYSCALL_BASE 0x900000
> #define __syscall "swi\t" __sys1(__NR_OABI_SYSCALL_BASE + XENO_ARM_SYSCALL)
> ""
> #endif
>
> Sorry for the annoyance.
Yep, that was it, thanks.
--
Gilles Chanteperdrix.
_______________________________________________
Xenomai-core mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-core