Good examples. Note that the "daughtercard installed" cases generalize
somewhat ... it's not uncommon to do like DRAM sticks do with SPD EEPROMS,
and have a cheap EEPROM identifying characteristics of that card, since
different cards need different initialization/setup.
However, I think a slightly more common practice in current embedded
Linux systems is to build custom kernels that know which daughtercard(s)
are available. That's mostly what gets pushed upstream, anyway...
ISTR that Gumstix distro kernels use a more retro scheme to identify what's
in the card stack: they poke at various peripheral addresses to see if the
device on a given card is there. In the PC space, that's what "ISA Legacy
Drivers" do, albeit at the level of individual peripherals, not cards.
- Dave
--