Discussion:
PER-C40C minipci card under FreeBSD
(too old to reply)
Milan Obuch
2012-02-20 21:13:42 UTC
Permalink
Hi,

is somebody using $subject? I need to get this card working in order to
get more serial ports in ALIX boards. Unfortunately, all I am getting
is hangup - last lines on console are

pci0: <simple comms, UART> at device 13.0 (no driver attached)
puc0: <Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)> port
0x1440-0x145f,0x1480-0x149f mem
0x80040000-0x80040fff,0x80080000-0x80080fff irq 12 at device 13.1 on
pci0
puc0: Reserved 0x20 bytes for rid 0x10 type 4 at 0x1440
puc0: [FILTER]

and nothing more happens (second line is wrapped here, very long for
mail).

In verbose boot, there are some related lines a bit sooner while doing
pci bus scan:

found-> vendor=0x1415, dev=0x9505, revid=0x01
domain=0, bus=0, slot=13, func=0
class=07-00-06, hdrtype=0x00, mfdev=1
cmdreg=0x0103, statreg=0x0290, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=12
powerspec 2 supports D0 D2 D3 current D0
map[10]: type I/O Port, range 32, base 0x1000, size 3, enabled
map[14]: type I/O Port, range 32, base 0x1040, size 3, enabled
map[18]: type I/O Port, range 32, base 0x1080, size 3, enabled
map[1c]: type I/O Port, range 32, base 0x10c0, size 3, enabled
map[20]: type I/O Port, range 32, base 0x1400, size 5, enabled
map[24]: type Memory, range 32, base 0x80000000, size 12,
enabled
found-> vendor=0x1415, dev=0x9511, revid=0x01
domain=0, bus=0, slot=13, func=1
class=06-80-00, hdrtype=0x00, mfdev=1
cmdreg=0x0103, statreg=0x0290, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=12
powerspec 2 supports D0 D2 D3 current D0
map[10]: type I/O Port, range 32, base 0x1440, size 5, enabled
map[14]: type Memory, range 32, base 0x80040000, size 12,
enabled
map[18]: type I/O Port, range 32, base 0x1480, size 5, enabled
map[1c]: type Memory, range 32, base 0x80080000, size 12,
enabled

(Boot lines from console are actually from WRAP, but they are not
different, only device is moved to 12 or 14 depending on slot used on
ALIX).

Has anyboady an idea where does kernel actually hang and what need to
be debugged? I have no problem to build a new kernel and test anything,
I just need something to begin.

Oh, and this was done with 8.3-PRERELEASE sources from today morning as
this is version chosen for now, but I will try tomorrow to repeat this
test with CURRENT sources, just to try whether something is already
changed.

In any case, if someone has any experience with mentioned minipci
serial card, I would like to hear them.

