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_at_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)Received on Tue Jun 03 2003 - 22:29:06 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:10 UTC