PER-C40C minipci card under FreeBSD

Milan Obuch freebsd-hardware at dino.sk
Thu Nov 29 21:37:48 UTC 2012


On Thu, 23 Feb 2012 08:31:09 -0500
John Baldwin <jhb at freebsd.org> wrote:

> On Wednesday, February 22, 2012 5:35:36 pm Milan Obuch wrote:
> > On Wed, 22 Feb 2012 09:57:55 -0500
> > John Baldwin <jhb at freebsd.org> wrote:
> > 

[ old patch and pciconf output snipped ]

> > > Hmm, ok.  Unfortunately there are other devices that need the
> > > commented out entry.  I've sent a followup to that original PR to
> > > see if that device has a subvendor device ID.
> > > 
> > 
> > Do you have some pointers to such devices? I am no real expert, but
> > there must be some difference...
> 
> Just the PR referenced in the commit that added these lines:
> 
> http://www.freebsd.org/cgi/query-pr.cgi?pr=65040
> 

Currently I have tested both two port and four port version. I used
following patch:

--- /usr/src/sys/dev/puc/pucdata.c	2012-11-29 21:46:09.000000000 +0100
+++ /usr/src/sys/dev/puc/pucdata.c.patched	2012-11-29 20:55:30.000000000 +0100
@@ -701,10 +701,10 @@
 	 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
 	 */
 	{
-		0x1415, 0x9501, 0x10fc ,0xc070,
-		"I-O DATA RSA-PCI2/R",
-		DEFAULT_RCLK * 8,
-		PUC_PORT_2S, 0x10, 0, 8,
+	    0x1415, 0x9501, 0x10fc ,0xc070,
+	    "I-O DATA RSA-PCI2/R",
+	    DEFAULT_RCLK * 8,
+	    PUC_PORT_2S, 0x10, 0, 8,
 	},
 
 	{   0x1415, 0x9501, 0x131f, 0x2050,
@@ -725,6 +725,12 @@
 	    PUC_PORT_4S, 0x10, 0, 8,
 	},
 
+        {   0x1415, 0x9501, 0x1415, 0,
+            "Oxford Semiconductor OXuPCI954 UARTs",
+            DEFAULT_RCLK * 8,
+            PUC_PORT_4S, 0x10, 0, 8,
+        },
+
 	{   0x1415, 0x9501, 0x14db, 0x2150,
 	    "Kuroutoshikou SERIAL4P-LPPCI2",
 	    DEFAULT_RCLK * 10,
@@ -737,6 +743,12 @@
 	    PUC_PORT_4S, 0x10, 0, 8,
 	},
 
+	{   0x1415, 0x9505, 0x1415, 0,
+	    "Oxford Semiconductor OXuPCI952 UARTs (function 0)",
+	    DEFAULT_RCLK * 8,
+	    PUC_PORT_2S, 0x10, 4, 0,
+	},
+
 	{   0x1415, 0x950a, 0x131f, 0x2030,
 	    "SIIG Cyber 2S PCIe",
 	    DEFAULT_RCLK * 10,
@@ -755,6 +767,12 @@
 	    PUC_PORT_4S, 0x10, 0, 8,
 	},
 
+        {   0x1415, 0x9511, 0x1415, 0,
+            "Oxford Semiconductor OXuPCI952/OXuPCI954 UARTs (function 1)",
+            DEFAULT_RCLK,
+            PUC_PORT_NONSTANDARD, 0, 0, 8,
+        },
+
 	{   0x1415, 0x9511, 0xffff, 0,
 	    "Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)",
 	    DEFAULT_RCLK,

First chunk ist just 'normalising' - every other device uses
<TAB><4xSPACE> instead of <TAB><TAB> for indenting device definition
data. Second chunk adds four port version, third two port version, the
fourth one blocks bad definition for both cards. Without this, kernel
stops booting when either card's function 1 is detected and no
registers/memory responds there. I consider this a bit hacky way to
enable use both devices (the one mentioned in PR you cited and AAEON
miniPCI cards), however, we are not introducing a regression this way...

I built 8.3-STABLE kernel for test, but I see no reason this should not
work with 10-CURRENT, will test, however.

Regards,
Milan


More information about the freebsd-hardware mailing list