🛠 Remoteproc : inventorier et démarrer les co-processeurs R5F et C66x
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
- 1 BeagleBone AI-64 running a Debian BeagleBoard or Ubuntu TI Edge AI image
- RTOS firmware from the TI Processor SDK RTOS for J721E (signed x509 images)
- Backup of your configuration before manipulating /sys
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
- Unsigned firmware: The K3 boot chain requires signed images (x509 envelope); a raw binary is rejected by the remote processor loader.
- Changing remoteproc indices: remoteproc0/1 numbering depends on the kernel and probe order — always script by core name, never by index.
- Older mainline kernel: The C6x carveout was long inverted in the DTS (fixed by commit 1a314099b755); update before concluding it is a hardware defect.
- Rare TISCI crash during GPU power-up (approx. 1 boot in 1000, issue #44): Mbox timedout at boot = image needs updating, no panic.
- Exact firmware file names vary depending on the SDK: refer to the TI Processor SDK J721E documentation for YOUR version.
Other tutorials for this board
- 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
Code examples for this board
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash