laforge has submitted this change. (
https://gerrit.osmocom.org/c/simtrace2/+/30176 )
Change subject: firmware/sniffer: Log parity errors, just like overruns and framing
errors
......................................................................
firmware/sniffer: Log parity errors, just like overruns and framing errors
Reading of code + datasheet showed that we did enable parity checking
but never actually checked if the USART has the PARE bit in CSR set.
Let's change that. Plus also avoid possible race conditions due to
multiple status resets via US_CR_RSTSTA. Let's only reset that once
per interrupt handler.
TODO: actually do something useful at that point. We currently don't
report those to the host, nor do we attempt to recover in any way. The
data sheet also doesn't tell us what it actually does in such
situations; it appears the character is *not* returned from the USART,
so we're missing one byte in the stream at that point.
Change-Id: I5f012d86c61a2377d355396e7b95d078952bee7c
Related: OS#5464
---
M firmware/libcommon/source/sniffer.c
1 file changed, 7 insertions(+), 7 deletions(-)
Approvals:
laforge: Looks good to me, approved
Hoernchen: Looks good to me, but someone else must approve
Jenkins Builder: Verified
diff --git a/firmware/libcommon/source/sniffer.c b/firmware/libcommon/source/sniffer.c
index 86dfd3a..13ef506 100644
--- a/firmware/libcommon/source/sniffer.c
+++ b/firmware/libcommon/source/sniffer.c
@@ -800,14 +800,14 @@
/* Read channel status register */
uint32_t csr = sniff_usart.base->US_CSR;
/* Verify if there was an error */
- if (csr & US_CSR_OVRE) {
- TRACE_WARNING("USART overrun error\n\r");
+ if (csr & US_CSR_OVRE)
+ TRACE_ERROR("USART overrun error\n\r");
+ if (csr & US_CSR_FRAME)
+ TRACE_ERROR("USART framing error\n\r");
+ if (csr & US_CSR_PARE)
+ TRACE_ERROR("USART parity error\n\r");
+ if (csr & (US_CSR_OVRE|US_CSR_FRAME|US_CSR_PARE))
sniff_usart.base->US_CR |= US_CR_RSTSTA;
- }
- if (csr & US_CSR_FRAME) {
- TRACE_WARNING("USART framing error\n\r");
- sniff_usart.base->US_CR |= US_CR_RSTSTA;
- }
/* Verify if character has been received */
if (csr & US_CSR_RXRDY) {
--
To view, visit
https://gerrit.osmocom.org/c/simtrace2/+/30176
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: simtrace2
Gerrit-Branch: master
Gerrit-Change-Id: I5f012d86c61a2377d355396e7b95d078952bee7c
Gerrit-Change-Number: 30176
Gerrit-PatchSet: 2
Gerrit-Owner: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: Hoernchen <ewild(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: tsaitgaist <kredon(a)sysmocom.de>
Gerrit-MessageType: merged