misc questions about the device&driver arch
avalonwallace at gmail.com
Sun May 21 23:29:12 PDT 2006
On 5/22/06, Warner Losh <imp at bsdimp.com> wrote:
> From: "william wallace" <avalonwallace at gmail.com>
> Subject: Re: misc questions about the device&driver arch
> Date: Sun, 21 May 2006 16:08:00 +0800
> > On 5/21/06, Warner Losh <imp at bsdimp.com> wrote:
> > > nope. It may be called once per bus instance per driver, if the bus
> > > is not self-identifying. If the bus is self-idntiying, chances are
> > > that it will not be called. pci never calls its children drivers'
> > > identify routine because it already knows all the children on the bus
> > > and doesn't need the leaf drivers to go find instances of themselves.
> > > the isa bus driver, on the other hand, does call the identify routine
> > > so that pre-plug and play standard device enumeration can happen.
> > >
> > > Warner
> > the defination of self-enumerating
> > 1
> > what does self-enumerating mean ?
> self-enumerating or self-identifying mean the same thing. The bus
> driver is able to know all of its children. This may be because
> there's a method to finding them, or the bus may have perfect
> knowledge of what is there by other means.
> PCI, CardBus, PC Card, USB, Firewire, and EISA are all examples of
> self enumerating busses. You can know that you have a device, and the
> device can provide information about its existance. ISA is the
> odd-man out. It isn't possible to know when you have an ISA card in a
> given slot. There are some add-on hacks to be able to discover the
> devices. ISAPNP is one such hack. Really old Realtek adapters have
> another. 3Com cards have yet another. It was for these old, pre-plug
> and play enumeration techniques that the identify routine was
o ,really thanx,first time to identity the meaning of IDENTIFY
> > 2
> > does that mean the pci way of looping through configuration space ?
> > 3
> > does that happen in start time and hotplug time ?
> That happens at attach time. Cardbus right now has a private protocol
> between the card bus bridge (cbb) and the bus to know when there's a
> new card in a slot and to enumerate that bus.
i think that 's because in cardbus protocol ,one bus only have one
device ,so does pci express port (port :device =1:1)
> > 4
> > pci doesn't need the leaf drivers to go find instances of themselves.
> > does that mean that self-enumerating device system use the top down way ,
> > and the non- self-enumerating device system use the down -top way
> Right. FreeBSD's device enumeration model is top down.
> > 5
> > i guest pci hot plug need some magic to identify or emulae(loop pci sons )
> Yes. The hot plug bridge would need to tell its child bus about
> changes to the bus. This might mean the child bus does a full
> enumeration, or a partial one. Cardbus does a full enueration, but
> each card bus slot is its own bus.
> > BTW
> > There r so many hot plug specifications ,SHPC hotplug ,PCIE hotplug
> > and compaq hotplug and so on , in linux ,they use different driver for
> > different pci
> > bridge
> > so i think for us to implement in freeBSD ,just do 1 by 1:)
> Yes. We'd need todo something similar in FreeBSD. Chances are that
> the best way to approach this would be to add hotplug functionality
> directly to the pci bus, and teach cardbus the new protocol.
so there will be a long list of methods in the future hotplug pci
driver and pcib driver
SHPC interface ..
IBM interface ....
thanks ,sir !
we who r about to die,salute u!
More information about the freebsd-hackers