-
Notifications
You must be signed in to change notification settings - Fork 529
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Regression on JTAG UART with removal of jtag_atlantic for Altera boards #1477
Comments
Hi @tomaz-suller, jtag_atlantic/nios2-terminal support has been removed in favor of a common JTAG protocol for all vendors/boards (through OpenOCD): On DE0Nano, this can be tested with:
This should also work on the DE10-Nano. |
I've just tried it out, and it doesn't work still, possibly because the OpenOCD configuration would be different for each development boards? (Sorry for my ignorance, I've never used OpenOCD before.) After executing litex_term jtag --jtag-config openocd_max10_blaster2.cfg since my board has a USB Blaster II (and since using
followed by a bunch of binary data which the terminal can't decode. A sample of that would be
|
Even when setting the correct device ID in the TAP declaration, I still only get binary garbage as terminal output, and I can't type in anything. I think the issue might have to do with having two devices in the JTAG chain (the ARM HPS and the FPGA). |
This is indeed probably the issue. We would need to add support for this use-case. |
I'm closing this issue and opening a different one on |
The removal of
jtag_atlantic
seems to have been premature, given neithernios2-terminal
notlitex_term
are able to connect to the JTAG UART synthesised by passing--uart-name jtag_uart
when building a target. A simple solution would be to bringjtag_atlantic
back (which is fairly straightforward) and assess whyjtag_uart
isn't working as expected.Description
I'm getting started on LiteX on my DE10-Nano SoC from Intel/Altera, in which the board UART port can't be accessed directly from the FPGA fabric. The board has already been ported to LiteX, as per litex-hub/litex-boards#23, and the author of the original issue is able to connect to
litex_term
using JTAG UART throughjtag_atlantic
, which should have been superseded byjtag_uart
according to 1c5d91d. With that, building my target using--uart-name jtag_uart
should produce gateware that allows the user to connect to the UART through the boards USB Blaster.However, that is not the case, and I haven't been able to make JTAG UART work on the master branch of LiteX at all.
Steps to reproduce
I only have access to the DE10-Nano, so I'm using it in this example, and I assume Quartus is already installed in the system.
litex-boards
(which should come with a normal LiteX install) with the--uart-name jtag_uart
optionResults
Expected
LiteX boot console appears on the screen.
Actual
nios2-terminal
error message:Workaround
I manually copied some snippets from 6f6a10d (i.e. the parent of the commit which removed
jtag_atlantic
) into some LiteX files to reintroducejtag_atlantic
jtag_atlantic
tosupported_uarts
and the Atlantic if statementjtag_atlantic
tojtag_name
if statementJTAGAtlantic
classBuilding with
--uart-name jtag_atlantic
and callinglitex_term
with--jtag-name jtag_atlantic
both become possible again with these modifications, and the synthesised gateware is recognised bynios2-terminal
. Running it again then outputs the expected LiteX boot console.I'm willing to reintroduce
jtag_atlantic
on a fork and then submit a PR, though I'm not sure if I could fixjtag_uart
without help.Environment
Arch Linux x86_64 (6.0.2-arch1-1)
Python 3.10.8
litex_setup.py --freeze
The text was updated successfully, but these errors were encountered: