🛠 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 ».

Objetivos

Comprender el ecosistema de *capes* que hizo famosa a la BBB: dos conectores de 46 pines, apilables en 4 niveles, cada *cape* lleva una EEPROM de identificación (direcciones I2C 0x54 a 0x57) que se lee al arrancar para configurar el *pinmux*. Manipularás el *capemanager* histórico (/sys/devices/platform/bone_capemanager/slots) de las imágenes antiguas, su equivalente moderno *configfs*, y las tres trampas de hardware del SRM: pines SYSBOOT en P8, eMMC en los pines GPMC y *back-powering* del *framer* HDMI.

Material

Código completo

# 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"

Verificación esperada

Con una *cape* oficial, dmesg muestra el nombre del *capedriver* cargado automáticamente (lectura de la EEPROM). Un *overlay* casero aparece en slots (imagen antigua) o en configfs (imagen reciente), y el dispositivo que describe se vuelve visible bajo /sys/devices/platform o /sys/bus.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales