Trimming the default /boot/device.hints

John Baldwin jhb at freebsd.org
Wed Jan 28 14:20:53 PST 2009


On Wednesday 28 January 2009 4:43:07 pm M. Warner Losh wrote:
> In message: <200901281540.30546.jhb at freebsd.org>
>             John Baldwin <jhb at FreeBSD.org> writes:
> : On Wednesday 28 January 2009 2:24:11 pm M. Warner Losh wrote:
> : > In message: <p06240807c5a64df6e188@[128.113.24.47]>
> : >             Garance A Drosehn <gad at FreeBSD.org> writes:
> : > : At 11:39 PM -0700 1/27/09, M. Warner Losh wrote:
> : > : >I don't like this change.  However, you've hit on part of the reason 
I
> : > : >don't like the change.  I don't think it goes far enough, and at the
> : > : >same time loses valuable history.
> : > : >
> : > : >To address the latter, I'd do a cp GENERIC.hints LEGACY.hints and add
> : > : >comments to the top that this is for systems that don't have PNPBIOS
> : > : >or ACPI or that there's problems with those.
> : > : 
> : > : Admittedly I know almost nothing about the hints themselves, but I
> : > : like this idea.  We already supply multiple kernel files, even though
> : > : everything is documented in NOTES.  We do it because it's convenient
> : > : and it costs us nothing.
> : > : 
> : > : We could even install the LEGACY.hints file as /boot/legacy.hints,
> : > : and then if someone has a problem we can say  "go into the boot
> : > : loader, and type 'include /boot/legacy.hints'.  If that doesn't
> : > : solve your problem, then your problem is not related to this big
> : > : change to /boot/device.hints".  And if it *does* solve their problem,
> : > : they can just look at 'dmesg' after they boot up, and get a good idea
> : > : of what lines they need to add to /boot/device.hints.
> : > : 
> : > : I don't see how this would cost us much (compared to *not* having a
> : > : legacy.hints file), and yet it might make things much easier if it
> : > : turns out that too many hints had been removed.
> : > 
> : > Actually, that's a very clever idea you've stumbled into.  The boot
> : > loader already know if acpi is involved, and could trivially be
> : > augmented to know if there's PNP data.  If neither of them are in
> : > place, it could automatically load legacy.hints...
> : > 
> : > But the cheap 'get the file there' is a good idea.
> : 
> : What I'm worried about I guess is how long we have to maintain this.
> 
> Forever.

Ah, yes, that is what I'd like to avoid. :(

> : Also, why do we have hints for ed0 but not ex0?
> 
> ex0 has an identify routine, and ed0 doesn't.

fe0 doesn't have an identify routine nor hints in the default set.  We don't 
ship hints for sound blaster ISA cards by default either not all of which are 
PnP (mine wasn't).  The point being that the set of ISA adapters with hints 
in the current device.hints is an arbitrary subset.

> : That is, the current list is 
> : rather arbitrary and only caters to certain rare hardware and not to other 
> : rare hardware.  I'd rather just do a simple clean break and drop all of 
the 
> : rare hardware.  I don't really think there will be anyone who actually 
> : _needs_ to include /boot/legacy.hints, but we will be stuck with this very 
> : arbitrary file forever.
> 
> Why does it matter that we have to keep this around forever?  Why not
> clean up the drivers from GENERIC then?  It seems like we're only
> solving part of the problem...

The motivation for cleaning up hints is that our default set of hints has 
resulted in extra fallout for other folks in combination with my hint-wiring 
changes which I only committed after several people asked me to commit them.  
To that end, I am simply trying to engage in the smallest possible change 
that is also self-consistent.  Dropping all non-PnPBIOS/ACPI hints seems to 
fit that bill.

> : Also, none of the hints I'm proposing to remove are relevant to the 
> : non-PnPBIOS case.  They are all devices that the PnPBIOS would not 
enumerate 
> : anyway.
> 
> Not necessarily.  Many of them would be enumerated for built-in
> devices (as opposed to ISA add-in cards).

PNP devices are not PNPBIOS devices.  No BIOS is going to have an ed0 device 
or ie0 device in the PNPBIOS table or ACPI namespace.

> : The PnPBIOS related hints are an entirely separate ball of wax from ISA 
NICs.  
> : For the PnPBIOS case I could possibly see the case for a legacy.hints 
(though 
> : I'd rather have an x86 isa0 driver that added suitable devices explicitly 
if 
> : there was no ACPI or PnPBIOS), but the primary motivation for the recent 
> : changes to the hints code was to allow for the graceful coexistence of 
those 
> : hints with ACPI and PnPBIOS.  That is, it should be perfectly fine to use 
> : that sort of legacy.hints by default, and not require the users to 
manually 
> : load it for the non-(ACPI or PnPBIOS) case.  In that case, legacy.hints 
> : basically degenerates back into device.hints, which is basically what I 
> : proposed at the very beginning.
> 
> The problem is that we still need to have a minimal device.hints for
> things like the atkbdc and fdc, plus the hack for uart.  That's why I
> suggested copying the current device.hints to legacy.hints (maybe
> augmenting it to be more real) and then slashing device.hints to the
> bone.

These are all devices that I count as PNPBIOS devices.  I can put back the fd0 
and fd1 hints, but the rest of the devices being removed are all non-PNPBIOS 
devices.  To me at least there is a distinction.

-- 
John Baldwin


More information about the freebsd-arch mailing list