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(