[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Any Rules for Behavior of bus numbers changing?



Ed,

the spec gives any means for a driver and an OS to handle the
situation, but says nothing about driver behaviour explicitly.
It is assumed that all the devices are enumerated anew any time
the system boots up, and generally there is no need to store
(bus,dev[,fn]) information on a non-volatile storage. Exception
(and most unsettling headache) are Ethernet NIC cards with no
means of self-identification: drivers need to store somewhere
the MAC address for such a card and usually do so by putting
the MAC address along with bus,dev,fn somewhere in registry.
Each IEEE-compliant Ethernet NIC card must have the
IEEE-certified Ethernet address hardcoded, which is unique in
all the world. I have no idea why the theory and the practice
differ at this point and do the cards supplied with such drivers
really have no unique address hardcoded :(.

Also, the ACPI defines quite a wide range of situations where
devices can change their location on a bus (hot insertions and
removals as well as insertions and removals in different sleep
states), hence ACPI-compliant OS must not have such drivers.

Regards,
Alexander Bezrukov

> We are seeing some cards Windows drivers not work because
> their bus number has changed between boot cycles, for instance
> when a card with a bridge on it is installed and enumerated before
> the card in question. 
> 
> Is there anything in the spec about how a driver should be able
> to respond when it's card gets located on a different bus than the
> one it was on during it's installation?
> 
> thanks,  
> 
> Ed Collins - Unisys Server Development
> 25725 Jeronimo,    Mission Viejo, 92691
> Phone 949.380.5816      Net2 656.5816
> Pager  949.587.2076