summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/i386/include/rtems/score/cpu.h
diff options
context:
space:
mode:
authorAdrien Chardon <adrien@reflexaerospace.com>2024-01-24 18:01:52 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2024-02-01 07:54:57 +0100
commitb1fdf753387189afe720d3fa1ac13af5fb9943c2 (patch)
tree719afc329cf4993febd5f7fb8dff16ec0b2b89c8 /cpukit/score/cpu/i386/include/rtems/score/cpu.h
parentcpukit/libblock: Ignore sync status prior to purge (diff)
downloadrtems-b1fdf753387189afe720d3fa1ac13af5fb9943c2.tar.bz2
bsp/tms570: Fix console receive interrupts
`tms570_sci_interrupt_handler()` is called when an RX interrupt fires. It checks in the register `FLR`, the `RXRDY` bit (Receiver ready flag - indicate that the SCIRD contains new data). If it is set, it calls `tms570_sci_read_received_chars()`. `tms570_sci_read_received_chars()` checks the register `RD` against 0. If it is non zero, it returns 1 to indicate that one byte was read. In the old behavior, if it is zero, the function returns 0 to indicate that no data was read. The new behavior is to not silently drop 0x00 bytes. Ignoring 0x00 bytes is fine when working with printable text (which, I assume, is how this driver was tested), but as soon as the UART is used in non canonical (raw) mode, with potentially 0x00 bytes, these bytes will be silently dropped, causing issues in the data/protocol layer above. Update #4982.
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions