Hello Ingo and Thomas,

I have tried 2.6.19-rt14 patches on our PiMX1 ARM board.
I have been able to fix some build problems and run the kernel.
I have added support for high resolution time sources and
time events for i.MX platform.

As I have reported some week ago, there is required next
change to compile RT kernel for ARM (at least for <ARMv6).

Index: linux-2.6.19-rt/include/asm-arm/atomic.h
===================================================================
--- linux-2.6.19-rt.orig/include/asm-arm/atomic.h
+++ linux-2.6.19-rt/include/asm-arm/atomic.h
@@ -188,10 +188,10 @@ static inline unsigned long __cmpxchg(vo
        volatile unsigned long *p = ptr;
 
        if (size == 4) {
-               local_irq_save(flags);
+               raw_local_irq_save(flags);
                if ((prev = *p) == old)
                        *p = new;
-               local_irq_restore(flags);
+               raw_local_irq_restore(flags);
                return(prev);
        } else
                return wrong_size_cmpxchg(ptr);
===================================================================

Even with this patch there are some missing symbols during link stage:
  warp_check_clock_was_changed
  usecs_to_cycles

The next changes allowed me to build ARM kernel with included
high resolution timers for our board.

Index: linux-2.6.19-rt/kernel/hrtimer.c
===================================================================
--- linux-2.6.19-rt.orig/kernel/hrtimer.c
+++ linux-2.6.19-rt/kernel/hrtimer.c
@@ -33,6 +33,7 @@
 
 #include <linux/clockchips.h>
 #include <linux/cpu.h>
+#include <linux/irq.h>
 #include <linux/module.h>
 #include <linux/percpu.h>
 #include <linux/hrtimer.h>
Index: linux-2.6.19-rt/arch/arm/Kconfig
===================================================================
--- linux-2.6.19-rt.orig/arch/arm/Kconfig
+++ linux-2.6.19-rt/arch/arm/Kconfig
@@ -19,7 +19,11 @@ config ARM
 
 config GENERIC_TIME
        bool
-       default n
+       default y
+
+config GENERIC_CLOCKEVENTS
+       bool
+       default y
 
 config MMU
        bool
@@ -203,6 +207,7 @@ config ARCH_H720X
 
 config ARCH_IMX
        bool "IMX"
+       select GENERIC_TIME
        help
          Support for Motorola's i.MX family of processors (MX1, MXL).
 
@@ -489,6 +494,8 @@ config LOCAL_TIMERS
 
 source kernel/Kconfig.preempt
 
+source kernel/time/Kconfig
+
 config NO_IDLE_HZ
        bool "Dynamic tick timer"
        help
===================================================================

The kernel has been able to boot and mount NFS volume.
I have run cyclic test from it.

Cyclic test shows maximal latencies under 400 usec
for 200 MHz clock ARM920T MX1 processor on PiMX1 board
which is quite good for board, which has been build mainly
for low consumption with only 16-bit wide SDRAM.
But I have not tortured board too much during test yet.
There has been some Ethernet communication and dhrystone
test running in parallel.

Is it possible to include the first part of the patch
into RT patches to allow build for ARM.

Is it possible to provide right solution of Kbuild options
for ARM?

Can I send somewhere my i.MX high resolution time events
patch or should I wait for high resolution timers acceptance
and iclusion in vanilla?
i.MX time source patch is already included in vanilla
2.6.20-rc1 through Russell's patch queue.

I have yet another patch for Elan SC520 high resolution
time source, it usable even with vanilla kernel.
Where should be this patch sent to be included
in vanilla?

Thanks for nice work and best wishes

                                  Pavel

--
                Pavel Pisa
        e-mail: [EMAIL PROTECTED]
        www:    http://cmp.felk.cvut.cz/~pisa
        work:   http://www.pikron.com
-
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to