<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/uart, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=main</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2026-04-17T19:37:26Z</updated>
<entry>
<title>uart/pci: use different probe return values</title>
<updated>2026-04-17T19:37:26Z</updated>
<author>
<name>Roger Pau Monné</name>
<email>royger@FreeBSD.org</email>
</author>
<published>2026-04-17T12:46:39Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2ac5b9bd0b132ac0fb69800724dbfcab45ccc35c'/>
<id>urn:sha1:2ac5b9bd0b132ac0fb69800724dbfcab45ccc35c</id>
<content type='text'>
For PCI devices listed in pci_ns8250_ids return BUS_PROBE_SPECIFIC, while
for generic UART devices not explicitly listed in pci_ns8250_ids return
BUS_PROBE_GENERIC.  This allows more specific drivers to take over those
devices, and the generic UART PCI driver will only be used as a fallback.

This fixes an issue where the UART PCI driver would attach to multiport PCI
UART devices, that instead need to use the puc(4) driver to multiplex the
device.

Reported by: markj
Sponsored by: Citrix Systems R&amp;D
Differential revision: https://reviews.freebsd.org/D56467
Reviewed by: markj imp
</content>
</entry>
<entry>
<title>uart/pci: recover ADL AMT device after FIFO size probing</title>
<updated>2026-04-17T19:37:26Z</updated>
<author>
<name>Roger Pau Monné</name>
<email>royger@FreeBSD.org</email>
</author>
<published>2026-03-27T09:55:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=45c8ddc874bb9149ed20cb46b6ef8bdd0567714c'/>
<id>urn:sha1:45c8ddc874bb9149ed20cb46b6ef8bdd0567714c</id>
<content type='text'>
When the Alder Lake Serial-over-LAN device is put into loopback mode and
repeated writes are performed to the data register it results in the device
ending up in a non-functional state afterwards.

Recovering the device to a working state requires re-writing the LCR
register with it's current value (no effective change).  This should be
harmless on all other devices.

Sponsored by: Citrix Systems R&amp;D
Differential revision: https://reviews.freebsd.org/D56107
Reviewed by: imp
</content>
</entry>
<entry>
<title>uart/pci: always disable MSI for generic devices</title>
<updated>2026-03-27T08:26:32Z</updated>
<author>
<name>Roger Pau Monné</name>
<email>royger@FreeBSD.org</email>
</author>
<published>2026-03-26T19:59:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c562c81e315cd25bd35d5ece14ef9a3cb569cab5'/>
<id>urn:sha1:c562c81e315cd25bd35d5ece14ef9a3cb569cab5</id>
<content type='text'>
The generic device pci_id structure in uart_pci_probe() already has
PCI_NO_MSI appended to it's flags, however that information is not
propagated into uart_pci_attach().

Assume that any device that doesn't match the known IDs is a generic UART
device, and hence prevent the usage of MSIs.

MFC: 2 weeks
Reviewed by: imp
Differential revision: https://reviews.freebsd.org/D56097
</content>
</entry>
<entry>
<title>uart/pci: support 16550A PCI serial devices</title>
<updated>2026-03-27T08:26:32Z</updated>
<author>
<name>Roger Pau Monné</name>
<email>royger@FreeBSD.org</email>
</author>
<published>2026-03-26T10:01:57Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1491fe8f864af5af37e83f1d12459905fb6097fd'/>
<id>urn:sha1:1491fe8f864af5af37e83f1d12459905fb6097fd</id>
<content type='text'>
Expand the current check to also attach the ns8250 driver to devices
reporting as 16550A.  This has been tested to work on a real device.

From an inspection of the code in the ns8250 driver it seems like it should
support up to 16950A devices, but I don't have hardware to ensure that,
hence be conservative with the change.

MFC: 2 weeks
Reviewed by: imp
Differential revision: https://reviews.freebsd.org/D56095
</content>
</entry>
<entry>
<title>chore: replace {0, 0} with {DEV,KOBJ}METHOD_END</title>
<updated>2026-02-25T05:59:34Z</updated>
<author>
<name>Enji Cooper</name>
<email>ngie@FreeBSD.org</email>
</author>
<published>2026-02-21T06:14:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=0fc6c3f731a2cca3120798806c330a3081c9424b'/>
<id>urn:sha1:0fc6c3f731a2cca3120798806c330a3081c9424b</id>
<content type='text'>
Both of the aforementioned macros have been present in FreeBSD
for well over a decade: 2009 for `KOBJMETHOD_END`; 2011 for
`DEVMETHOD_END`.

Adapt all hardcoded references of `{0, 0}` with `DEVMETHOD_END`
and `KOBJMETHOD_END` as appropriate. This helps ensure that
future adaptations to drivers following patterns documented
in driver(9) can be made more easily/without issue.

