🛠 Remoteproc : inventorier et démarrer les co-processeurs R5F et C66x

BeagleBone AI-64 (TI TDA4VM / J721E) · intermediaire · Schéma : IMG-beaglebone-ai64-intermediaire-3-remoteproc-demarrer-r5f-c66x.svg — carte d'architecture du TDA4VM (2 Cortex-A72, 3 paires Cortex-R5F, 2 DSP C66x, C7x+MMA, 12 PRU) avec des flèches « start » depuis Linux vers un core C66x via /sys/class/remoteproc.

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

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

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels