Hi,
There exists cape expansion EEPROM format [1]. However, currently only first 250 bytes are in use. The question is the following. Is it possible to extend this format to allow storing FDT overlay for the particular cape? Then u-boot could read the overlay and patch the main board FDT.
Alternatively, u-boot could recover the used peripheral via the “Pin usage” field and then enable devices using board_fix_fdt()
[1] https://elinux.org/Beagleboard:Cape_Expansion_Headers#Cape_EEPROM_Contents