> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On Behalf Of Nicolas Souchu
> Sent: Sunday, January 21, 2001 4:19 AM
> To: John Baldwin
> Cc: Donald J . Maddox; [EMAIL PROTECTED]
> Subject: Re: more info about: odd result of pci_read_config
>
>
> On Sat, Jan 20, 2001 at 04:35:11PM -0800, John Baldwin wrote:
> > Look in /sys/compile/<foo> after compiling a kernel, it
> should be in pci_if.*
> > It's a function that ues kobj to lookup the pci_read_config
> method in the
> > parent bus.  Look in the PCI code to find the real
> pci_read_config...
> >
> > >From sys/dev/pci/pci.c:
> >
> >         DEVMETHOD(pci_read_config,      pci_read_config_method),
> >
> > static u_int32_t
> > pci_read_config_method(device_t dev, device_t child, int
> reg, int width)
> > {
> >         struct pci_devinfo *dinfo = device_get_ivars(child);
> >         pcicfgregs *cfg = &dinfo->cfg;
> >
> >         return PCIB_READ_CONFIG(device_get_parent(dev),
> >                                 cfg->bus, cfg->slot, cfg->func,
> >                                 reg, width);
> > }
>
> On -stable, it calls directly pci_cfgread() with the cfg.
>
> My viapm driver is a kmodule. Could it be that PCI_READ_CONFIG is not
> correctly resolved and returns ENXIO which is 0x6?

That's exactly whats going on here.  Have you turned on BUS_DEBUG (or mebbe
DEBUG_BUS) in /kern/subr_bus.c ?

Also, I have a userland app that loads and runs your kernel module - it
makes it alot easier to debug this kinda stuff.  Even does device file I/O.
If you want, you can check it out.

>
> I'll try to wire it in the kernel.
>
> Nicholas
>
> --
> [EMAIL PROTECTED]
> Alcôve - Open Source Software Engineer - http://www.alcove.fr
>
>
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hackers" in the body of the message
>



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to