Regards,
Milan
Milan Obuch
2012-02-21 11:44:21 UTC
Permalink
On Mon, 20 Feb 2012 22:02:37 +0100
Post by Milan Obuch
Hi,
is somebody using $subject? I need to get this card working in order
to get more serial ports in ALIX boards. Unfortunately, all I am
getting is hangup - last lines on console are
pci0: <simple comms, UART> at device 13.0 (no driver attached)
puc0: <Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)> port
0x1440-0x145f,0x1480-0x149f mem
0x80040000-0x80040fff,0x80080000-0x80080fff irq 12 at device 13.1 on
pci0
puc0: Reserved 0x20 bytes for rid 0x10 type 4 at 0x1440
puc0: [FILTER]
and nothing more happens (second line is wrapped here, very long for
mail).
In verbose boot, there are some related lines a bit sooner while doing
found-> vendor=0x1415, dev=0x9505, revid=0x01
domain=0, bus=0, slot=13, func=0
class=07-00-06, hdrtype=0x00, mfdev=1
cmdreg=0x0103, statreg=0x0290, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=12
powerspec 2 supports D0 D2 D3 current D0
map[10]: type I/O Port, range 32, base 0x1000, size 3,
enabled map[14]: type I/O Port, range 32, base 0x1040, size 3,
enabled map[18]: type I/O Port, range 32, base 0x1080, size 3,
enabled map[1c]: type I/O Port, range 32, base 0x10c0, size 3,
enabled map[20]: type I/O Port, range 32, base 0x1400, size 5,
enabled map[24]: type Memory, range 32, base 0x80000000, size 12,
enabled
found-> vendor=0x1415, dev=0x9511, revid=0x01
domain=0, bus=0, slot=13, func=1
class=06-80-00, hdrtype=0x00, mfdev=1
cmdreg=0x0103, statreg=0x0290, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=12
powerspec 2 supports D0 D2 D3 current D0
map[10]: type I/O Port, range 32, base 0x1440, size 5,
enabled map[14]: type Memory, range 32, base 0x80040000, size 12,
enabled
map[18]: type I/O Port, range 32, base 0x1480, size 5,
enabled map[1c]: type Memory, range 32, base 0x80080000, size 12,
enabled
(Boot lines from console are actually from WRAP, but they are not
different, only device is moved to 12 or 14 depending on slot used on
ALIX).
Has anybody an idea where does kernel actually hang and what need to
be debugged? I have no problem to build a new kernel and test
anything, I just need something to begin.
Oh, and this was done with 8.3-PRERELEASE sources from today morning
as this is version chosen for now, but I will try tomorrow to repeat
this test with CURRENT sources, just to try whether something is
already changed.
I tested with fresh 10-CURRENT sources and got exactly the same result,
just two lines less in output. Last lines before hang are

pci0: <simple comms, UART> at device 14.0 (no driver attached)
puc0: <Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)> port
0x1840-0x185f,0x1880-0x189f mem
0xe0080000-0xe0080fff,0xe00c0000-0xe00c0fff irq 11 at device 14.1 on
pci0

(this time on ALIX, but only device number differs)
Post by Milan Obuch
In any case, if someone has any experience with mentioned minipci
serial card, I would like to hear them.
Regards,
Milan
Milan Obuch
2012-02-21 22:16:14 UTC
Permalink
On Tue, 21 Feb 2012 12:43:33 +0100
Post by Milan Obuch
On Mon, 20 Feb 2012 22:02:37 +0100
Post by Milan Obuch
Hi,
is somebody using $subject? I need to get this card working in order
to get more serial ports in ALIX boards. Unfortunately, all I am
getting is hangup - last lines on console are
pci0: <simple comms, UART> at device 13.0 (no driver attached)
puc0: <Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)>
port 0x1440-0x145f,0x1480-0x149f mem
0x80040000-0x80040fff,0x80080000-0x80080fff irq 12 at device 13.1 on
pci0
puc0: Reserved 0x20 bytes for rid 0x10 type 4 at 0x1440
puc0: [FILTER]
and nothing more happens (second line is wrapped here, very long for
mail).
After consulting datasheet, I found this part of pucdata.c looks
erroneously to me:

{ 0x1415, 0x9511, 0xffff, 0,
"Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)",
DEFAULT_RCLK,
PUC_PORT_4S, 0x10, 0, 8,
},

Function 1 is actually local bus/parallel port, and this could really
be the reason for hang I observed. Comparing what I found in datasheet
with other entries I found replacing above entry with

{ 0x1415, 0x9505, 0xffff, 0,
"Oxford Semiconductor OXuPCI952 UARTs (function 0)",
DEFAULT_RCLK,
PUC_PORT_2S, 0x10, 4, 0,
},

makes me happier, I see some well looking lines in console log:

puc0: <Oxford Semiconductor OXuPCI952 UARTs (function 0)> port
0x1400-0x1407,0x1440-0x1447,0x1480-0x1487,0x14c0-0x14c7,0x1800-0x181f
mem 0xe0040000-0xe0040fff irq 9 at device 12.00
uart1: <16550 or compatible> at port 1 on puc0
uart1: fast interrupt
uart2: <16550 or compatible> at port 2 on puc0
uart2: fast interrupt

