History log of /freebsd-9.3-release/sys/dev/uart/uart_bus_pci.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 267654 19-Jun-2014 gjb

Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 266439 19-May-2014 marius

MFC: r259838

Add another HP iLO serial (console) port, found on Itanium servers.


# 266437 19-May-2014 marius

MFC: r257808

Add new AMT serial port PCI ID on Intel Lynx Point chipset


# 266434 19-May-2014 marius

MFC: r253654

Set the device description after we call uart_probe(). In uart_probe()
we call device-specific probe functions, which can (and typically will)
set the device description based on low-level device probe information.
In the end we never actually used the device description that we so
carefully maintained in the PCI match table. By setting the device
description after we call uart_probe(), we'll print the more user-
friendly description by default.


# 264762 22-Apr-2014 marius

MFC: r264257, r264327, r264514

Distinguish between the different variants and configurations of Sunix
{MIO,SER}5xxxx chips instead of treating all of them as PUC_PORT_2S.
Among others, this fixes the hang seen when trying to probe the none-
existent second UART on an actually 1-port chip.

Obtained from: NetBSD (BAR layouts)
Sponsored by: Bally Wulff Games & Entertainment GmbH


# 264547 16-Apr-2014 eadler

MFC r249803:

Add support for Intel C600/X79 Series Chipset KT Controller.

PR: kern/177072


# 247887 06-Mar-2013 avg

MFC r246243: uart: add resume method and enable it for attachments on
the most common x86 buses


# 247654 02-Mar-2013 marius

MFC: r246300

- Make pci_ns8250_ids[] const.
- Use DEVMETHOD_END.
- Use NULL instead of 0 for pointers.


# 244139 12-Dec-2012 remko

Merge r232639

Original commit:

Add support for the MosChip MCS9904 four serial ports
controller.

PR: 165804
Submitted by: Eugene Grosbein
MFC after: 1 week

Modified:
head/sys/dev/uart/uart_bus_pci.c

Modified: head/sys/dev/uart/uart_bus_pci.c
==============================================================================
--- head/sys/dev/uart/uart_bus_pci.c Wed Mar 7 06:25:17 2012 (r232638)
+++ head/sys/dev/uart/uart_bus_pci.c Wed Mar 7 06:42:21 2012 (r232639)
@@ -126,6 +126,8 @@ static struct pci_id pci_ns8250_ids[] =
"MosChip MCS9900 PCIe to Peripheral Controller", 0x10 },
{ 0x9710, 0x9901, 0xa000, 0x1000,
"MosChip MCS9901 PCIe to Peripheral Controller", 0x10 },
+{ 0x9710, 0x9904, 0xa000, 0x1000,
+ "MosChip MCS9904 PCIe to Peripheral Controller", 0x10 },
{ 0xdeaf, 0x9051, 0xffff, 0, "Middle Digital PC Weasel Serial Port", 0x10 },
{ 0xffff, 0, 0xffff, 0, NULL, 0, 0}
};


# 233061 16-Mar-2012 kib

MFC r232967:
Add PCI Id for the AMT SOL UART on G4x series Intel chipsets.


# 230659 28-Jan-2012 eadler

MFC r230327:
Add support for Sony Ericsson GC89 EDGE/Wirelles LAN PC Card

PR: kern/131933
Approved by: cperciva


# 230298 18-Jan-2012 kib

MFC r229971:
Add PCI Id for the AMT SOL UART on 5 series Intel chipsets.


# 229687 06-Jan-2012 kevlo

MFC r229379:
Add support for Intel EG20T serial ports


# 229573 05-Jan-2012 kib

MFC r228947:
Add PCI Id for the Intel AMT serial interface as found on my DQ67OW.


# 225736 22-Sep-2011 kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by: re (implicit)


# 223874 08-Jul-2011 jhb

Add device ID for the Davicom 56PDV PCI Modem.

PR: kern/75132
Submitted by: Mike Tancsa @ Sentex (older patch against puc(4))
MFC after: 1 week


# 223672 29-Jun-2011 hselasky

Add support for a MosChip PCI express serial port adapter.

MFC after: 1 week


# 204533 01-Mar-2010 delphij

Add PCI ID for MCS9901.

Submitted by: gcooper
PR: kern/144397
MFC after: 1 month


# 200257 08-Dec-2009 mav

Add ID for NetMos NM9820 Serial Port chip, found on CardBus serial adapter.


# 200230 07-Dec-2009 marcel

Add support for the NetMos NM9865 family of Serial/Parallel ports.

Obtained from: NetMos MCS9865 v1.0.0.1 driver
MFC after: 3 days


# 189575 09-Mar-2009 imp

remove now-redunant cardbus attachment.


# 189407 05-Mar-2009 jhb

Add support for the single-port NetMos NM9835 serial adapter. The puc(4)
entry is a specific entry to override the generic NetMos entry so that
puc(4) will leave this device alone and let uart(4) claim it.

Submitted by: Navdeep Parhar nparhar @ gmail
Reviewed by: marcel
MFC after: 1 week


# 188472 10-Feb-2009 kaiw

Added entries for Lava SP-PCI (1 serial + 1 parallel) PCI card. The
card is a multifunction PCI and report itself as two logical devices.


# 169646 17-May-2007 marcel

The HP Diva RMP3 uses BAR 0x14.


# 168391 05-Apr-2007 marcel

Add PCI IDs for the HP RMP3 serial port. This is often used as
the serial console.

MFC after: 1 week


# 158078 27-Apr-2006 marcel

o Add 5 Timedia single port serial cards.
o While here, break long lines.


# 158064 27-Apr-2006 marcel

o Add 2 HP Diva single port UARTs.


# 158058 26-Apr-2006 marcel

o Add 2 NEC cards
o Add 2 Dell cards
o Add Quatech card
o Add support for non-standard rclk values.
o Update descriptions to match PCI id database.


# 151682 25-Oct-2005 marcel

Remove PCI IDs for multiport cards:
o Oxford Semiconductor PCI Dual Port Serial
o Netmos Nm9845 PCI Bridge with Dual UART

Add PCI IDs for single-port cards:
o Various SIIG Cyber Serial
o Oxford Semiconductor OXCB950 UART

Update description as per puc(4).


# 139749 05-Jan-2005 imp

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


# 123019 28-Nov-2003 imp

Sometimes cardbus attachments don't attach, so while we track down
this problem put these lines back in. While they should be
unnecessary, they appear to be sometimes necessary.

Reviewed in concept: dfr
Approved by: re (scottl@)


# 121939 03-Nov-2003 dfr

Remove explicit cardbus attachments from drivers where this is identical
to the pci attachment. Cardbus is a derived class of pci so all pci
drivers are automatically available for matching against cardbus devices.

Reviewed by: imp


# 120452 26-Sep-2003 marcel

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


# 119815 06-Sep-2003 marcel

The uart(4) driver is an universal driver for various UART hardware.
It improves on sio(4) in the following areas:
o Fully newbusified to allow for memory mapped I/O. This is a must
for ia64 and sparc64,
o Machine dependent code to take full advantage of machine and firm-
ware specific ways to define serial consoles and/or debug ports.
o Hardware abstraction layer to allow the driver to be used with
various UARTs, such as the well-known ns8250 family of UARTs, the
Siemens sab82532 or the Zilog Z8530. This is especially important
for pc98 and sparc64 where it's common to have different UARTs,
o The notion of system devices to unkludge low-level consoles and
remote gdb ports and provides the mechanics necessary to support
the keyboard on sparc64 (which is UART based).
o The notion of a kernel interface so that a UART can be tied to
something other than the well-known TTY interface. This is needed
on sparc64 to present the user with a device and ioctl handling
suitable for a keyboard, but also allows us to cleanly hide an
UART when used as a debug port.

Following is a list of features and bugs/flaws specific to the ns8250
family of UARTs as compared to their support in sio(4):
o The uart(4) driver determines the FIFO size and automaticly takes
advantages of larger FIFOs and/or additional features. Note that
since I don't have sufficient access to 16[679]5x UARTs, hardware
flow control has not been enabled. This is almost trivial to do,
provided one can test. The downside of this is that broken UARTs
are more likely to not work correctly with uart(4). The need for
tunables or knobs may be large enough to warrant their creation.
o The uart(4) driver does not share the same bumpy history as sio(4)
and will therefore not provide the necessary hooks, tweaks, quirks
or work-arounds to deal with once common hardware. To that extend,
uart(4) supports a subset of the UARTs that sio(4) supports. The
question before us is whether the subset is sufficient for current
hardware.
o There is no support for multiport UARTs in uart(4). The decision
behind this is that uart(4) deals with one EIA RS232-C interface.
Packaging of multiple interfaces in a single chip or on a single
expansion board is beyond the scope of uart(4) and is now mostly
left for puc(4) to deal with. Lack of hardware made it impossible
to actually implement such a dependency other than is present for
the dual channel SAB82532 and Z8350 SCCs.

The current list of missing features is:
o No configuration capabilities. A set of tunables and sysctls is
being worked out. There are likely not going to be any or much
compile-time knobs. Such configuration does not fit well with
current hardware.
o No support for the PPS API. This is partly dependent on the
ability to configure uart(4) and partly dependent on having
sufficient information to implement it properly.

As usual, the manpage is present but lacks the attention the
software has gotten.