[Xenomai] OMAP L138

Peter Howard pjh at northern-ridge.com.au
Mon Apr 7 07:34:03 CEST 2014


On Wed, 2014-04-02 at 09:24 +0200, Gilles Chanteperdrix wrote:
> On 04/02/2014 04:59 AM, Peter Howard wrote:
> > Hi,
> > 
> > I'm interested in running xenomai on a TI-OMAP L138 board.  I found the
> > following thread in the archives:
> > 
> > http://www.xenomai.org/pipermail/xenomai/2010-January/018898.html
> > 
> > where someone was working on porting ipipe and xenomai to that board.
> > However, the thread ended with problems still unresolved, and the patch
> > in the thread (just the changes for ipipe) isn't in the ipipe
> > repository.
> > 
> > Does anyone know if this work was completed or just faded into the
> > ether?
> 
> We never merged a patch for this processor. And a lot of things changed
> since that time. If you are interested in porting the I-pipe patch to
> this processor, see:
> 
> http://www.xenomai.org/index.php/I-pipe-core:ArmPorting
> 

Contrary to what I said last week, I'm working on a patch off the head
of the ipipe repo.  I have built a kernel with an ipipe port and with
xenomai patched in.  However the latency results are bad right now:

root at arago:~# xeno latency -T 25
== Sampling period: 1000 us
== Test mode: periodic user-mode task
== All results in microseconds
warming up...
RTT|  00:00:01  (periodic user-mode task, 1000 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst
RTD|      3.541|      8.833|     60.749|       0|     0|      3.541|     60.749
RTD|      3.499|     13.583|     93.916|       0|     0|      3.499|     93.916
RTD|      3.666|     88.999|    109.708|       0|     0|      3.499|    109.708
RTD|      3.541|     14.958|     95.374|       0|     0|      3.499|    109.708
RTD|      3.541|      9.333|     77.583|       0|     0|      3.499|    109.708
RTD|      4.041|     88.416|    109.791|       0|     0|      3.499|    109.791
RTD|      3.499|      8.958|     72.791|       0|     0|      3.499|    109.791
RTD|      3.499|     26.041|    106.874|       0|     0|      3.499|    109.791
RTD|      3.874|     82.708|    107.916|       0|     0|      3.499|    109.791
RTD|      3.499|      9.083|     73.708|       0|     0|      3.499|    109.791
RTD|      3.333|      8.874|     62.458|       0|     0|      3.333|    109.791
RTD|      3.333|      8.749|     62.208|       0|     0|      3.333|    109.791 
RTD|      3.416|     12.708|     99.416|       0|     0|      3.333|    109.791 
RTD|      3.499|     14.249|    106.749|       0|     0|      3.333|    109.791 
RTD|      3.541|      9.083|     76.499|       0|     0|      3.333|    109.791 
RTD|      3.249|      8.791|     63.499|       0|     0|      3.249|    109.791 
RTD|      3.416|      8.999|     62.499|       0|     0|      3.249|    109.791 
RTD|      3.541|     26.166|    101.208|       0|     0|      3.249|    109.791 
RTD|      3.583|     13.624|     92.458|       0|     0|      3.249|    109.791 
RTD|      3.541|      8.916|     73.708|       0|     0|      3.249|    109.791 
RTD|      3.541|      8.999|     64.291|       0|     0|      3.249|    109.791 
RTT|  00:00:22  (periodic user-mode task, 1000 us period, priority 99)          
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst 
RTD|      3.499|      8.874|     61.374|       0|     0|      3.249|    109.791 
RTD|      3.499|     13.833|    100.749|       0|     0|      3.249|    109.791 
RTD|      3.541|     13.083|     99.249|       0|     0|      3.249|    109.791 
---|-----------|-----------|-----------|--------|------|------------------------
RTS|      3.249|     21.458|    109.791|       0|     0|    00:00:25/00:00:25   
root at arago:~# 



I have confirmed that CONFIG_CPU_FREQ, CONFIG_CPU_IDLE,
CONFIG_CC_STACKPROTECTOR, and CONFIG_KGDB are turned off.  There are no
obvious errors in the system log:

root at arago:~# dmesg | grep Xenomai                                              
I-pipe: head domain Xenomai registered.                                         
Xenomai: hal/arm started.                                                       
Xenomai: scheduling class idle registered.                                      
Xenomai: scheduling class rt registered.                                        
Xenomai: real-time nucleus v2.6.3 (Lies and Truths) loaded.                     
Xenomai: debug mode enabled.                                                    
Xenomai: starting native API services.                                          
Xenomai: starting POSIX services.                                               
Xenomai: starting RTDM services.                                                
root at arago:~# 


The one change I had to make in the xenomai patch was:

diff --git a/include/asm-arm/hal.h b/include/asm-arm/hal.h
index d7768e8..4ac0a8f 100644
--- a/include/asm-arm/hal.h
+++ b/include/asm-arm/hal.h
@@ -95,6 +95,9 @@
 #elif defined(CONFIG_PLAT_SPEAR)
 #define RTHAL_TIMER_DEVICE      "tmr0"
 #define RTHAL_CLOCK_DEVICE     "tmr1"
+#elif defined(CONFIG_ARCH_DAVINCI)
+#define RTHAL_TIMER_DEVICE     "gp timer"
+#define RTHAL_CLOCK_DEVICE     "gp timer"
 #else
 #error "Unsupported ARM machine"
 #endif /* CONFIG_ARCH_SA1100 */


Was that correct?  Any other suggestions?

-- 
Peter Howard <pjh at northern-ridge.com.au>






More information about the Xenomai mailing list