Date: Wed, 19 May 2004 08:28:11 -0400 From: John Baldwin <jhb@FreeBSD.org> To: freebsd-hardware@FreeBSD.org Cc: Gary Aitken <garya@dreamchaser.org> Subject: Re: resource recognition / allocation in drivers Message-ID: <200405190828.11057.jhb@FreeBSD.org> In-Reply-To: <40AA4D80.6000607@dreamchaser.org> References: <40AA4D80.6000607@dreamchaser.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 18 May 2004 01:53 pm, Gary Aitken wrote: > I've been beating my head against the wall trying to get my fbsd 4.5 to > use dec 21041 pci Ethernet cards (de device, pci/if_de.c driver). Not > being a kernel debugging guru, it's been slow. > > Turns out when pci_alloc_resource issues a call to resource_list_alloc > (kern/subr_bus.c), it calls resource_list_find, which fails (returns > null). The call is for a type of 04 (SYS_RES_IOPORT) and an rid of 0x10 > (PCI_CBIO). Instead of adding the resource when it is not found in the > list, the call fails and the device is effectively disabled. > Interestingly, this has the side effect (somehow) of preventing at least > one other network driver from working in my case, although ifconfig > shows them functioning. Not sure why this is so; removing the card > allows the other cards to function properly. > > My question is, what is the design philosophy regarding calls to > resource_list_find from resource_list_alloc? When should > resource_list_add be called? Should it have been called at some prior > point to set up all the resources a driver will be using? Is there a > particular driver I can look at to see how things *should* be coded? > > I know the cards work, and have worked under freebsd. I had one working > with an eth0 serial device installed for a leased line. That device > came out when I switched to dsl. I suspect that the eth0 driver somehow > added the resources to the list properly, so that when the de driver > went to allocate some more for itself, the find actually found something. > > Any help much appreciated. FreeBSD 4.5 doesn't allocate resources for a BAR that doesn't have its resources allocated by the BIOS. Try turning PnP OS off if you have it on to force the BIOS to allocate resources for all BARs. -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200405190828.11057.jhb>