Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Jun 2003 00:29:07 -0700
From:      "David P. Reese Jr." <daver@gomerbud.com>
To:        Nicolas Souchu <nsouch@free.fr>
Cc:        current@freebsd.org
Subject:   Re: viapropm doesnt like sys/dev/pci.c rev 1.214
Message-ID:  <20030604072907.GA10742@tombstone.localnet.gomerbud.com>
In-Reply-To: <20030604072931.E33869@armor.free.fr>
References:  <20030602222009.A16160@armor.free.fr> <XFMail.20030603015436.conrads@cox.net> <20030603175430.GA4039@tombstone.localnet.gomerbud.com> <20030604072931.E33869@armor.free.fr>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jun 04, 2003 at 07:29:31AM +0000, Nicolas Souchu wrote:
> On Tue, Jun 03, 2003 at 10:54:30AM -0700, David P. Reese Jr. wrote:
> 
> [...]
> > : The datasheet states that the command bits are RW but "fixed at 0".
> > 
> > A snip of code from sys/dev/pci/pci.c:pci_enable_io_method():
> > 
> >         pci_set_command_bit(dev, child, bit);
> >         command = PCI_READ_CONFIG(dev, child, PCIR_COMMAND, 2);
> >         if (command & bit)
> >                 return (0);
> >         device_printf(child, "failed to enable %s mapping!\n", error);
> >         return (ENXIO);
> > 
> > Because the viapropm's command register bits will always read as zero,
> > this code will always fail when trying to enable port mapping.
> > 
> > Whatever problems viapropm may have, it is the new pci code that prevents it
> > from attaching.  It is not the fault of anything in sys/pci/viapm.c.
> 
> And I personally don't know how to fix it except by an option with an
> ifdef to workaround it.

How about adding another flag to bus_alloc_resource() which would signal
that we are not to check the value of the command register after calling
pci_set_command_bit().

RF_WILLFAIL?

After pci_enable_io_method() gets swallowed into pci_alloc_resource(),
this would be pretty easy because the flag would be in scope when we
check the value of the command register.

I can do so this weekend if anyone thinks this is worthwhile.

-- 

   David P. Reese Jr.                                      daver@gomerbud.com
   --------------------------------------------------------------------------
   It can be argued that returning a NULL pointer when asked to allocate
   zero bytes is a silly response to a silly question.
                                         -- FreeBSD manual page for malloc(3)



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