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

Objetivos

El TDA4VM de la AI-64 es heterogéneo: 2 Cortex-A72, 6 Cortex-R5F (3 pares), 2 DSP C66x, un C7x+MMA (~8 TOPS INT8) y 12 PRU. Linux los expone a través de remoteproc con carveouts de memoria reservados en el device tree. Vas a inventariar estos núcleos remotos y a iniciar un firmware RTOS firmado en un DSP.

Hardware

Código completo

# 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

Verificación esperada

La lista muestra varios remoteproc con nombres del tipo 4d00000.dsp (C66x) o 5d00000.r5f (R5F); tras el inicio, el estado pasa a running y las trazas serie del firmware aparecen en dmesg. La parada devuelve el estado a offline sin errores del kernel.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales