<SOLEVD> Rocketport uPCI ioaddr mapping failed under
FreeBSD-5.3&CURRENT
John Baldwin
jhb at FreeBSD.org
Wed Mar 23 11:37:20 PST 2005
On Saturday 05 February 2005 04:01 am, wsk wrote:
> > On Monday 24 January 2005 04:25 am, wsk wrote:
> >> hi,folks:
> >>
> >> after installed RocketPort uPCI card into my box;it
> >> dumps the follow eror msgs:
> >>
> >> rp0: <RocketPort PCI> port 0xde00-0xdeff,0xdd80-0xddff mem
> >> 0xfcedff80-0xfcedffff
> >> irq 19 at device 10.0 on pci2
> >> rp0: failed: rid 0x10 is memory, requested 4
> >> rp0: ioaddr mapping failed for RocketPort(PCI).
> >> device_attach: rp0 attach returned 6
> >
> > Looks like you need to change the driver to map its io addresses from a
> > different BAR for this chip ID since BAR 0 is memory, not I/O. I'm not
> > sure
> > this driver will work with this card, btw, but you can try changing this
> > line
> > in the attach function of sys/dev/rp/rp_pci.c:
> >
> > ctlp->io_rid[0] = 0x10;
> >
> > to use either '0x14' or '0x18' rather than '0x10' and see if it >works.
>
> It must use '0x18' . or the driver can't map the ports:
> here'is my boot mesgs by set '0x14'
> Feb 5 16:21:20 wsk kernel: rp0: <RocketPort PCI> port
> 0xde00-0xdeff,0xdd80-0xddff mem 0xfcedff80-0xfcedffff irq 19 at device
> 10.0 on pci2
> Feb 5 16:21:20 wsk kernel: RocketPort0 (Version 3.02) 0 ports.
> and after set '0x18'. the boot mesgs:
> Feb 5 16:47:59 wsk kernel: rp0: <RocketPort PCI> port
> 0xde00-0xdeff,0xdd80-0xddff mem 0xfcedff80-0xfcedffff irq 19 at device
> 10.0 on pci2
> Feb 5 16:47:59 wsk kernel: RocketPort0 (Version 3.02) 8 ports.
> and thanks again
Can you try this patch below and verify it works? If so, I'd like to commit
it. Thanks!
Index: rp_pci.c
===================================================================
RCS file: /usr/cvs/src/sys/dev/rp/rp_pci.c,v
retrieving revision 1.9
diff -u -r1.9 rp_pci.c
--- rp_pci.c 21 Jun 2004 13:02:25 -0000 1.9
+++ rp_pci.c 23 Mar 2005 19:37:43 -0000
@@ -67,6 +67,7 @@
#define RP_DEVICE_ID_4J 0x0007
#define RP_DEVICE_ID_6M 0x000C
#define RP_DEVICE_ID_4M 0x000D
+#define RP_DEVICE_ID_UPCI_8O 0x0805
/**************************************************************************
MUDBAC remapped for PCI
@@ -177,7 +178,14 @@
ctlp->bus_ctlp = NULL;
- ctlp->io_rid[0] = 0x10;
+ switch (pci_get_devid(dev)) {
+ case RP_DEVICE_ID_UPCI_8O:
+ ctlp->io_rid[0] = PCIR_BAR(2);
+ break;
+ default:
+ ctlp->io_rid[0] = PCIR_BAR(0);
+ break;
+ }
ctlp->io[0] = bus_alloc_resource_any(dev, SYS_RES_IOPORT,
&ctlp->io_rid[0], RF_ACTIVE);
if(ctlp->io[0] == NULL) {
--
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-current
mailing list