Hi everyone,
I'm taking over the original thread from Patrick concerning the port of
Xenomai on Xscale with Linux 2.6.20. Briefly summarized, the boot
process actually freezes after a while right after the nucleus has been
started.
I've investigated the issue over the last hours, and I came up with the
following conclusion: it seems that the problem is due to a endless loop
in do_gettimeofday in arch/arm/kernel/time.c. Here is the code:
"...
do {
seq = read_seqbegin_irqsave(&xtime_lock, flags);
usec = system_timer->offset();
sec = xtime.tv_sec;
usec += xtime.tv_nsec / 1000;
} while (read_seqretry_irqrestore(&xtime_lock, seq, flags));
..."
If I remove the do { } while loop with the call to
read_seqbegin_irqsave(), then the boot process is going ahead (I got a
suspicious error like "I-pipe: Detected illicit call from domain
'Xenomai' " but it might well be normal with such a modification.
I checked with the code from a 2.6.15 kernel, and it is basically the
same structure.
Any idea about the cause of this problem?
I checked the timer IRQs and other pipeline activity, and everything
seems to be OK. By the way, if I disable the nucleus, Linux is working
properly (timer not being stolen by I-pipe).
Thanks in advance for any help.
Cheers
Daniel
_______________________________________________
Xenomai-core mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-core