Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Jan 2001 22:04:58 -0800
From:      Mike Smith <msmith@freebsd.org>
To:        David Syphers <dbsypher@uchicago.edu>
Cc:        mobile@FreeBSD.ORG
Subject:   Re: configuring AmbiCom cardbus 
Message-ID:  <200101220605.f0M64xD02083@mass.dis.org>
In-Reply-To: Your message of "Sun, 21 Jan 2001 21:12:34 CST." <4.3.2.7.2.20010121210952.00bfb8b0@nsit-popmail.uchicago.edu> 

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multipart MIME message.

--==_Exmh_-1017557920
Content-Type: text/plain; charset=us-ascii

> At 07:19 PM 1/21/01 -0700, Warner Losh wrote:
> >In message <4.3.2.7.2.20010121190509.00c05f00@nsit-popmail.uchicago.edu> 
> >David Syphers writes:
> >: I'm running a 5-CURRENT snapshot from January 20.  I've built a kernel that
> >: includes cardbus, pccbb, miibus, and dc (for my AmbiCom 8100 DEC
> >
> >This sounds like a resource conflict problem.  OR a problem with our
> >implementation of the TI-1130.
> 
> Okay... let's pretend I don't know anything about setting up ethernet cards 
> under FreeBSD.  Which is actually a reasonable approximation of the 
> truth.  How would I figure out which resources are conflicting and make 
> them love each other?

You can't, really.  Try applying this patch and rebuild your kernel.  
It's ugly, but I (and a number of people, possibly including yourself) 
will need it until PCI resource management is fixed.



--==_Exmh_-1017557920
Content-Type: text/plain ; name="x"; charset=us-ascii
Content-Description: x
Content-Disposition: attachment; filename="x"

--- z/sys/dev/pci/pci.c	Fri Dec  8 14:10:52 2000
+++ .#pci.c.1.167	Sat Dec  9 14:09:07 2000
@@ -1174,6 +1174,31 @@
 	printf(" at %d:%d (no driver attached)\n",
 	       pci_get_slot(child),
 	       pci_get_function(child));
+
+	/*
+        * XXX - don't commit this!  Allocate any unclaimed resources, which
+        * breaks kld's for PCI devices after boot.
+        */
+	{
+		struct pci_devinfo *dinfo = device_get_ivars(child);
+		struct resource_list *rl = &dinfo->resources;
+		struct resource_list_entry *rle;
+
+		SLIST_FOREACH(rle, rl, link) {
+			if (!rle->res) {
+				int rid = rle->rid;
+				if (rle->type != SYS_RES_IRQ)
+					resource_list_alloc(rl, dev, child,
+							    rle->type, &rid, 0, ~0, 1, 0);
+				else
+					resource_list_alloc(rl, dev, child,
+							    rle->type, &rid, 0, ~0, 1,
+							    RF_SHAREABLE);
+			}
+		}
+	}
+
+
 	return;
 }
 

--==_Exmh_-1017557920
Content-Type: text/plain; charset=us-ascii

... every activity meets with opposition, everyone who acts has his
rivals and unfortunately opponents also.  But not because people want
to be opponents, rather because the tasks and relationships force
people to take different points of view.  [Dr. Fritz Todt]
           V I C T O R Y   N O T   V E N G E A N C E

--==_Exmh_-1017557920--




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-mobile" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200101220605.f0M64xD02083>