It seems we get more and more expansion boards connected to Beagle's expansion connector. Different expansion boards might need different pin mux and other configuration changes in SW, e.g. in U-Boot and/or Linux kernel.
From the discussion at this list and at IRC we learned that especially the pin mux configuration is confusing again and again. It would be nice if we could avoid that each expansion board needs its own U-Boot and Kernel (<= recompilation, x binaries). So best would be to autodetect if and which expansion board is connected to Beagle and then configure it automatically by SW. Example is OMAP Linux kernel multi boot feature based on machine ID or Beagle rev Bx/rev C detection based on GPIO states.
But for this we need a way to make SW able to detect which expansion board is connected.
Idea was now to have something like an I2C EEPROM on *each* expansion board which can be read by SW to get an explicit ID from each board. This could use Beagle's i2c2 on the expansion connector (Overo could use i2c3, btw).
What do you think?
If you like this, what do we have to standardize to make this work?