🛠 Capes historiques : capemanager, EEPROM d'identification et pièges des broches

BeagleBone Black (TI Sitara AM3358) · avance · Schéma : IMG-beaglebone-black-avance-1-capes-legacy-capemanager-eeprom.svg — pile de 4 capes empilées sur les nappes P8/P9 d'une BeagleBone Black, EEPROM I2C 0x54-0x57 en médaillon, zone P8_27 à P8_46 barrée en rouge avec mention « broches SYSBOOT — ne pas piloter ».

Objectives

Understand the cape ecosystem that built the BBB's reputation: two 46-pin headers, stackable up to 4 levels, with each cape carrying an identification EEPROM (I2C addresses 0x54 to 0x57) read at boot to configure the pinmux. You will work with the legacy capemanager (/sys/devices/platform/bone_capemanager/slots) found on older images, its modern configfs equivalent, and the three hardware pitfalls of the SRM: SYSBOOT pins on P8, eMMC on the GPMC pins, and HDMI framer back-powering.

Hardware

Full code

# 1. Lire l'EEPROM d'une cape branchée (bus I2C2, adresses 0x54-0x57)
sudo i2cdump -y 2 0x54 b     # nom et pinmux de la cape en ASCII

# 2. Images anciennes (capemanager U-Boot) : lister et activer un slot
cat /sys/devices/platform/bone_capemanager/slots
dtc -O dtb -o macape-00A0.dtbo -b 0 -@ macape.dts
sudo cp macape-00A0.dtbo /lib/firmware/
echo macape:00A0 | sudo tee /sys/devices/platform/bone_capemanager/slots

# 3. Images modernes : configfs (le capemanager a disparu des noyaux récents)
sudo mkdir -p /sys/kernel/config/device-tree/overlays/macape
cat macape-00A0.dtbo | sudo tee /sys/kernel/config/device-tree/overlays/macape/dtbo
ls /sys/kernel/config/device-tree/overlays/

# 4. Traces de lecture de l'EEPROM au boot
sudo dmesg | grep -iE "cape|eeprom|slot"

Expected verification

With an official cape, dmesg displays the name of the capedriver loaded automatically (EEPROM read). A custom overlay appears in slots (older image) or in configfs (recent image), and the device it describes becomes visible under /sys/devices/platform or /sys/bus.

Common errors

Other tutorials for this board

Code examples for this board

← Back to the board 🛠 All tutorials