[Xenomai-git] Gilles Chanteperdrix : arm: upgrade I-pipe support to 2.6.33-1.18-01
Module: xenomai-head Branch: master Commit: 8b998eb91c9954c82b8455645f884666446746a2 URL: http://git.xenomai.org/?p=xenomai-head.git;a=commit;h=8b998eb91c9954c82b8455645f884666446746a2 Author: Gilles Chanteperdrix Date: Sun Jan 2 21:14:24 2011 +0100 arm: upgrade I-pipe support to 2.6.33-1.18-01 --- patch => adeos-ipipe-2.6.33-arm-1.18-01.patch} | 94 ++-- 1 files changed, 47 insertions(+), 47 deletions(-) diff --git a/ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-00.patch b/ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-01.patch similarity index 99% rename from ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-00.patch rename to ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-01.patch index 7f8348f..9bcc7ad 100644 --- a/ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-00.patch +++ b/ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-01.patch @@ -644,7 +644,7 @@ index 000..cfdf14a +#endif /* __ASM_ARM_FCSE_H */ diff --git a/arch/arm/include/asm/ipipe.h b/arch/arm/include/asm/ipipe.h new file mode 100644 -index 000..bf6c4e5 +index 000..e802d72 --- /dev/null +++ b/arch/arm/include/asm/ipipe.h @@ -0,0 +1,370 @@ @@ -680,10 +680,10 @@ index 000..bf6c4e5 +#include +#include + -+#define IPIPE_ARCH_STRING "1.18-00" ++#define IPIPE_ARCH_STRING "1.18-01" +#define IPIPE_MAJOR_NUMBER1 +#define IPIPE_MINOR_NUMBER18 -+#define IPIPE_PATCH_NUMBER0 ++#define IPIPE_PATCH_NUMBER1 + +#ifdef CONFIG_SMP +#define ipipe_processor_id() hard_smp_processor_id() @@ -3840,10 +3840,10 @@ index 000..a9de4f9 +EXPORT_SYMBOL(__ipipe_tsc_get); diff --git a/arch/arm/kernel/ipipe_tsc_asm.S b/arch/arm/kernel/ipipe_tsc_asm.S new file mode 100644 -index 000..81e1590 +index 000..7dfec60 --- /dev/null +++ b/arch/arm/kernel/ipipe_tsc_asm.S -@@ -0,0 +1,167 @@ +@@ -0,0 +1,165 @@ +#include +#include +#include @@ -3903,7 +3903,7 @@ index 000..81e1590 + + .align 5 +.LCfrcd32_last_tsc: -+ .rep3 ++ .rep7 + .word 0 + .endr +.LCfrcd32_cntr_addr: @@ -3942,16 +3942,15 @@ index 000..81e1590 +__ipipe_freerunning_16: + ldr r0, .LCfr16_cntr_addr +/* User-space entry-point: r0 is the hardware counter virtual address */ -+ mov ip, r0 +1:myldrd r2, r3, r1, .LCfr16_last_tsc -+ ldr r0, [ip] ++ ldr ip, [r0] +#ifndef CONFIG_CPU_ENDIAN_BE8 +/* Little endian */ + ldr r1, .LCfr16_last_tsc + cmp r1, r2 + bne 1b + mov r1, r2, lsr #16 -+ orr r0, r0, r1, lsl #16 ++ orr r0, ip, r1, lsl #16 + cmp r2, r0 + addhis r0, r0, #0x1 + adc r1, r3, #0 @@ -3960,7 +3959,7 @@ index 000..81e1590 + cmp r1, r3 + bne 1b + mov r1, r3, lsr #16 -+ orr r1, r0, r1, lsl #16 ++ orr r1, ip, r1, lsl #16 + cmp r3, r0 + addhis r1, r1, #0x1 + adc r0, r2, #0 @@ -3984,30 +3983,29 @@ index 000..81e1590 +__ipipe_decrementer_16: + ldr r0, .LCdec16_cntr_addr +/* User-space entry-point: r0 is the hardware counter virtual address */ -+ mov ip, r0 +#ifndef CONFIG_CPU_ENDIAN_BE8 +/* Little endian */ +1:ldr r1, .LCdec16_last_tsc -+ ldr r0, [ip] ++ ldr ip, [r0] + ldr r2, .LCdec16_last_cnt -+ subsr0, r2, r0 -+ addcs r0, r0, #0x1 ++ subsip, r2, ip ++ addcs ip, ip, #0x1 + myldrd r2, r3, r3, .LCdec16_last_tsc + cmp r1, r2 + bne 1b -+ addsr0, r0, r2 ++ addsr0, ip, r2 + adc r1, r3, #0 +#else /* Big endian */ +/* Little endian */ +1:ldr r1, .LCdec16_last_tsc + 4 -+ ldr r0, [ip] ++ ldr ip, [r0] + ldr r2, .Ldec16_Clast_cnt -+ subsr0, r2, r0 -+ addcs r0, r0, #0x1 ++ subsip, r2, ip ++ addcs ip, ip, #0x1 + myldrd r2, r3, r3, .LCdec16_last_tsc + cmp r1, r3 + bne 1b -+ addsr1, r0, r3 ++ addsr1, ip, r3 + adc r0, r2, #0 +#endif /* Big endian */ + usr_ret lr @@ -4090,7 +4088,7 @@ index a2ea385..487ab4c 100644 return 0; } diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c -index 57162af..952fd85 100644 +index 57162af..1bb4658 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c @@ -34,6 +34,7 @@ @@ -4341,21 +4339,17 @@ index 57162af..952fd85 100644 } else local_flush_tlb_range(vma, start, end); } -@@ -687,3 +797,14 @@ void flush_tlb_kernel_range(unsigned long start, unsigned long end) +@@ -687,3 +797,10 @@ void flush_tlb_kernel_range(unsigned long start, unsigned long end) } else local_flush_tlb_kernel_range(start, end); } + -+#ifdef CONFIG_SMP -+ +void arch_trigger_all_cpu_backtrace(void) +{ + cpumask_t mask = cpu_online_map; + cpu_clear(ipipe_processor_id(
[Xenomai-git] Gilles Chanteperdrix : arm: upgrade I-pipe support to 2.6.33-1.18-01
Module: xenomai-head Branch: master Commit: 6620b03af2b0f120a8dea1a28bf1d793aaf2434f URL: http://git.xenomai.org/?p=xenomai-head.git;a=commit;h=6620b03af2b0f120a8dea1a28bf1d793aaf2434f Author: Gilles Chanteperdrix Date: Sun Jan 2 21:14:24 2011 +0100 arm: upgrade I-pipe support to 2.6.33-1.18-01 --- patch => adeos-ipipe-2.6.33-arm-1.18-01.patch} | 94 ++-- 1 files changed, 47 insertions(+), 47 deletions(-) diff --git a/ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-00.patch b/ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-01.patch similarity index 99% rename from ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-00.patch rename to ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-01.patch index 7f8348f..9bcc7ad 100644 --- a/ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-00.patch +++ b/ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-01.patch @@ -644,7 +644,7 @@ index 000..cfdf14a +#endif /* __ASM_ARM_FCSE_H */ diff --git a/arch/arm/include/asm/ipipe.h b/arch/arm/include/asm/ipipe.h new file mode 100644 -index 000..bf6c4e5 +index 000..e802d72 --- /dev/null +++ b/arch/arm/include/asm/ipipe.h @@ -0,0 +1,370 @@ @@ -680,10 +680,10 @@ index 000..bf6c4e5 +#include +#include + -+#define IPIPE_ARCH_STRING "1.18-00" ++#define IPIPE_ARCH_STRING "1.18-01" +#define IPIPE_MAJOR_NUMBER1 +#define IPIPE_MINOR_NUMBER18 -+#define IPIPE_PATCH_NUMBER0 ++#define IPIPE_PATCH_NUMBER1 + +#ifdef CONFIG_SMP +#define ipipe_processor_id() hard_smp_processor_id() @@ -3840,10 +3840,10 @@ index 000..a9de4f9 +EXPORT_SYMBOL(__ipipe_tsc_get); diff --git a/arch/arm/kernel/ipipe_tsc_asm.S b/arch/arm/kernel/ipipe_tsc_asm.S new file mode 100644 -index 000..81e1590 +index 000..7dfec60 --- /dev/null +++ b/arch/arm/kernel/ipipe_tsc_asm.S -@@ -0,0 +1,167 @@ +@@ -0,0 +1,165 @@ +#include +#include +#include @@ -3903,7 +3903,7 @@ index 000..81e1590 + + .align 5 +.LCfrcd32_last_tsc: -+ .rep3 ++ .rep7 + .word 0 + .endr +.LCfrcd32_cntr_addr: @@ -3942,16 +3942,15 @@ index 000..81e1590 +__ipipe_freerunning_16: + ldr r0, .LCfr16_cntr_addr +/* User-space entry-point: r0 is the hardware counter virtual address */ -+ mov ip, r0 +1:myldrd r2, r3, r1, .LCfr16_last_tsc -+ ldr r0, [ip] ++ ldr ip, [r0] +#ifndef CONFIG_CPU_ENDIAN_BE8 +/* Little endian */ + ldr r1, .LCfr16_last_tsc + cmp r1, r2 + bne 1b + mov r1, r2, lsr #16 -+ orr r0, r0, r1, lsl #16 ++ orr r0, ip, r1, lsl #16 + cmp r2, r0 + addhis r0, r0, #0x1 + adc r1, r3, #0 @@ -3960,7 +3959,7 @@ index 000..81e1590 + cmp r1, r3 + bne 1b + mov r1, r3, lsr #16 -+ orr r1, r0, r1, lsl #16 ++ orr r1, ip, r1, lsl #16 + cmp r3, r0 + addhis r1, r1, #0x1 + adc r0, r2, #0 @@ -3984,30 +3983,29 @@ index 000..81e1590 +__ipipe_decrementer_16: + ldr r0, .LCdec16_cntr_addr +/* User-space entry-point: r0 is the hardware counter virtual address */ -+ mov ip, r0 +#ifndef CONFIG_CPU_ENDIAN_BE8 +/* Little endian */ +1:ldr r1, .LCdec16_last_tsc -+ ldr r0, [ip] ++ ldr ip, [r0] + ldr r2, .LCdec16_last_cnt -+ subsr0, r2, r0 -+ addcs r0, r0, #0x1 ++ subsip, r2, ip ++ addcs ip, ip, #0x1 + myldrd r2, r3, r3, .LCdec16_last_tsc + cmp r1, r2 + bne 1b -+ addsr0, r0, r2 ++ addsr0, ip, r2 + adc r1, r3, #0 +#else /* Big endian */ +/* Little endian */ +1:ldr r1, .LCdec16_last_tsc + 4 -+ ldr r0, [ip] ++ ldr ip, [r0] + ldr r2, .Ldec16_Clast_cnt -+ subsr0, r2, r0 -+ addcs r0, r0, #0x1 ++ subsip, r2, ip ++ addcs ip, ip, #0x1 + myldrd r2, r3, r3, .LCdec16_last_tsc + cmp r1, r3 + bne 1b -+ addsr1, r0, r3 ++ addsr1, ip, r3 + adc r0, r2, #0 +#endif /* Big endian */ + usr_ret lr @@ -4090,7 +4088,7 @@ index a2ea385..487ab4c 100644 return 0; } diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c -index 57162af..952fd85 100644 +index 57162af..1bb4658 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c @@ -34,6 +34,7 @@ @@ -4341,21 +4339,17 @@ index 57162af..952fd85 100644 } else local_flush_tlb_range(vma, start, end); } -@@ -687,3 +797,14 @@ void flush_tlb_kernel_range(unsigned long start, unsigned long end) +@@ -687,3 +797,10 @@ void flush_tlb_kernel_range(unsigned long start, unsigned long end) } else local_flush_tlb_kernel_range(start, end); } + -+#ifdef CONFIG_SMP -+ +void arch_trigger_all_cpu_backtrace(void) +{ + cpumask_t mask = cpu_online_map; + cpu_clear(ipipe_processor_id(
[Xenomai-git] Gilles Chanteperdrix : arm: upgrade I-pipe support to 2.6.33-1.18-01
Module: xenomai-2.5 Branch: master Commit: 8b998eb91c9954c82b8455645f884666446746a2 URL: http://git.xenomai.org/?p=xenomai-2.5.git;a=commit;h=8b998eb91c9954c82b8455645f884666446746a2 Author: Gilles Chanteperdrix Date: Sun Jan 2 21:14:24 2011 +0100 arm: upgrade I-pipe support to 2.6.33-1.18-01 --- patch => adeos-ipipe-2.6.33-arm-1.18-01.patch} | 94 ++-- 1 files changed, 47 insertions(+), 47 deletions(-) diff --git a/ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-00.patch b/ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-01.patch similarity index 99% rename from ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-00.patch rename to ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-01.patch index 7f8348f..9bcc7ad 100644 --- a/ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-00.patch +++ b/ksrc/arch/arm/patches/adeos-ipipe-2.6.33-arm-1.18-01.patch @@ -644,7 +644,7 @@ index 000..cfdf14a +#endif /* __ASM_ARM_FCSE_H */ diff --git a/arch/arm/include/asm/ipipe.h b/arch/arm/include/asm/ipipe.h new file mode 100644 -index 000..bf6c4e5 +index 000..e802d72 --- /dev/null +++ b/arch/arm/include/asm/ipipe.h @@ -0,0 +1,370 @@ @@ -680,10 +680,10 @@ index 000..bf6c4e5 +#include +#include + -+#define IPIPE_ARCH_STRING "1.18-00" ++#define IPIPE_ARCH_STRING "1.18-01" +#define IPIPE_MAJOR_NUMBER1 +#define IPIPE_MINOR_NUMBER18 -+#define IPIPE_PATCH_NUMBER0 ++#define IPIPE_PATCH_NUMBER1 + +#ifdef CONFIG_SMP +#define ipipe_processor_id() hard_smp_processor_id() @@ -3840,10 +3840,10 @@ index 000..a9de4f9 +EXPORT_SYMBOL(__ipipe_tsc_get); diff --git a/arch/arm/kernel/ipipe_tsc_asm.S b/arch/arm/kernel/ipipe_tsc_asm.S new file mode 100644 -index 000..81e1590 +index 000..7dfec60 --- /dev/null +++ b/arch/arm/kernel/ipipe_tsc_asm.S -@@ -0,0 +1,167 @@ +@@ -0,0 +1,165 @@ +#include +#include +#include @@ -3903,7 +3903,7 @@ index 000..81e1590 + + .align 5 +.LCfrcd32_last_tsc: -+ .rep3 ++ .rep7 + .word 0 + .endr +.LCfrcd32_cntr_addr: @@ -3942,16 +3942,15 @@ index 000..81e1590 +__ipipe_freerunning_16: + ldr r0, .LCfr16_cntr_addr +/* User-space entry-point: r0 is the hardware counter virtual address */ -+ mov ip, r0 +1:myldrd r2, r3, r1, .LCfr16_last_tsc -+ ldr r0, [ip] ++ ldr ip, [r0] +#ifndef CONFIG_CPU_ENDIAN_BE8 +/* Little endian */ + ldr r1, .LCfr16_last_tsc + cmp r1, r2 + bne 1b + mov r1, r2, lsr #16 -+ orr r0, r0, r1, lsl #16 ++ orr r0, ip, r1, lsl #16 + cmp r2, r0 + addhis r0, r0, #0x1 + adc r1, r3, #0 @@ -3960,7 +3959,7 @@ index 000..81e1590 + cmp r1, r3 + bne 1b + mov r1, r3, lsr #16 -+ orr r1, r0, r1, lsl #16 ++ orr r1, ip, r1, lsl #16 + cmp r3, r0 + addhis r1, r1, #0x1 + adc r0, r2, #0 @@ -3984,30 +3983,29 @@ index 000..81e1590 +__ipipe_decrementer_16: + ldr r0, .LCdec16_cntr_addr +/* User-space entry-point: r0 is the hardware counter virtual address */ -+ mov ip, r0 +#ifndef CONFIG_CPU_ENDIAN_BE8 +/* Little endian */ +1:ldr r1, .LCdec16_last_tsc -+ ldr r0, [ip] ++ ldr ip, [r0] + ldr r2, .LCdec16_last_cnt -+ subsr0, r2, r0 -+ addcs r0, r0, #0x1 ++ subsip, r2, ip ++ addcs ip, ip, #0x1 + myldrd r2, r3, r3, .LCdec16_last_tsc + cmp r1, r2 + bne 1b -+ addsr0, r0, r2 ++ addsr0, ip, r2 + adc r1, r3, #0 +#else /* Big endian */ +/* Little endian */ +1:ldr r1, .LCdec16_last_tsc + 4 -+ ldr r0, [ip] ++ ldr ip, [r0] + ldr r2, .Ldec16_Clast_cnt -+ subsr0, r2, r0 -+ addcs r0, r0, #0x1 ++ subsip, r2, ip ++ addcs ip, ip, #0x1 + myldrd r2, r3, r3, .LCdec16_last_tsc + cmp r1, r3 + bne 1b -+ addsr1, r0, r3 ++ addsr1, ip, r3 + adc r0, r2, #0 +#endif /* Big endian */ + usr_ret lr @@ -4090,7 +4088,7 @@ index a2ea385..487ab4c 100644 return 0; } diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c -index 57162af..952fd85 100644 +index 57162af..1bb4658 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c @@ -34,6 +34,7 @@ @@ -4341,21 +4339,17 @@ index 57162af..952fd85 100644 } else local_flush_tlb_range(vma, start, end); } -@@ -687,3 +797,14 @@ void flush_tlb_kernel_range(unsigned long start, unsigned long end) +@@ -687,3 +797,10 @@ void flush_tlb_kernel_range(unsigned long start, unsigned long end) } else local_flush_tlb_kernel_range(start, end); } + -+#ifdef CONFIG_SMP -+ +void arch_trigger_all_cpu_backtrace(void) +{ + cpumask_t mask = cpu_online_map; + cpu_clear(ipipe_processor_id(),