multi-port serial devices
John Baldwin
jhb at freebsd.org
Mon Oct 31 11:32:32 PST 2005
On Monday 31 October 2005 12:19 pm, Jim Pazarena wrote:
> John Baldwin wrote:
> > On Saturday 29 October 2005 07:45 pm, Jim Pazarena wrote:
> >>just purchased Specialix SX modular high speed serial solution
> >>
> >>Specialix has changed their name (bought out by perhaps) to Perle.
> >>
> >>The FreeDSD 5.4 hardware compatibility list indicates
> >>"Specialix SI/XIO/SX" multiport serial cards, are supports (si(4) driver)
> >>
> >>however a compile of the kernel with "device si" doesn't even
> >>discover the card. The supplied DOS utility to probe the device works
> >>as expected.
> >>
> >>Can anyone offer a suggestion.
> >
> > Is this a PCI card? If so, can you try adding it's device ID to the
> > si(4) driver? If you aren't sure how to do that, just post the output of
> > pciconf -lv and include the section of info about your card.
>
> thank you VERY MUCH for the response!
>
> yes it is indeed a PCI card, here is the pciconf -lv output
>
> none8 at pci2:7:0: class=0x078000 card=0x030011cb chip=0x200011cb rev=0x00
> hdr=0x00 vendor = 'Specialix International Ltd.'
> device = 'PCI-9050 Target Interface'
> class = simple comms
>
> all I added to the MYKERNEL configuration is:
> device si
>
> your help is much appreciated!
> Jim
Here's a patch you can try:
Index: si_pci.c
===================================================================
RCS file: /usr/cvs/src/sys/dev/si/si_pci.c,v
retrieving revision 1.7
diff -u -r1.7 si_pci.c
--- si_pci.c 1 Mar 2005 08:58:04 -0000 1.7
+++ si_pci.c 31 Oct 2005 19:25:22 -0000
@@ -45,8 +45,13 @@
desc = "Specialix SI/XIO PCI host card";
break;
case 0x200011cb:
- if (pci_read_config(dev, SIJETSSIDREG, 4) == 0x020011cb)
+ /* Really the sub device id ("card"). */
+ switch (pci_read_config(dev, SIJETSSIDREG, 4)) {
+ case 0x020011cb:
+ case 0x030011cb:
desc = "Specialix SX PCI host card";
+ break;
+ }
break;
}
if (desc) {
Index: sireg.h
===================================================================
RCS file: /usr/cvs/src/sys/dev/si/sireg.h,v
retrieving revision 1.10
diff -u -r1.10 sireg.h
--- sireg.h 6 Jan 2005 01:43:14 -0000 1.10
+++ sireg.h 31 Oct 2005 19:23:16 -0000
@@ -62,14 +62,14 @@
#define SIEISAIOSIZE 0x100 /* XXX How many ports */
/* SI old PCI */
-#define SIPCIBADR 0x10 /* Which BADR to map in RAM */
+#define SIPCIBADR PCIR_BAR(0) /* Which BADR to map in RAM */
#define SIPCI_MEMSIZE 0x100000 /* Mapping size */
#define SIPCIRESET 0xc0001 /* 0 = Reset */
#define SIPCIINTCL 0x40001 /* 0 = clear int */
/* SI Jet PCI */
-#define SIJETSSIDREG 0x2c /* Is it an SX or RIO? */
-#define SIJETBADR 0x18 /* Which BADR to map in RAM */
+#define SIJETSSIDREG PCIR_SUBVEND_0 /* Is it an SX or RIO? */
+#define SIJETBADR PCIR_BAR(2) /* Which BADR to map in RAM */
/* SI Jet PCI & ISA */
#define SIJETIDBASE 0x7c00 /* ID ROM base */
#define SISPLXID 0x984d /* Specialix ID */
> this is my second $1000 purchase for a multi-port serial device to work
> with FreeBSD my first purchase -> RocketPort just plain wouldn't work. The
> management is getting frustrated with my purchases based on the Hardware
> Compatibility List.
Hmm, I use an 8-port rocketport in my devel server that I got on ebay for $50.
What issues do you have with your RocketPort?
rp0: <RocketPort PCI> port 0xde80-0xdebf irq 22 at device 11.0 on pci1
RocketPort0 (Version 3.02) 8 ports.
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the freebsd-hardware
mailing list