Don Fry wrote:
So how does the driver distinguish between a valid, but incorrect MAC
address, and the 'correct' MAC address? The incorrect one that is the
value that just happened to be in the uninitialized volatile registers,
and the correct address which some magic platform means loaded into the
same, but this time initialized, volatile registers.
You have to notice that certain platform-specific attributes are
present, that tells your code to search in <this magic place> rather
than the standard place for MAC address.
For example, some Compaqs have a magic MAC address location (this might
even be pcnet32), and one solution proposed was looking for the
platform's DMI table identifiers. Another solution -- working -- was to
load the MAC address registers when the driver loads, and just hope it
is a correct address.
Jeff
|