You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit hooks up the QEMU UART RX break event to the `ot_uart` so
that the break receive triggers an interrupt. This completely ignores
the configured `CTRL.RXBLVL` as we have no notion for "how long" break
is being held for. Breaks can be sent to a given CharDev via the QEMU
monitor.
With the goal of mocking the UART oversampling `VAL` register enough
that it can support differentiation between break conditions and not
(essentially treating the UART RX like a GPIO strap), we implement
logic for outputting either 0x0 or 0xFFFF depending on whether we are
"in a break" or not. That is, the `VAL` register will report 16
samples equivalent to the last UART bit received (which is 0 when in
a break, and 1 for a stop bit on any valid transmission). We make the
assumption here that break is being "held", rather than just being a
transient event. This logic is enabled through an `oversample-break`
property to make it an opt-in behaviour.
To better support flows that use break as a GPIO signal that can be
continually asserted, add an additional property that treats incoming
break events as a "toggle", such that one break event will cause the
UART to enter break until another event tells it to exit break. This is
again an opt-in property intended for testing edge-case software that
uses UART Break in this way.
Signed-off-by: Alex Jones <alex.jones@lowrisc.org>
0 commit comments