Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Sep 2006 14:54:01 +0400
From:      Ruslan Ermilov <ru@freebsd.org>
To:        Alok Barsode <namaskar_alok@yahoo.co.in>
Cc:        freebsd-new-bus@freebsd.org
Subject:   Re: Device enumeration
Message-ID:  <20060928105401.GD4708@rambler-co.ru>
In-Reply-To: <20060928102437.93193.qmail@web8912.mail.in.yahoo.com>
References:  <20060928102437.93193.qmail@web8912.mail.in.yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--+B+y8wtTXqdUj1xM
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Sep 28, 2006 at 03:24:37AM -0700, Alok Barsode wrote:
> Hi,
> I am a newbie working on FreeBSD 4.10.
>=20
> I am a bit confused between  i386/conf/GENERIC and
> i386/conf/GENERIC.hints.=20
>=20
> Does a device driver's probe/attach routine is invoked
> when a enty is made for it in the GENERIC file?=20
> for example an enty in the GENERIC file will be :=20
> device  nge    # NatSemi DP83820 gigabit Ethernet =20
> Does the probe routine in if_nge.c invoked when the
> kernel encounters the above entry?=20
>=20
No.  The magic is in the following line in if_nge.c:

DRIVER_MODULE(if_nge, pci, nge_driver, nge_devclass, 0, 0);

It attaches the nge_driver to the pci bus.

> How can I probe/attach a device which is not
> self-identifying? Like a memory mapped device? Does an
> entry in the GENERIC file make sure the probe/attach
> function will be called for it?=20
>=20
Like ISA non-PnP devices?

> How can I identify where in the device hierarchy is it
> located?
>=20
On modern FreeBSD versions, 5,x and 6.x, there's a devinfo(8)
utility that allows to retrieve this kind of information.

> The device is not connected to any BUS. so
> will it be a independent device?=20
>=20
I think you'll have to use some kind of a bus.  When I
worked on a port of adm5120 for NetBSD, we used the obio
bus which stands for the "onboard I/O" and is not a real
bus.  The configuration on that bus was static.

> In GENERIC.hints a device's bus, port,irq are
> mentioned. What is the actual purpose of doing so?
>=20
This is for legacy non-PnP ISA devices mostly, and
for some slave devices, like floppy drivers attached
to a floppy controller, and PS/2 mouse and AT keyboard
to the AT keyboard controller:

$ grep -w at GENERIC.hints | grep -vw "isa"
hint.fd.0.at=3D"fdc0"
hint.fd.1.at=3D"fdc0"
hint.atkbd.0.at=3D"atkbdc"
hint.psm.0.at=3D"atkbdc"

GENERIC.hints doesn't exist in 4.10, by the way.


Cheers,
--=20
Ruslan Ermilov
ru@FreeBSD.org
FreeBSD committer

--+B+y8wtTXqdUj1xM
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (FreeBSD)

iD8DBQFFG6nJqRfpzJluFF4RAsrMAJ9bGBrEYlClPclCTLqN2f8XWMniFQCfQh5e
NKaOu/prfcATBa9RiZiCVuM=
=ltgk
-----END PGP SIGNATURE-----

--+B+y8wtTXqdUj1xM--



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