MFC after:	1 week
Differential Revision:	 https://reviews.freebsd.org/D55414
</content>
</entry>
<entry>
<title>arm: Add EARLY_PRINTF for ns8250 on arm/aarch64 platforms.</title>
<updated>2026-02-22T21:13:33Z</updated>
<author>
<name>Michal Meloun</name>
<email>mmel@FreeBSD.org</email>
</author>
<published>2025-02-02T14:22:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d2dea8b46a8a61359c5185f4af3cc1761139bcb4'/>
<id>urn:sha1:d2dea8b46a8a61359c5185f4af3cc1761139bcb4</id>
<content type='text'>
Reviewed  by:	adrian (previous version)
MFC after:	3 weeks
</content>
</entry>
<entry>
<title>uart: fix sleeping while holding mutex in uart_tty_detach()</title>
<updated>2026-02-03T03:21:43Z</updated>
<author>
<name>Abdelkader Boudih</name>
<email>freebsd@seuros.com</email>
</author>
<published>2026-02-03T03:21:43Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ed3a2469a71e0ef48cf8e636c35e64a011756da3'/>
<id>urn:sha1:ed3a2469a71e0ef48cf8e636c35e64a011756da3</id>
<content type='text'>
Move swi_remove() call before acquiring the tty lock. swi_remove() calls
intr_event_remove_handler() which may sleep via msleep(), causing a lock
order violation when called with the tty mutex held.

The software interrupt handler removal operates on the interrupt event
structure independently and does not require the tty lock. This matches
the pattern used in other drivers such as tcp_hpts.c where swi_remove()
is called without holding other locks.

Reviewed by:	imp, kevans
MFC after:	3 days
Differential Revision:	https://reviews.freebsd.org/D54953
</content>
</entry>
<entry>
<title>uart: provide and use default rclk for JH7110 UART</title>
<updated>2025-10-31T15:30:02Z</updated>
<author>
<name>Mitchell Horne</name>
<email>mhorne@FreeBSD.org</email>
</author>
<published>2025-10-14T18:02:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=6de1c50e78a826abc08660e4c3ac10f1ddba9ba2'/>
<id>urn:sha1:6de1c50e78a826abc08660e4c3ac10f1ddba9ba2</id>
<content type='text'>
A regression in the u-boot-provided JH7110 device tree leaves the uart
incorrectly configured.

The issue arises when a baud rate is specified ('current-speed'
property), but the rclk value is not ('clock-frequency'). Previous
releases, e.g. v2025.04, provided both.

The alternative way to retrieve this value is to query the parent clock,
but our clk framework is not available during early console probing and
configuration.

In this instance, we end up defaulting to DEFAULT_RCLK in ns8250_init(),
which is the wrong value. The relevant uart class (uart_snps) should
provide a default rclk in its definition, but it does not. Add a new
variant class with the correct default rclk of 24000000.

Finally, uart_cpu_fdt_probe() needs to be updated to actually query this
default value when it does not find a 'clock-frequency' property. This
was simply missing; the ACPI uart bus behaves identically, see
uart_acpi_probe().

PR:		289978
Reported by:	rdunkle@smallcatbrain.com
MFC after:	1 week
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D53119
</content>
</entry>
<entry>
<title>puc: Add support for Systembase SB16C1054, SB16C1058.</title>
<updated>2025-08-26T11:09:15Z</updated>
<author>
<name>Jashank Jeremy</name>
<email>jashank@rulingia.com.au</email>
</author>
<published>2025-08-26T11:09:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=768ce2eba66c155a4358d5285008555872b4bb61'/>
<id>urn:sha1:768ce2eba66c155a4358d5285008555872b4bb61</id>
<content type='text'>
The Systembase SB16C1054 and SB16C1058 are PCI quad- and octal-UART
complexes, based on multiple Systembase SB16C1050 cores, which appear to
be compatible with the NS8250 family (except for the "enable interrupts"
bit in the other BAR).

The SB16C105x family are one of two families of PCIe UART complexes on
cards by StarTech.com, such as the PEX4S1050 and PEX8S1050. (Other
StarTech.com serial offerings use the ASIX AX99100 or ASIX MCS990x.)

This is derived from the NetBSD driver.

Reviewed by:    imp
Tested by:      Jashank Jeremy &lt;jashank@rulingia.com.au&gt;
Obtained from:  Jashank Jeremy &lt;jashank@rulingia.com.au&gt;
MFC after:      1 week
Differential Revision:  &lt;https://reviews.freebsd.org/D52150
</content>
</entry>
<entry>
<title>uart: Add ns8250 ACPI entry for SPCR rev 2</title>
<updated>2025-08-13T14:02:14Z</updated>
<author>
<name>Justin Hibbits</name>
<email>jhibbits@FreeBSD.org</email>
</author>
<published>2025-08-06T20:46:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a685a263b803012d9546abaca4dcf52f80c6b8d6'/>
<id>urn:sha1:a685a263b803012d9546abaca4dcf52f80c6b8d6</id>
<content type='text'>
Summary:
SPCR rev 2 adds a series of new device types, with 0x12 being
"16550-compatible with parameters defined in the Generic Address
Structure".  Since we look for the parameters already in the GAS there's
nothing extra for us to do beyond adding the entry so that it probes
successfully.

Reviewed by:	imp, andrew
Sponsored by:	Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D51771
</content>
</entry>
</feed>
