Skip site navigation (1)Skip section navigation (2)
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>