Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Jan 2001 04:05:31 -0600
From:      "Steve Shoecraft" <sshoecraft@safepages.com>
To:        "'Nicolas Souchu'" <nsouch@alcove.fr>, "'John Baldwin'" <jhb@FreeBSD.org>
Cc:        "'Donald J . Maddox'" <dmaddox@sc.rr.com>, <freebsd-hackers@FreeBSD.org>
Subject:   RE: more info about: odd result of pci_read_config
Message-ID:  <001301c0845a$db047780$89ccdacf@max.home.org>
In-Reply-To: <20010121111903.B10148@ontario.alcove-int>

next in thread | previous in thread | raw e-mail | index | archive | help
> -----Original Message-----
> From: owner-freebsd-hackers@FreeBSD.ORG
> [mailto:owner-freebsd-hackers@FreeBSD.ORG]On Behalf Of Nicolas Souchu
> Sent: Sunday, January 21, 2001 4:19 AM
> To: John Baldwin
> Cc: Donald J . Maddox; freebsd-hackers@FreeBSD.org
> 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
>
> --
> Nicolas.Souchu@alcove.fr
> Alcôve - Open Source Software Engineer - http://www.alcove.fr
>
>
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-hackers" in the body of the message
>



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?001301c0845a$db047780$89ccdacf>