🛠 Remoteproc : inventorier et démarrer les co-processeurs R5F et C66x
Objectifs
Le TDA4VM de l'AI-64 est hétérogène : 2 Cortex-A72, 6 Cortex-R5F (3 paires), 2 DSP C66x, un C7x+MMA (~8 TOPS INT8) et 12 PRU. Linux les expose via remoteproc avec des carveouts mémoire réservés dans le device tree. Vous allez inventorier ces cores distants et démarrer un firmware RTOS signé sur un DSP.
Matériel
- 1 BeagleBone AI-64 sous image Debian BeagleBoard ou Ubuntu TI Edge AI
- Firmware RTOS du TI Processor SDK RTOS pour J721E (images signées x509)
- Sauvegarde de votre config avant de manipuler /sys
Code complet
# 1. Inventaire des cores distants (C66x, R5F, C7x selon l'image)
for r in /sys/class/remoteproc/remoteproc*; do
echo "$r name=$(cat $r/name) state=$(cat $r/state)"
done
# 2. Démarrer un firmware RTOS sur un DSP C66x (nom d'exemple, voir SDK)
sudo cp j7-boneai-remoteproc.x509 /lib/firmware/
echo j7-boneai-remoteproc.x509 | sudo tee /sys/class/remoteproc/remoteproc1/firmware
echo start | sudo tee /sys/class/remoteproc/remoteproc1/state
cat /sys/class/remoteproc/remoteproc1/state # attendu : running
# 3. Le printf du DSP remonte dans le log noyau (RPMsg/virtio)
sudo dmesg | tail -20
# 4. Arrêt propre
echo stop | sudo tee /sys/class/remoteproc/remoteproc1/state
Vérification attendue
La liste affiche plusieurs remoteproc avec des noms de type 4d00000.dsp (C66x) ou 5d00000.r5f (R5F) ; après start, l'état passe à running et les traces série du firmware apparaissent dans dmesg. L'arrêt ramène l'état à offline sans erreur noyau.
Erreurs fréquentes
- Firmware non signé : la chaîne de boot K3 exige des images signées (enveloppe x509) ; un binaire brut est refusé par le remote processor loader.
- Indices remoteproc qui changent : les numérotations remoteproc0/1 dépendent du noyau et de l'ordre de probe — toujours scripter par nom de core, jamais par index.
- Noyau mainline ancien : le carveout C6x a longtemps été inversé dans le DTS (corrigé par le commit 1a314099b755) ; mettre à jour avant de conclure à un défaut matériel.
- Crash TISCI rare au power-up GPU (environ 1 boot sur 1000, issue #44) : Mbox timedout au boot = image à mettre à jour, pas de panique.
- Les noms de fichiers firmware exacts varient selon le SDK : se référer à la doc TI Processor SDK J721E de VOTRE version.
Autres tutoriels pour cette carte
- Flasher l'image officielle et démarrer la BeagleBone AI-64
- Faire clignoter une LED sur la broche P8_03 avec libgpiod
- Surveiller la température et l'alimentation du TDA4VM
- Réseau : Ethernet Gigabit unique et module Wi-Fi en M.2 E-key
- Caméra MIPI CSI et encodage H.264 matériel via GStreamer
- Inférence de réseau de neurones sur le C7x+MMA avec edgeai-tidl-tools
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash