Ev3dev: Disabling console=ttyS1,115200 kernel boot parameter causes FIQ (used by sound and input port I2C) to not work

Created on 18 Mar 2014  路  4Comments  路  Source: ev3dev/ev3dev

This is a really strange bug that has me scratching my head and google turns up nothing. It probably isn't high priority that we try to fix it since it can be worked around, but I want to make sure people know about it.

I have been playing around with boot parameters. I wanted to turn off kernel messages to serial port ttyS1 because this is the UART on input port 1. If kernel messages are being sent to this port, it will interfere with UART sensors that are connected to it. The obvious thing to do is to change the kernel parameter to use a virtual console instead of the serial console. However when you do this, fast interrupts (FIQs) are no longer "fast". What I mean by this is that the interrupt still take place, but it does not operate as it should (see link). Instead of the very high rate of interrupts (on the order of 10kHz), it can take up to 250 msec between interrupts. As a result, I2C communications are way too slow and don't work. Sound also takes way longer than it should to playback and the audio is unrecognizable (beep still works though because it does not use FIQ).

bug

Most helpful comment

It only took me 2.5 years, but I finally figured this out. See commit message for details.

All 4 comments

This is no longer a problem in kernel v4.4.y

Apparently this is still a problem.

It only took me 2.5 years, but I finally figured this out. See commit message for details.

Fix released in 4.4.19-15-ev3dev-ev3.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

magicalpear picture magicalpear  路  7Comments

LEXUGE picture LEXUGE  路  6Comments

mrgolfr picture mrgolfr  路  8Comments

almsv picture almsv  路  3Comments

lpinfinity picture lpinfinity  路  8Comments