ALTERA_JTAG_UART(4)
π
altera_jtag_uart β the driver for the Altera JTAG UART Core (a Kernel Interfaces Manual moment, fr)
okay bestie, so this is the altera_jtag_uart page from the Kernel Interfaces Manual β yes it's a section 4 man page, and yes it's about a driver, and yes we're gonna get through it together π«Ά
β¨ SYNOPSIS β¨
device altera_jtag_uart
and then in /boot/device.hints you gotta put this whole situation:
hint.altera_jtag_uart.0.at="nexus0"
hint.altera_jtag_uart.0.maddr=0x7f000000
hint.altera_jtag_uart.0.msize=0x40
hint.altera_jtag_uart.0.irq=0
hint.altera_jtag_uart.1.at="nexus0"
hint.altera_jtag_uart.1.maddr=0x7f001000
hint.altera_jtag_uart.1.msize=0x40
copy it exactly, no cap, those hex numbers are doing the most π
πΈ DESCRIPTION πΈ
the altera_jtag_uart device driver is literally the support system for the Altera JTAG UART core β and what that core does is let multiple UART-like streams ride over JTAG. iconic behaviour honestly π
altera_jtag_uart lets those JTAG UART streams attach to two places:
- the low-level console interface, which is what handles direct kernel input and output
- the
tty(4)layer, which is what you use withttys(5)andlogin(1)
and sequential Altera JTAG UART devices just show up as ttyu0, ttyu1, etc. β one after another, main character energy, the way that numbering just works π
π₯ HARDWARE π₯
you connect to Altera JTAG UART devices using Altera's nios2-terminal program, and you pick which instance you want with the --instance argument on the management host. slay π¦
here's the cute part: altera_jtag_uart supports JTAG UART cores with or without interrupt lines connected. so if you omit the irq portion of the device.hints entry, the driver will poll instead of configuring interrupts. it's giving "we'll make it work either way" β¨
π¦ SEE ALSO π¦
also, for the reading list: Altera Embedded Peripherals IP User Guide, Altera Corporation, http://www.altera.com/literature/ug/ug_embedded_ip.pdf, June 2011. yes that's a 2011 PDF link, she's vintage π
π HISTORY π
the altera_jtag_uart device driver first appeared in FreeBSD 10.0. periodt π
π AUTHORS π
the altera_jtag_uart device driver and this manual page were developed by SRI International and the University of Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237) (βCTSRDβ), as part of the DARPA CRASH research programme. and this device driver was written by Robert N. M. Watson. giving credit where credit is due, always π«Ά
π BUGS π
okay this is the part where we sit down and listen, bestie, because it's real:
altera_jtag_uart must dynamically poll to detect when JTAG is present β that's how it disables flow control in the event that there is no receiving endpoint. if it didn't? the boot might hang waiting for the JTAG client to be attached, and user processes attached to JTAG UART devices might block indefinitely. not cute. π
but here's the catch: there is no way to flush the output buffer once JTAG is detected to have disappeared. so a small amount of stale output data will remain in the output buffer, and nios2-terminal will display it when it gets connected. it's giving "leftover vibes" π
and: loss of JTAG will not generate a hang-up event, because that is rarely the desired behaviour. fair honestly.
one more, and it's a real one: nios2-terminal does not place the client-side TTY in raw mode, so by default it will not pass all control characters through to the UART. keep that in mind before you spend 40 minutes confused, iykyk π
that's the whole page, bestie β much love to the Debian crew, this page is dated August 18, 2012, and it lives in the Kernel Interfaces Manual for ALTERA_JTAG_UART(4). go forth and poll responsibly π§πβ¨
π¦ where this page comes from
- freebsd 14.5: base 14.5
- Copyright (c) 2012 Robert N. M. Watson
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms