Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Feb 2005 12:57:12 -0500
From:      John Baldwin <jhb@FreeBSD.org>
To:        freebsd-arch@FreeBSD.org
Cc:        arch@FreeBSD.org
Subject:   Re: Better device probe values
Message-ID:  <200502231257.12798.jhb@FreeBSD.org>
In-Reply-To: <20050222.143230.41648746.imp@bsdimp.com>
References:  <20050222.143230.41648746.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 22 February 2005 04:32 pm, Warner Losh wrote:
> Greetings,
>
> >From time to time, the concept of a binary driver has been floated.
>
> The idea would be that a vendor could put out a binary driver disk
> when there were bugs in the drivers for a specific release so that
> users impacted by those bugs could still, for example, install that
> specific release.
>
> However, most of the drivers in the base system do not allow this to
> happen because they return 0.
>
> At the same time, we have a number of generic drivers in the tree that
> have been using ad-hoc values to make sure that the right driver gets
> attached (see for example pci and acpi pci, and friends).  We also
> have some drivers that overlap ranges of devices (eg, ncr and sym
> drivers).
>
> So, I'd like to standardize on some names, and thought I'd post here
> my first cut at the names.  Let's not get too far off in the weeds,
> since names is a prime bike-shed topic[*].  I'll likely ignore most of
> that part of the discussion, and focus on the more technical and/or
> political side of things.  If possible, I'd like to have this wrapped
> up in time for 5.4, but I do understand that time is extremely short
> for that.
>
> /**
>  * Some convenience defines for probe routines to return.  These are
>  * just suggested values, and there's nothing magical about them.
>  * BUS_PROBE_SPECIFIC is for devices that cannot be reprobed, and that
>  * no possible other driver may exist (typically legacy drivers who
>  * don't fallow all the rules, or special needs drivers).  BUS_PROBE_VENDOR
>  * is the suggested value that vendor supplied drivers use.  This is
>  * for source or binary drivers that are not yet integrated into the
> FreeBSD * tree.  Its use in the base OS is prohibited.  BUS_PROBE_DEFAULT
> is * the normal return value for drivers to use.  It is intended that
> nearly * all of the drivers in the tree should return this value.
>  * BUS_PROBE_LOW_PRIORITY are for drivers that have special requirements
>  * like when there are two drivers that support overlapping series of
>  * hardware devices.  In this case the one that supports the older part
>  * of the line would return this value, while the one that supports the
> newer * ones would return BUS_PROBE_DEFAULT.  BUS_PROBE_GENERIC is for
> drivers * that wish to have a generic form and a specialized form, like is
> done * with the pci bus and that acpi pci bus.  BUS_PROBE_HOOVER is for
> those * busses that implement a generic device placeholder for devices on
> the * bus that have no more specific driver for them (aka ugen).
>  */
> #define BUS_PROBE_SPECIFIC	0	/* Only I can use this device */
> #define BUS_PROBE_VEDNOR	(-10)	/* Vendor supplied driver */
> #define BUS_PROBE_DEFAULT	(-20)	/* Base OS default driver */
> #define BUS_PROBE_LOW_PRIORITY	(-40)	/* Older, less desirable drivers */
> #define BUS_PROBE_GENERIC	(-100)	/* generic driver for dev */
> #define BUS_PROBE_HOOVER	(-500)	/* Generic dev for all devs on bus */
>
> Comments?
>
> Warner
>
> [*] And I really don't like the idea of there being a 20 message
> sub-thread on HOOVER vs VACUUM vs KIRBEE or is that KIRBE, and it was
> really so and so that invented the vacuum, etc.  Please disappoint me
> by not having one :-)

Several typos, but that's minor.  Sounds ok to me.  Note that I think 
BUS_PROBE_GENERIC might not really be enough though (PCI bridge drivers are 
actually somewhat tricky, on x86 for PCI-PCI you have ACPI, PCIBIOS, MPTable, 
and generic for example), but for more tricky cases we can still use numeric 
values.

s/HOOVER/ROOBA/ :)

-- 
John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org



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