Re: <SOLEVD> Rocketport uPCI ioaddr mapping failed under FreeBSD-5.3&CURRENT

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Wed, 23 Mar 2005 14:38:32 -0500
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
_at__at_ -67,6 +67,7 _at__at_
 #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
_at__at_ -177,7 +178,14 _at__at_
 
 	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
Received on Wed Mar 23 2005 - 18:37:19 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:30 UTC