I have built a 2.6.23-rc7 kernel (from Denx git) with Xenomai 2.4-rc3. Architecture is powerpc, processor is a 405GP.

I had to make some additions to arch/powerpc/kernel/head_40x.S, and I can submit a patch if someone tells me where to post it.

However, while the kernel boots and runs, the xenomai user apps do not work correctly. Specifically, when running cyclictest, I get the following:

   # ./cyclictest
   0.00 0.00 0.00 1/18 668

   T: 0 (  668) P:99 I:   ------------[ cut here ]------------     0
   Avg:       0 Max:-1000000
    1000 C:       5kernel BUG at
    Min:      24 AcOops: Exception in kernel mode, sig: 5 [#1]
   Modules linked in:
   NIP: c0045dd0 LR: c0015750 CTR: c00121fc
   REGS: c0dbde00 TRAP: 0700   Not tainted  (2.6.23-rc7)
   MSR: 00021030 <ME,IR,DR>  CR: 22000422  XER: 20000000
   TASK = c0fe7420[668] 'cyclictest' THREAD: c0dbc000
   GPR00: 00004900 c0dbdeb0 c0fe7420 00000000 003f0000 c00115dc
   00000000 00000000
   GPR08: 00000000 000048ff c0296090 00000001 00010000 1001c23c
   00ff9900 00000001
   GPR16: 7fbabcb0 10015090 10015068 00000000 0ff81940 00000000
   0000029a 0ff815d0
   GPR24: c02a2fcc 00000280 00000000 c030c200 0000001f 003f0000
   00000010 c028e3bc
   NIP [c0045dd0] __ipipe_restore_root+0x1c/0x50
   LR [c0015750] uic_mask_irq+0x84/0x98
   Call Trace:
   [c0dbdeb0] [c0054cdc] hisyscall_event+0x1fc/0x310 (unreliable)
   [c0dbded0] [c00439fc] __ipipe_ack_level_irq+0x50/0x78
   [c0dbdee0] [c0007b2c] __ipipe_ack_irq+0x28/0x3c
   [c0dbdef0] [c0007e68] __ipipe_handle_irq+0x12c/0x148
   [c0dbdf20] [c00080f8] __ipipe_grab_irq+0x3c/0xc0
   [c0dbdf40] [c000e338] __ipipe_ret_from_except+0x0/0xc
   Instruction dump:
   0.00 0.00 0.00 2/18 66Xenomai: POSIX: destroyed thread c0f803203d20c02c
   8          004a78 3120ffff 7d690110 <0f0b0000> 2f830000 3d60c029
   t:      39 Avg:      29 Max:      39
   T: 0 (  668) P:99 I:    1000 C:       8 Min:      24 Act:      24
   Avg:      29 Max:      39
   Trace/breakpoint trap

The bug is coming from ipipe/core.c:314, which is the BUG_ON here:

   void __ipipe_restore_root(unsigned long x)

       if (x)

How do I debug this? I have done a little kernel hacking, but I am a noob when it comes to Xenomai...


Xenomai-core mailing list

Reply via email to