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

Objectives

The TDA4VM on the AI-64 is heterogeneous: 2 Cortex-A72, 6 Cortex-R5F (3 pairs), 2 C66x DSPs, one C7x+MMA (~8 TOPS INT8), and 12 PRUs. Linux exposes these via remoteproc with memory carveouts reserved in the device tree. You will inventory these remote cores and start a signed RTOS firmware on a DSP.

Hardware

Complete Code

# 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

Expected Verification

The list displays several remoteproc entries with names like 4d00000.dsp (C66x) or 5d00000.r5f (R5F); after start, the state changes to running and the firmware's serial traces appear in dmesg. Stopping returns the state to offline without kernel errors.

Common Errors

Other tutorials for this board

Code examples for this board

← Back to the board 🛠 All tutorials