Just one thing remains to resolve - it looks like baud rates are
incorrect. Connecting two port with null modem cable and running

cu -l /dev/cuau1 -s 9600
cu -l /dev/cuau2 -s 9600

makes functioning connection, as in 'what I type in one session appears
at the second and vice versa', but when I connect one of my 'new' ports
with other serial port, all I see is just some garbage.

How could I find where I should put 'the last change' to make
baud rates correct?

Regards,
Milan
Milan Obuch
2012-02-22 12:59:24 UTC
Permalink
On Tue, 21 Feb 2012 23:15:35 +0100
Milan Obuch <freebsd-***@dino.sk> wrote:

[ snip ]
Post by Milan Obuch
After consulting datasheet, I found this part of pucdata.c looks
{ 0x1415, 0x9511, 0xffff, 0,
"Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)",
DEFAULT_RCLK,
PUC_PORT_4S, 0x10, 0, 8,
},
Function 1 is actually local bus/parallel port, and this could really
be the reason for hang I observed. Comparing what I found in datasheet
with other entries I found replacing above entry with
{ 0x1415, 0x9505, 0xffff, 0,
"Oxford Semiconductor OXuPCI952 UARTs (function 0)",
DEFAULT_RCLK,
PUC_PORT_2S, 0x10, 4, 0,
},
puc0: <Oxford Semiconductor OXuPCI952 UARTs (function 0)> port
0x1400-0x1407,0x1440-0x1447,0x1480-0x1487,0x14c0-0x14c7,0x1800-0x181f
mem 0xe0040000-0xe0040fff irq 9 at device 12.00
uart1: <16550 or compatible> at port 1 on puc0
uart1: fast interrupt
uart2: <16550 or compatible> at port 2 on puc0
uart2: fast interrupt
[ snip ]

This is final patch which works for me:

--- pucdata.c.orig 2012-02-21 16:47:33.000000000 +0100
+++ pucdata.c.patched 2012-02-22 12:10:44.000000000 +0100
@@ -696,6 +696,12 @@
PUC_PORT_4S, 0x10, 0, 8,
},

+ { 0x1415, 0x9505, 0xffff, 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,
@@ -708,11 +714,13 @@
PUC_PORT_4S, 0x10, 0, 8,
},

+#if 0
{ 0x1415, 0x9511, 0xffff, 0,
"Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)",
DEFAULT_RCLK,
PUC_PORT_4S, 0x10, 0, 8,
},
+#endif

