soc/uart: add shared UARTBone mux - #2506
Open
enjoy-digital wants to merge 1 commit into
Open
Conversation
Add a shared serial PHY mux for SoCs that enable UARTBone together with the regular UART. When UARTBone and the serial/crossover UART are both selected, SoCCore now uses the mux automatically and the selector resets to UARTBone mode. The UART uartbone CSR selects whether the serial pins are connected to UARTBone or directly to the CPU UART. add_uartbone() can use the mux virtual PHY, and the BIOS uartbone command switches the shared serial pins back to UARTBone from the regular console. This addresses the UARTBone/normal UART sharing use-case from #1959 and is based on the original mux idea proposed by Joshua Wise (@jwise). Add tests for mux routing, validation, automatic SoC integration, and the regular UART escape path.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This adds a shared serial PHY mux for SoCs that enable UARTBone together with the regular UART.
When UARTBone and the serial/crossover UART are both selected, SoCCore now uses the mux automatically and the selector resets to UARTBone mode. The UART
uartboneCSR selects whether the shared serial pins are connected to UARTBone or directly to the CPU UART, and the BIOSuartbonecommand switches the pins back to UARTBone from the regular UART console.This addresses the UARTBone/normal UART sharing use-case from #1959 and is based on the original mux idea proposed by Joshua Wise (@jwise).
Tests:
python3 -m py_compile litex/soc/cores/uart.py litex/soc/integration/soc.py test/cores/test_uart.py test/soc/test_soc.pypytest -q test/cores/test_uart.py test/soc/test_soc.py test/software/test_bios_console.pygcccompile-check forcmd_bios.cwith UARTBone CSR stubs