|
Revision tags: release/13.4.0-p5, release/13.5.0-p1, release/14.2.0-p3, release/13.5.0, release/14.2.0-p2, release/14.1.0-p8, release/13.4.0-p4, release/14.1.0-p7, release/14.2.0-p1, release/13.4.0-p3, release/14.2.0, release/13.4.0, release/14.1.0, release/13.3.0 |
|
| #
d73f9fc2 |
| 04-Feb-2024 |
Mark Johnston <[email protected]> |
uart: Use device_set_descf()
No functional change intended.
MFC after: 1 week
(cherry picked from commit 66d2d42a1f26a6ef868d7d46f87d6fad0bc099aa)
|
|
Revision tags: release/14.0.0 |
|
| #
685dc743 |
| 16-Aug-2023 |
Warner Losh <[email protected]> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
| #
4d846d26 |
| 10-May-2023 |
Warner Losh <[email protected]> |
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
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
show more ...
|
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0, release/12.3.0, release/13.0.0, release/12.2.0, release/11.4.0, release/12.1.0, release/11.3.0, release/12.0.0, release/11.2.0 |
|
| #
718cf2cc |
| 27-Nov-2017 |
Pedro F. Giffuni <[email protected]> |
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
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.
show more ...
|
|
Revision tags: release/10.4.0, release/11.1.0, release/11.0.1, release/11.0.0, release/10.3.0, release/10.2.0 |
|
| #
405ada37 |
| 11-Apr-2015 |
Andrew Turner <[email protected]> |
Add support for the uart classes to set their default register shift value. This is needed with the pl011 driver. Before this change it would default to a shift of 0, however the hardware places the
Add support for the uart classes to set their default register shift value. This is needed with the pl011 driver. Before this change it would default to a shift of 0, however the hardware places the registers at 4-byte addresses meaning the value should be 2.
This patch fixes this for the pl011 when configured using the fdt. The other drivers have a default value of 0 to keep this a no-op.
MFC after: 1 week
show more ...
|
|
Revision tags: release/10.1.0, release/9.3.0 |
|
| #
d76a1ef4 |
| 19-Jan-2014 |
Warner Losh <[email protected]> |
Introduce grab and ungrab upcalls. When the kernel desires to grab the console, it calls the grab functions. These functions should turn off the RX interrupts, and any others that interfere. This mak
Introduce grab and ungrab upcalls. When the kernel desires to grab the console, it calls the grab functions. These functions should turn off the RX interrupts, and any others that interfere. This makes mountroot prompt work again. If there's more generalized need other than prompting, many of these routines should be expanded to do those new things.
Should have been part of r260889, but waasn't due to command line typo.
Reviewed by: bde (with reservations)
show more ...
|
|
Revision tags: release/10.0.0, release/9.2.0, release/8.4.0 |
|
| #
4d7abca0 |
| 01-Apr-2013 |
Ian Lepore <[email protected]> |
Fix low-level uart drivers that set their fifo sizes in the softc too late.
uart(4) allocates send and receiver buffers in attach() before it calls the low-level driver's attach routine. Many low-l
Fix low-level uart drivers that set their fifo sizes in the softc too late.
uart(4) allocates send and receiver buffers in attach() before it calls the low-level driver's attach routine. Many low-level drivers set the fifo sizes in their attach routine, which is too late. Other drivers set them in the probe() routine, so that they're available when uart(4) allocates buffers. This fixes the ones that were setting the values too late by moving the code to probe().
show more ...
|
|
Revision tags: release/9.1.0, release/8.3.0_cvs, release/8.3.0, release/9.0.0, release/7.4.0_cvs, release/8.2.0_cvs, release/7.4.0, release/8.2.0, release/8.1.0_cvs, release/8.1.0, release/7.3.0_cvs, release/7.3.0, release/8.0.0_cvs, release/8.0.0, release/7.2.0_cvs, release/7.2.0, release/7.1.0_cvs, release/7.1.0, release/6.4.0_cvs, release/6.4.0, release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0 |
|
| #
f8100ce2 |
| 02-Apr-2007 |
Marcel Moolenaar <[email protected]> |
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 refere
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.
show more ...
|
| #
97202af2 |
| 18-Jan-2007 |
Marius Strobl <[email protected]> |
- Add a uart_rxready() and corresponding device-specific implementations that can be used to check whether receive data is ready, i.e. whether the subsequent call of uart_poll() should return a c
- Add a uart_rxready() and corresponding device-specific implementations that can be used to check whether receive data is ready, i.e. whether the subsequent call of uart_poll() should return a char, and unlike uart_poll() doesn't actually receive data. - Remove the device-specific implementations of uart_poll() and implement uart_poll() in terms of uart_getc() and the newly added uart_rxready() in order to minimize code duplication. - In sunkbd(4) take advantage of uart_rxready() and use it to implement the polled mode part of sunkbd_check() so we don't need to buffer a potentially read char in the softc. - Fix some mis-indentation in sunkbd_read_char().
Discussed with: marcel
show more ...
|
|
Revision tags: release/6.2.0_cvs, release/6.2.0 |
|
| #
54cfafcf |
| 26-Jul-2006 |
Marcel Moolenaar <[email protected]> |
On PowerPC the clock for the BRG comes from RTxC, not PCLK. Add a quick hack to deal with this. We may need to formalize this better and have this information come from the bus attachments.
|
| #
afd396ac |
| 26-Jul-2006 |
Marcel Moolenaar <[email protected]> |
Implement UART_IOCTL_BAUD for the Z8530. This allows a serial console on PowerPC use the current setting of the hardware and not second guess what the OFW does on various machines.
|
|
Revision tags: release/5.5.0_cvs, release/5.5.0 |
|
| #
ace86f3f |
| 12-May-2006 |
Marcel Moolenaar <[email protected]> |
o A divisor of 0 is perfectly valid. Reserve -1 for an invalid divisor. This allows us to set the line speed to the maximum of 1/4 of the device clock. o Disable the baudrate generator before
o A divisor of 0 is perfectly valid. Reserve -1 for an invalid divisor. This allows us to set the line speed to the maximum of 1/4 of the device clock. o Disable the baudrate generator before programming the line settings, including baudrate, and enable it afterwards.
show more ...
|
|
Revision tags: release/6.1.0_cvs, release/6.1.0 |
|
| #
a24d2e12 |
| 04-Apr-2006 |
Marcel Moolenaar <[email protected]> |
In z8530_divisor() return 0 if the calculated divisor is less than 0. This happens when the baudrate is too high for the given RCLK.
|
| #
634e63c9 |
| 01-Apr-2006 |
Marcel Moolenaar <[email protected]> |
Don't hold the hardware mutex across getc(). It can wait indefinitely for a character to be received. Instead let getc() do any necesary locking.
|
| #
8af03381 |
| 30-Mar-2006 |
Marcel Moolenaar <[email protected]> |
Add support for scc(4).
|
| #
ea549414 |
| 24-Feb-2006 |
Marcel Moolenaar <[email protected]> |
Replace our local UART_SIGMASK_* with the global SER_MASK_*.
|
| #
2d511805 |
| 24-Feb-2006 |
Marcel Moolenaar <[email protected]> |
MFp4: Stop using our local UART_IPEND_* and instead use the global SER_INT_* as defined in <sys/serial.h>.
|
|
Revision tags: release/6.0.0_cvs, release/6.0.0, release/5.4.0_cvs, release/5.4.0 |
|
| #
ca83142f |
| 27-Apr-2005 |
Marcel Moolenaar <[email protected]> |
Make the Z8530 more reliable as low-level console by making use of the fact that access to RR0 does not need a prior write to the register index because the index always reverts to 0 after the indexe
Make the Z8530 more reliable as low-level console by making use of the fact that access to RR0 does not need a prior write to the register index because the index always reverts to 0 after the indexed register has been accessed.
Typically when a RR or WR is to accessed, one programs the index (which is a write to the control register), followed by a read or write to the actual indexed register (a read pr write to the same control register). When this non-atomic sequence is interrupted after having written the index and low-level console I/O is done in that situation, the write to program the index will actually write to the indexed register and nuke state. This almost always yields a wedge.
By not programming the index register and instead just reading from RR0, the worst case scenario is non-fatal. For if we don't actually read from RR0 but some other register we get an invalid status, which may lead us to conclude that the transit data register is empty when it's not or that the receive data register contains data when it doesn't. Hence, we may lose an output character or get a sporadic input character, but given the situation this is a non-issue.
Full serialization is not possible due to the fact that this code needs to work from DDB and before mutex initialization has happened.
In collaboration with: kris@, marius@ Tested by: kris@ MFC after: 1 day X-MFC: 5.4-RELEASE candidate
show more ...
|
| #
c3c16fcb |
| 30-Jan-2005 |
Marcel Moolenaar <[email protected]> |
o Fix the various interrupt related problems caused by reverse engineering the pending interrupt sources from the current state of the controller. For channel A we can always read the inter
o Fix the various interrupt related problems caused by reverse engineering the pending interrupt sources from the current state of the controller. For channel A we can always read the interrupt pending register (RR3). For channel B we can read the interrupt vector register (RR2) because it contains the modified vector and thus includes the interrupt source. Since we currently need puc(4) for the Z8530, we know that the interrupt handler for both channels will be called and thus that RR3 will always be read at least once, even if ch A has no pending interrupt. NOTE: The modified interrupt vector has no value that represent a lack of pending interrupt for channel B. That is, the value read when no interrupts are pending is the same as the value for the special receive condition. Fortunately, we don't actually have to depend on that interrupt source. This does mean that we need to properly handle the overflow condition, when we read received character from the chip. o The DSR signal is represented by the SYNC bit in the external status register (RR0). We now properly track DSR. o It's save to enable the external/status interrupt source. We now get interrupts when line signals (DSR, DCD or CTS) change.
Problems fixes: o interrupt storms. o blocked open(2). o lack of (hardware) flow control. o unable to report DSR.
MFC after: 5 days
show more ...
|
|
Revision tags: release/4.11.0_cvs, release/4.11.0 |
|
| #
098ca2bd |
| 06-Jan-2005 |
Warner Losh <[email protected]> |
Start each of the license/copyright comments with /*-, minor shuffle of lines
|
| #
0204ed7a |
| 21-Nov-2004 |
Marcel Moolenaar <[email protected]> |
Include the header with the register definitions from sys/dev/ic. They are shared now.
|
|
Revision tags: release/5.3.0_cvs, release/5.3.0 |
|
| #
28710806 |
| 24-Jun-2004 |
Poul-Henning Kamp <[email protected]> |
Use the new serial port definitions for modemsignals.
|
|
Revision tags: release/4.10.0_cvs, release/4.10.0 |
|
| #
eced4286 |
| 04-May-2004 |
Marcel Moolenaar <[email protected]> |
Fix hangs caused by z8530_bus_ipend() returning UART_IPEND_TXIDLE not as a pending interrupt status, but as a matter of status quo. Consequently, when there's no data to be transmitted the condition
Fix hangs caused by z8530_bus_ipend() returning UART_IPEND_TXIDLE not as a pending interrupt status, but as a matter of status quo. Consequently, when there's no data to be transmitted the condition is not cleared and uart_intr() is stuck in an infinite loop trying to clear the UART_IPEND_TXIDLE status. The z8530_bus_ipend() function is changed to return idle only once after having sent any data.
The root cause for this problem is that we cannot use the interrupt status bits of the SCC itself. The register that holds the interrupt status can only be accessed by channel A and holds the status for both channels. Using the interrupt status register would complicate the driver because we need to synchronize access to the SCC between the channels.
Elementary testing: marius
show more ...
|
|
Revision tags: release/5.2.1_cvs, release/5.2.1, release/5.2.0_cvs, release/5.2.0, release/4.9.0_cvs, release/4.9.0 |
|
| #
875f70db |
| 26-Sep-2003 |
Marcel Moolenaar <[email protected]> |
Revert the introduction of iobase in struct uart_bas. Both the SAB82532 and the Z8530 drivers used the I/O address as a quick and dirty way to determine which channel they operated on, but formalizin
Revert the introduction of iobase in struct uart_bas. Both the SAB82532 and the Z8530 drivers used the I/O address as a quick and dirty way to determine which channel they operated on, but formalizing this by introducing iobase is not a solution. How for example would a driver know which channel it controls for a multi-channel UART that only has a single I/O range?
Instead, add an explicit field, called chan, to struct uart_bas that holds the channel within a device, or 0 otherwise. The chan field is initialized both by the system device probing (i.e. a system console) or it is passed down to uart_bus_probe() by any of the bus front-ends. As such, it impacts all platforms and bus drivers and makes it a rather large commit.
Remove the use of iobase in uart_cpu_eqres() for pc98. It is expected that platforms have the capability to compare tag and handle pairs for equality; as to determine whether two pairs access the same device or not. The use of iobase for pc98 makes it impossible to formalize this and turn it into a real newbus function later. This commit reverts uart_cpu_eqres() for pc98 to an unimplemented function. It has to be reimplemented using only the tag and handle fields in struct uart_bas.
Rewrite the SAB82532 and Z8530 drivers to use the chan field in struct uart_bas. Remove the IS_CHANNEL_A and IS_CHANNEL_B macros. We don't need to abstract anything anymore.
Discussed with: nyan Tested on: i386, ia64, sparc64
show more ...
|
| #
c423dba3 |
| 23-Sep-2003 |
Yoshihiro Takahashi <[email protected]> |
- Keep the base address in struct uart_bas for sab82532 and z8530 modules. - Remove buggy uart_cpu_busaddr() function.
|