History log of /freebsd-current/sys/dev/uart/uart_subr.c
Revision Date Author Comments
# eae36de8 08-Jan-2024 Andrew Turner <andrew@FreeBSD.org>

dev/uart: Support setting the register io width

Some uarts require a specific register width. Support setting this in
the kernel environment.

Reviewed by: imp (earlier version)
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D43362


# 949670f8 08-Jan-2024 Andrew Turner <andrew@FreeBSD.org>

dev/uart: Use a linker set to find uart classes

When the uart is configured via the environment we need to find the
uart class with a specified name. Currently to do this with an
incomplete list of uarts. As we may not have included all uarts in the
kernel each class is defined as weak.

Switch to a linker set so the list is always up to date based on what
is included in the kernel, and the class can be static.

Reviewed by: imp
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D43361


# fdafd315 24-Nov-2023 Warner Losh <imp@FreeBSD.org>

sys: Automated cleanup of cdefs and other formatting

Apply the following automated changes to try to eliminate
no-longer-needed sys/cdefs.h includes as well as now-empty
blank lines in a row.

Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/
Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/
Remove /\n+#if.*\n#endif.*\n+/
Remove /^#if.*\n#endif.*\n/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/

Sponsored by: Netflix


# 685dc743 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


# 4d846d26 10-May-2023 Warner Losh <imp@FreeBSD.org>

spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD

The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.

Discussed with: pfg
MFC After: 3 days
Sponsored by: Netflix


# 881fca44 30-Sep-2022 Warner Losh <imp@FreeBSD.org>

arm: Catch up with Samsung S3C2xx0 code removal

The code backing these uart_class was removed 7 years ago in
4648ee952520.

Sponsored by: Netflix


# d1949353 14-Jan-2021 Warner Losh <imp@FreeBSD.org>

uart: Improve console specification parsing

Print warning when we can't parse a console specification (this may
not appear on the console, but will appear in dmesg).

Also, accept key:value and key=value. There's no reason not to
and it makes this more forgiving of mistakes.

Reviewed by: rpokala@
Differential Revision: https://reviews.freebsd.org/D28168


# b63eeef4 26-Dec-2020 Marius Strobl <marius@FreeBSD.org>

scc(4)/uart(4): Remove obsolete support for Siemens SAB 82532

It's no longer used since 58aa35d42975c298ca0adba705c042596303c9f5
and r357455 respectively.


# f30f0f2b 22-Jul-2018 Matt Macy <mmacy@FreeBSD.org>

Add busy detect quirk to list of console options

This change allows one to set the busy_detect flag
required by the synopsys UART at the loader prompt.
This is needed by the EPYC 3000 SoC.

This will give users a working console up to the point where getty is required:
hw.uart.console="mm:0xfedc9000,rs:2,bd:1"

Reviewed by: imp
MFC after: 4 weeks
Differential Revision: https://reviews.freebsd.org/D16399


# 718cf2cc 27-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

sys/dev: further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 2-Clause license, however the tool I
was using misidentified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.


# 8dfea464 21-Apr-2016 Pedro F. Giffuni <pfg@FreeBSD.org>

Remove slightly used const values that can be replaced with nitems().

Suggested by: jhb


# 3bb693af 07-Mar-2015 Ian Lepore <ian@FreeBSD.org>

Move the uart_class definitions and fdt compat data into the individual
uart implementations, and export them using the new linker-set mechanism.

Differential Revision: https://reviews.freebsd.org/D1993
Submitted by: Michal Meloun


# 3bde8109 27-Oct-2014 Marcelo Araujo <araujo@FreeBSD.org>

Drop __DECONST as well as few fixes of style(9).

Phabric: D1012
Suggested by: mjg, jhb
Reviewed by: mjg, jhb
Sponsored by: QNAP Systems Inc.


# f695e046 23-Oct-2014 Marcelo Araujo <araujo@FreeBSD.org>

Fix a leaked Storage Variable.

Phabric: D981
Submitted by: myself
Reported by: Coverity
CID: 1248848
Reworked by: kevlo
Reviewed by: marcel, davide, ray, kevlo
Approved by: marcel, kevlo


# 2be111bf 16-Oct-2014 Davide Italiano <davide@FreeBSD.org>

Follow up to r225617. In order to maximize the re-usability of kernel code
in userland rename in-kernel getenv()/setenv() to kern_setenv()/kern_getenv().
This fixes a namespace collision with libc symbols.

Submitted by: kmacy
Tested by: make universe


# 5d490515 29-Jun-2013 Aleksandr Rybalko <ray@FreeBSD.org>

Teach UART to attach Exynos/s3/s5 class driver.

Submitted by: Ruslan Bukin <br@bsdpad.com>
Reviewed by: gonzo


# 32803452 22-Apr-2013 Yoshihiro Takahashi <nyan@FreeBSD.org>

Build uart_dev_lpc.c on arm only. This fixes pc98 build.


# 8dee0fd0 14-Aug-2012 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

Merging of projects/armv6, part 8

r235162:

Initial LPC32x0 support. Includes DTS file for Embedded Artists EA3250
board.

Peripherals currently supported:
- Serial ports
- Interrupt controller
- Timers
- Ethernet
- USB host
- Framebuffer (in conjunction with SSD1289 LCD controller)
- RTC
- SPI
- GPIO

Submitted by: Jakub Wojciech Klama <jceel@freebsd.org>


# f6ab8089 13-Dec-2011 Ed Schouten <ed@FreeBSD.org>

Replace __const by const in all non-contributed source code.

As C1X is close to being released, there is no need to wrap around a
feature that is already part of C90. Most of these files already use
`const' in different placed as well.


# b1ce21c6 09-Nov-2010 Rebecca Cran <brucec@FreeBSD.org>

Fix typos.

PR: bin/148894
Submitted by: olgeni


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# cedfae6b 19-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Allow specifications that lack an I/O port or memory mapped I/O
address when the UART class doesn't need it. A class doesn't need
it when the I/O range is 0.

This makes the L1 console work with the following specification:
set hw.uart.console="dt:sgisn"


# 79e221e3 19-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Add minimal support for SGI Altix l1 console -- a SAL-based character
device. This may not be here to stay, because it's not a real serial
device. Then again, who cares?


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# f8100ce2 02-Apr-2007 Marcel Moolenaar <marcel@FreeBSD.org>

Don't expose the uart_ops structure directly, but instead have
it obtained through the uart_class structure. This allows us
to declare the uart_class structure as weak and as such allows
us to reference it even when it's not compiled-in.
It also allows is to get the uart_ops structure by name, which
makes it possible to implement the dt tag handling in uart_getenv().
The side-effect of all this is that we're using the uart_class
structure more consistently which means that we now also have
access to the size of the bus space block needed by the hardware
when we map the bus space, eliminating any hardcoding.


# fbd68c4b 12-Dec-2005 Warner Losh <imp@FreeBSD.org>

Make uart_getenv() not be ns8250 dependent. This will allow, in the future,
compilation of kernels without ns8250 support but using the uart framework.
These kernels will be for machines where size matters more, so including code
that can never be executed is undesriable...


# 098ca2bd 05-Jan-2005 Warner Losh <imp@FreeBSD.org>

Start each of the license/copyright comments with /*-, minor shuffle of lines


# ecf4dc25 14-Nov-2004 Marcel Moolenaar <marcel@FreeBSD.org>

Make sure the baudrate specified with the BR tag is somewhat sane.
A baudrate we consider insane is silently replaced with 0. When the
baudrate is 0, we will not try to program the hardware. Instead we
leave the communication speed unaltered, maximizing the chance to
have a working console. Obviously this means we allow specifying a
0 baudrate for exactly that purpose.


# 139a40eb 20-Mar-2004 Marcel Moolenaar <marcel@FreeBSD.org>

Fix braino in previous commit: getenv() can return NULL.


# 2ae4f1fd 19-Mar-2004 Marcel Moolenaar <marcel@FreeBSD.org>

Introduce the hw.uart.console and hw.uart.dbgport environment variables
to select a serial console and debug port (resp). On ia64 these replace
the use of hints completely and take precedence over hints on alpha,
amd64 and i386. On sparc64 these variables are not yet recognised.

The reasons for introducing these variables are:
1. Hints have side-effects. They reserve the unit number for use by
isa or acpi devices and therefore cannot be used to select a pci
device. Also, the use of a unit number to select a device prior
to bus enumeration is nonsense. The new variables have no side-
effects and are not based on unit numbers.
2. Hints don't have the expression power to allow the sysadmin to
select UARTs that are not legacy PC devices and need the support
of compile-time constants to give the sysadmin some level of
flexibility.

The hw.uart.console and hw.uart.dbgport variables specify a list of
attributes. An attribute is a tag-value pair, seperated by a colon.
Attributes are seperated by a comma. Where possible, tags are the
same as those in /etc/remote (only br and pa in practice). Details
can be found in the manpage (not part of this commit).

Not tested on: amd64, pc98