Hello,I use linux kernel 2.6.33 and xenomai 2.5.3 to build my rt-embedded
system based on S3c2440,but i found the ipipe can't handle interrupt from the
usb host controller well .I tried adeos-ipipe-2.6.33-arm-1.16-01.patch which
xenomai contains and adeos-ipipe-2.6.33-arm-1.18-03.patch which is the newest
patch for kernel 2.6.33, but both didn't work.
I traced the code and found that the ipipe can handle the first few
interrupts from ohci well but from then on the interrupts start to destroy the
system as ohci interrputs the system over and over again .The system didn't
crash but was busy handling the interrupts and couldn't respond to anything
else.
I found that the interrupts from ohci can't be handled because the root
domain is always stalled as it failed the test below all the time :
void __ipipe_walk_pipeline(struct list_head *pos){
......
if (test_bit(IPIPE_STALL_FLAG, &np->status))
break; /* Stalled stage -- do not go further. */
......
}
I also found that the interrupt source on ohci was not cleared as I found
that there was no use clearing the USBH bit on INTPND and SRCPND regs .
The ipipe handled level interrupt with ack and mask but handled edge
interrupt with only ack , so how did ipipe work when it was handling an edge
interrupt and another edge interrupt came at the same time ? Was it the reason
of ohci kept interrupting S3C2440 over and over again?
Thank you for reading this message , I really appreciate your answer .
GongChen
_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai