🛠 Remoteproc : inventorier et démarrer les co-processeurs R5F et C66x
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
- 1 BeagleBone AI-64 con imagen Debian BeagleBoard o Ubuntu TI Edge AI
- Firmware RTOS del TI Processor SDK RTOS para J721E (imágenes firmadas x509)
- Copia de seguridad de tu configuración antes de manipular /sys
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
- Firmware no firmado: la cadena de arranque K3 exige imágenes firmadas (envoltura x509); un binario sin firmar es rechazado por el cargador de procesadores remotos.
- Índices remoteproc cambiantes: las numeraciones remoteproc0/1 dependen del kernel y del orden de sondeo (probe) — siempre scripta por nombre de núcleo, nunca por índice.
- Kernel mainline antiguo: el carveout C6x estuvo invertido durante mucho tiempo en el DTS (corregido por el commit 1a314099b755); actualiza antes de concluir que hay un defecto de hardware.
- Crash TISCI raro durante el encendido de la GPU (aproximadamente 1 arranque de cada 1000, issue #44): Mbox timedout al arrancar = imagen a actualizar, no entres en pánico.
- Los nombres exactos de los archivos de firmware varían según el SDK: consulta la documentación del TI Processor SDK J721E de TU versión.
Otros tutoriales para esta placa
- 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
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash