Occasional fail to initiate resume by incoming call, easy workaround proposed
mwester at dls.net
Fri Feb 13 05:21:37 CET 2009
Joerg Reisenweber wrote:
> Am Mi 11. Februar 2009 schrieb Dieter Spaar:
>> The following has been changed compared to "moko10":
>> * GPIO 1 is no longer set erroneously to high after reset
>> * Hardware assisted CTS handshake is enabled to avoid sending characters
>> from TX fifo after CTS goes high
>> I can confirm that without hardware assisted CTS, the TX fifo still
>> sends characters after CTS got high. After enabling the hardware
>> assisted CTS, this seems to be fixed.
>> Could you please put the firmware at an appropriate place so that
>> others can test it and see if it fixes the problem ? Thank you.
>> Best regards,
> please find moko11-beta1 for download at
> the tar.gz is an archive of the other two files basically, for your
THANK YOU!! to the Openmoko team of Joerg, Werner, and Dieter for
getting this longstanding problem laid to rest. I've tested, and am
convinced the GSM overrun problem is fixed, as is the GSM
Hardware was a GTA01 (16 character FIFO), with Moko-8 firmware in the
GSM. Distro was a custom version of Qt Extended, but that makes no
difference, really. The kernel used the "nspy" patches for instrumentation.
Because the problem is difficult to reproduce (we've done a lot of
things to dodge and duck it in both kernel and userspace), I added a 1
millisecond delay at the start of the serial port IRQ handler. At 115200
baud, that's over 11 characters of delay.
The result is exactly what we were looking for: a random smattering of
buffer overruns being reported; enough to really disrupt communications
with the GSM mux software, but not so much that everything stops working
Flashing the moko11-beta1 firmware, and rebooting resulted in noticeable
changes. First off, the absence of the GSM interrupt message being
logged when the Calypso was powered up is notable. Secondly, absolutely
no overruns. Multiple SMS's; suspend/resume cycles, and other
SIM-related activity, all done with the 1ms built-in delay in the
interrupt handler, resulted in absolutely no overruns at all.
Fixed, at last! Now, onwards to other things (you have no idea how sick
I am of serial drivers ;-)
More information about the openmoko-kernel