raiden00pl opened a new pull request, #20099:
URL: https://github.com/apache/nuttx/pull/20099
## Summary
- drivers/serial: sample xmit.head once per iteration in uart_xmitchars()
- drivers/serial: read the consumer index once in uart_recvchars()
taken from #20030
## Impact
required for SMP intel64 to pass LPT tests
## Testing
The producer is pinned to CPU1 while the 16550 TX interrupt runs on CPU0,
so every wrap of the 16-byte ring races uart_xmitchars(). The host then checks
that tx.bin is exactly the first 2000000 bytes of the repeated alphabet
"abcdefghijklmnopqrstuvwxyz".
Before (serial_io.c from parent commit):
217615369 bytes captured, 217540918 of them NUL; first mismatch at
offset 55952 ("...stuvwxyz" followed by an endless 0x00 flood).
After (this branch):
2000000 bytes captured, 0 NUL, stream byte-exact.
Only the TX fix is exercised. The RX batch path in uart_recvchars() needs a
driver with recvbuf which is not supported for qemu-intel64 serial port.
CI pass for intel64:
https://github.com/apache/nuttx/actions/runs/34236734404/job/102183306099?pr=20030
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]