How disable attachment of sio(4) driver to device?

M. Warner Losh imp at bsdimp.com
Fri Oct 21 10:36:52 PDT 2005


In message: <200510211216.37814.jhb at freebsd.org>
            John Baldwin <jhb at FreeBSD.ORG> writes:
: But you could hack the sio(4) driver to check its IO port and return ENXIO if 
: it has a certain value, for example.

Yes.  You could also do that.  I have a tree somewhere that has some
changes in this direction, but I was unsatisified with it.  I set out
to solve the 'I want SIO0 to be defined as PORT_B, since that's the
only one my server exports via acpi, how the heck do I know what
adress it is at, really?' problem too.

devinfo says:

    sio0 pnpinfo _HID=PNP0501 _UID=1 at handle=\_SB_.PCI0.PX40.UAR1
    sio1 pnpinfo _HID=PNP0501 _UID=2 at handle=\_SB_.PCI0.PX40.UAR2

I'd like to be able to say that sio0 is at handle=\_SB_.PCI0.PX40.UAR2
rather than some arbitrary address.  Or that bge1 is at

            bge0 pnpinfo vendor=0x14e4 device=0x16a6 subvendor=0x14e4 subdevice=0x8009 class=0x020000 at slot=3 function=0 handle=\_SB_.PCI0.G0PA.LAN0
              miibus0
                brgphy0 pnpinfo oui=0x818 model=0x16 rev=0x2 at phyno=1
            bge1 pnpinfo vendor=0x14e4 device=0x16a6 subvendor=0x14e4 subdevice=0x8009 class=0x020000 at slot=4 function=0 handle=\_SB_.PCI0.G0PA.LAN1

either at pci2.4.0 *OR* at handle=\_SB_.PCI0.G0PA.LAN1 (or even
handle=LAN1).  So there'd need to be some kind of bus specific mapping
function that would say true or false if a given device_t on that bus
matched the string presented.

You could then say that the device at handle=UAR1 belongs to mydev3,
and sio would never even be given a chance to bid on it.

I'm not sure how to work this into the current hints paradigm...

Warner


More information about the freebsd-hackers mailing list