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.

-- 
Stelian Pop <[EMAIL PROTECTED]>


_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to