{ 0x1415, 0x9521, 0xffff, 0,
"Oxford Semiconductor OX16PCI952 UARTs",

pciconf -lv tells following about card functions:

***@pci0:0:12:0: class=0x070006 card=0x00001415 chip=0x95051415 rev=0x01 hdr=0x00
vendor = 'Oxford Semiconductor Ltd'
device = 'OXuPCI952 (Dual 16C950 UART)'
class = simple comms
subclass = UART
***@pci0:0:12:1: class=0x068000 card=0x00001415 chip=0x95111415 rev=0x01 hdr=0x00
vendor = 'Oxford Semiconductor Ltd'
device = 'OX16PCI954 (Quad 16950 UART) function 1 (8bit bus)'
class = bridge

This patch works for me on both 10-CURRENT and 8.3-PRERELEASE.

Regards,
Milan
John Baldwin
2012-02-22 19:27:41 UTC
Permalink
Post by Milan Obuch
On Tue, 21 Feb 2012 23:15:35 +0100
[ snip ]
Post by Milan Obuch
After consulting datasheet, I found this part of pucdata.c looks
{ 0x1415, 0x9511, 0xffff, 0,
"Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)",
DEFAULT_RCLK,
PUC_PORT_4S, 0x10, 0, 8,
},
Function 1 is actually local bus/parallel port, and this could really
be the reason for hang I observed. Comparing what I found in datasheet
with other entries I found replacing above entry with
{ 0x1415, 0x9505, 0xffff, 0,
"Oxford Semiconductor OXuPCI952 UARTs (function 0)",
DEFAULT_RCLK,
PUC_PORT_2S, 0x10, 4, 0,
},
puc0: <Oxford Semiconductor OXuPCI952 UARTs (function 0)> port
0x1400-0x1407,0x1440-0x1447,0x1480-0x1487,0x14c0-0x14c7,0x1800-0x181f
mem 0xe0040000-0xe0040fff irq 9 at device 12.00
uart1: <16550 or compatible> at port 1 on puc0
uart1: fast interrupt
uart2: <16550 or compatible> at port 2 on puc0
uart2: fast interrupt
[ snip ]
--- pucdata.c.orig 2012-02-21 16:47:33.000000000 +0100
+++ pucdata.c.patched 2012-02-22 12:10:44.000000000 +0100
@@ -696,6 +696,12 @@
PUC_PORT_4S, 0x10, 0, 8,
},
+ { 0x1415, 0x9505, 0xffff, 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,
@@ -708,11 +714,13 @@
PUC_PORT_4S, 0x10, 0, 8,
},
+#if 0
{ 0x1415, 0x9511, 0xffff, 0,
"Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)",
DEFAULT_RCLK,
PUC_PORT_4S, 0x10, 0, 8,
},
+#endif
{ 0x1415, 0x9521, 0xffff, 0,
"Oxford Semiconductor OX16PCI952 UARTs",
vendor = 'Oxford Semiconductor Ltd'
device = 'OXuPCI952 (Dual 16C950 UART)'
class = simple comms
subclass = UART
vendor = 'Oxford Semiconductor Ltd'
device = 'OX16PCI954 (Quad 16950 UART) function 1 (8bit bus)'
class = bridge
This patch works for me on both 10-CURRENT and 8.3-PRERELEASE.
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.
--
John Baldwin
Milan Obuch
2012-02-22 22:36:05 UTC
Permalink
On Wed, 22 Feb 2012 09:57:55 -0500
John Baldwin <***@freebsd.org> wrote:

[ snip ]
Post by Milan Obuch
Post by Milan Obuch
--- pucdata.c.orig 2012-02-21 16:47:33.000000000 +0100
+++ pucdata.c.patched 2012-02-22 12:10:44.000000000 +0100
@@ -696,6 +696,12 @@
PUC_PORT_4S, 0x10, 0, 8,
},
+ { 0x1415, 0x9505, 0xffff, 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,
@@ -708,11 +714,13 @@
PUC_PORT_4S, 0x10, 0, 8,
},
+#if 0
{ 0x1415, 0x9511, 0xffff, 0,
"Oxford Semiconductor OX9160/OX16PCI954 UARTs (function
1)", DEFAULT_RCLK,
PUC_PORT_4S, 0x10, 0, 8,
},
+#endif
{ 0x1415, 0x9521, 0xffff, 0,
"Oxford Semiconductor OX16PCI952 UARTs",
rev=0x01
hdr=0x00
Post by Milan Obuch
vendor = 'Oxford Semiconductor Ltd'
device = 'OXuPCI952 (Dual 16C950 UART)'
class = simple comms
subclass = UART
rev=0x01
hdr=0x00
Post by Milan Obuch
vendor = 'Oxford Semiconductor Ltd'
device = 'OX16PCI954 (Quad 16950 UART) function 1 (8bit bus)'
class = bridge
This patch works for me on both 10-CURRENT and 8.3-PRERELEASE.
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...

Regards,
Milan
John Baldwin
2012-02-23 14:36:38 UTC
Permalink
Post by Milan Obuch
On Wed, 22 Feb 2012 09:57:55 -0500
[ snip ]
Post by Milan Obuch
Post by Milan Obuch
--- pucdata.c.orig 2012-02-21 16:47:33.000000000 +0100
+++ pucdata.c.patched 2012-02-22 12:10:44.000000000 +0100
@@ -696,6 +696,12 @@
PUC_PORT_4S, 0x10, 0, 8,
},
+ { 0x1415, 0x9505, 0xffff, 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,
@@ -708,11 +714,13 @@
PUC_PORT_4S, 0x10, 0, 8,
},
+#if 0
{ 0x1415, 0x9511, 0xffff, 0,
"Oxford Semiconductor OX9160/OX16PCI954 UARTs (function
1)", DEFAULT_RCLK,
PUC_PORT_4S, 0x10, 0, 8,
},
+#endif
{ 0x1415, 0x9521, 0xffff, 0,
"Oxford Semiconductor OX16PCI952 UARTs",
rev=0x01
hdr=0x00
Post by Milan Obuch
vendor = 'Oxford Semiconductor Ltd'
device = 'OXuPCI952 (Dual 16C950 UART)'
class = simple comms
subclass = UART
rev=0x01
hdr=0x00
Post by Milan Obuch
vendor = 'Oxford Semiconductor Ltd'
device = 'OX16PCI954 (Quad 16950 UART) function 1 (8bit bus)'
class = bridge
This patch works for me on both 10-CURRENT and 8.3-PRERELEASE.
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
--
John Baldwin
Milan Obuch
2012-11-29 21:37:59 UTC
Permalink
On Thu, 23 Feb 2012 08:31:09 -0500
Post by John Baldwin
Post by Milan Obuch
On Wed, 22 Feb 2012 09:57:55 -0500
[ old patch and pciconf output snipped ]
Post by John Baldwin
Post by Milan Obuch
Post by John Baldwin
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...
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

John Baldwin
2012-02-21 22:00:01 UTC
Permalink
Post by Milan Obuch
Hi,
is somebody using $subject? I need to get this card working in order to
get more serial ports in ALIX boards. Unfortunately, all I am getting
is hangup - last lines on console are
pci0: <simple comms, UART> at device 13.0 (no driver attached)
puc0: <Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)> port
0x1440-0x145f,0x1480-0x149f mem
0x80040000-0x80040fff,0x80080000-0x80080fff irq 12 at device 13.1 on
pci0
puc0: Reserved 0x20 bytes for rid 0x10 type 4 at 0x1440
puc0: [FILTER]
and nothing more happens (second line is wrapped here, very long for
mail).
In verbose boot, there are some related lines a bit sooner while doing
found-> vendor=0x1415, dev=0x9505, revid=0x01
domain=0, bus=0, slot=13, func=0
class=07-00-06, hdrtype=0x00, mfdev=1
cmdreg=0x0103, statreg=0x0290, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=12
powerspec 2 supports D0 D2 D3 current D0
map[10]: type I/O Port, range 32, base 0x1000, size 3, enabled
map[14]: type I/O Port, range 32, base 0x1040, size 3, enabled
map[18]: type I/O Port, range 32, base 0x1080, size 3, enabled
map[1c]: type I/O Port, range 32, base 0x10c0, size 3, enabled
map[20]: type I/O Port, range 32, base 0x1400, size 5, enabled
map[24]: type Memory, range 32, base 0x80000000, size 12,
enabled
Looks like this device works differently (the default is expecting the
4 serial ports to all show up in RID 0x10). Can you try this:

Index: pucdata.c
===================================================================
--- pucdata.c (revision 231973)
+++ pucdata.c (working copy)
@@ -708,11 +708,20 @@ const struct puc_cfg puc_pci_devices[] = {
PUC_PORT_4S, 0x10, 0, 8,
},

+ /* XXX: Need subdevice/vendor */
{ 0x1415, 0x9511, 0xffff, 0,
+ "AAEON PER-C40C",
+ DEFAULT_RCLK,
+ PUC_PORT_4S, 0x10, 4, 0,
+ },
+
+#if 0
+ { 0x1415, 0x9511, 0xffff, 0,
"Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)",
DEFAULT_RCLK,
PUC_PORT_4S, 0x10, 0, 8,
},
+#endif

{ 0x1415, 0x9521, 0xffff, 0,
"Oxford Semiconductor OX16PCI952 UARTs",
--
John Baldwin
Loading...