diff --git a/package/xenomai/Config.in b/package/xenomai/Config.in index b09472d206..767f6229db 100644 --- a/package/xenomai/Config.in +++ b/package/xenomai/Config.in @@ -39,13 +39,6 @@ config BR2_PACKAGE_XENOMAI_VERSION BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH, in the Linux Kernel -> Linux Kernel Extensions menu. -config BR2_PACKAGE_XENOMAI_SMP - bool "Enable SMP support" - depends on BR2_cortex_a9 || !BR2_arm # only A9 has SMP support - help - This option allows to enable or disable SMP support. It has - to match your kernel configuration. - config BR2_PACKAGE_XENOMAI_TESTSUITE bool "Install testsuite" help diff --git a/package/xenomai/xenomai-thumb-fix.patch b/package/xenomai/xenomai-thumb-fix.patch deleted file mode 100644 index 7c98c2ebf6..0000000000 --- a/package/xenomai/xenomai-thumb-fix.patch +++ /dev/null @@ -1,157 +0,0 @@ -From ad3714e925f5c6b4ae0e0d31c4bab7f8c5e659db Mon Sep 17 00:00:00 2001 -From: Gilles Chanteperdrix -Date: Fri, 10 Aug 2012 21:55:41 +0200 -Subject: [PATCH] hal/arm: fix compilation for thumb - ---- - include/asm-arm/atomic.h | 3 ++ - ksrc/arch/arm/switch.S | 84 +++++++++++++++++++++++++++------------------ - 2 files changed, 53 insertions(+), 34 deletions(-) - -diff --git a/include/asm-arm/atomic.h b/include/asm-arm/atomic.h -index 5d55ae8..ae96847 100644 ---- a/include/asm-arm/atomic.h -+++ b/include/asm-arm/atomic.h -@@ -183,6 +183,9 @@ xnarch_atomic_cmpxchg(xnarch_atomic_t *ptr, - "ldrex %1, [%3]\n" - "mov %0, #0\n" - "teq %1, %4\n" -+#ifdef __thumb__ -+ "it eq\n" -+#endif - "strexeq %0, %5, [%3]\n" - : "=&r" (res), "=&r" (curval), "+Qo" (ptr->counter) - : "r" (&ptr->counter), "Ir" (oldval), "r" (newval) -diff --git a/ksrc/arch/arm/switch.S b/ksrc/arch/arm/switch.S -index 83f4746..95c355f 100644 ---- a/ksrc/arch/arm/switch.S -+++ b/ksrc/arch/arm/switch.S -@@ -37,6 +37,11 @@ - .endm - #endif - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31) -+#define ARM(x...) x -+#define THUMB(x...) -+#endif -+ - #if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 37) - #ifdef CONFIG_MMU - #define USE_DOMAINS -@@ -83,18 +88,19 @@ - * r0 = pointer to union vfp_state, r1 = fpexc - */ - ENTRY(rthal_vfp_save) -- VFPFSTMIA r0, r2 @ save the working registers -- VFPFMRX r2, FPSCR @ current status -- tst r1, #FPEXC_EX @ is there additional state to save? -- beq 1f -- VFPFMRX r3, FPINST @ FPINST (only if FPEXC.EX is set) -- tst r1, #FPEXC_FP2V @ is there an FPINST2 to read? -- beq 1f -- VFPFMRX r12, FPINST2 @ FPINST2 if needed (and present) -+ VFPFSTMIA r0, r2 @ save the working registers -+ VFPFMRX r2, FPSCR @ current status -+ tst r1, #FPEXC_EX @ is there additional state to save? -+ beq 1f -+ VFPFMRX r3, FPINST @ FPINST (only if FPEXC.EX is set) -+ tst r1, #FPEXC_FP2V @ is there an FPINST2 to read? -+ beq 1f -+ VFPFMRX r12, FPINST2 @ FPINST2 if needed (and present) - 1: -- stmia r0, {r1, r2, r3, r12} @ save FPEXC, FPSCR, FPINST, FPINST2 -- mov pc, lr -- -+ stmia r0, {r1, r2, r3, r12} @ save FPEXC, FPSCR, FPINST, FPINST2 -+ mov pc, lr -+ENDPROC(rthal_vfp_save) -+ - /* Copied from no_old_VFP_process in arch/arm/vfp/vfphw.S - * r0 = pointer to union vfp_state - * r1 = current cpu -@@ -102,20 +108,21 @@ ENTRY(rthal_vfp_save) - ENTRY(rthal_vfp_load) - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0) \ - || defined(CONFIG_VFP_3_2_BACKPORT)) && defined(CONFIG_SMP) -- str r1, [r0, #VFP_CPU] -+ str r1, [r0, #VFP_CPU] - #endif -- VFPFLDMIA r0, r2 @ reload the working registers while -+ VFPFLDMIA r0, r2 @ reload the working registers while - @ FPEXC is in a safe state -- ldmia r0, {r1, r2, r3, r12} @ load FPEXC, FPSCR, FPINST, FPINST2 -- tst r1, #FPEXC_EX @ is there additional state to restore? -- beq 1f -- VFPFMXR FPINST, r3 @ restore FPINST (only if FPEXC.EX is set) -- tst r1, #FPEXC_FP2V @ is there an FPINST2 to write? -- beq 1f -- VFPFMXR FPINST2, r12 @ FPINST2 if needed (and present) -+ ldmia r0, {r1, r2, r3, r12} @ load FPEXC, FPSCR, FPINST, FPINST2 -+ tst r1, #FPEXC_EX @ is there additional state to restore? -+ beq 1f -+ VFPFMXR FPINST, r3 @ restore FPINST (only if FPEXC.EX is set) -+ tst r1, #FPEXC_FP2V @ is there an FPINST2 to write? -+ beq 1f -+ VFPFMXR FPINST2, r12 @ FPINST2 if needed (and present) - 1: -- VFPFMXR FPSCR, r2 @ restore status -- mov pc, lr -+ VFPFMXR FPSCR, r2 @ restore status -+ mov pc, lr -+ENDPROC(rthal_vfp_load) - #endif - - /* -@@ -144,28 +151,37 @@ ENTRY(rthal_vfp_load) - * r0 = previous task_struct, r1 = previous thread_info, r2 = next thread_info - */ - ENTRY(rthal_thread_switch) -- add ip, r1, #TI_CPU_SAVE -- ldr r3, [r2, #TI_TP_VALUE] -- stmia ip!, {r4 - sl, fp, sp, lr} @ Store most regs on stack -+ add ip, r1, #TI_CPU_SAVE -+ ldr r3, [r2, #TI_TP_VALUE] -+ ARM( stmia ip!, {r4 - sl, fp, sp, lr} ) @ Store most regs on stack -+ THUMB( stmia ip!, {r4 - sl, fp} ) @ Store most regs on stack -+ THUMB( str sp, [ip], #4 ) -+ THUMB( str lr, [ip], #4 ) - #ifdef USE_DOMAINS -- ldr r6, [r2, #TI_CPU_DOMAIN] -+ ldr r6, [r2, #TI_CPU_DOMAIN] - #endif - -- clear_exclusive_monitor -- set_tls r3, r4, r5 -+ clear_exclusive_monitor -+ set_tls r3, r4, r5 - #ifdef USE_DOMAINS -- mcr p15, 0, r6, c3, c0, 0 @ Set domain register -+ mcr p15, 0, r6, c3, c0, 0 @ Set domain register - #endif -- fpu_switch r4 -- add r4, r2, #TI_CPU_SAVE -- ldmia r4, {r4 - sl, fp, sp, pc} @ Load all regs saved previously -+ fpu_switch r4 -+ ARM( add r4, r2, #TI_CPU_SAVE ) -+ ARM( ldmia r4, {r4 - sl, fp, sp, pc} ) @ Load all regs saved previously -+ THUMB( add ip, r2, #TI_CPU_SAVE ) -+ THUMB( ldmia ip!, {r4 - sl, fp} ) @ Load all regs saved previously -+ THUMB( ldr sp, [ip], #4 ) -+ THUMB( ldr pc, [ip] ) -+ENDPROC(rthal_thread_switch) - - /* - * r4 = xnarch_thread_trampoline - * r5 = xnarchtcb_t * - */ - ENTRY(rthal_thread_trampoline) -- mov r0, r5 -- mov pc, r4 -+ mov r0, r5 -+ mov pc, r4 -+ENDPROC(rthal_thread_trampoline) - - // vim: ts=4 et sw=4 sts=4 --- -1.7.2.5 - diff --git a/package/xenomai/xenomai.mk b/package/xenomai/xenomai.mk index f40cbdc48c..fbf20b5a55 100644 --- a/package/xenomai/xenomai.mk +++ b/package/xenomai/xenomai.mk @@ -7,7 +7,7 @@ XENOMAI_VERSION = $(call qstrip,$(BR2_PACKAGE_XENOMAI_VERSION)) ifeq ($(XENOMAI_VERSION),) -XENOMAI_VERSION = 2.6.1 +XENOMAI_VERSION = 2.6.2.1 endif XENOMAI_SITE = http://download.gna.org/xenomai/stable/ @@ -18,10 +18,6 @@ XENOMAI_LICENSE_FILES = debian/copyright include/COPYING src/skins/native/COPYIN XENOMAI_INSTALL_STAGING = YES -ifeq ($(BR2_PACKAGE_XENOMAI_SMP),y) -XENOMAI_CONF_OPT += --enable-smp -endif - XENOMAI_CONF_OPT += --includedir=/usr/include/xenomai/ ifeq ($(BR2_HAVE_DEVFILES),)