🛠 Console série et JTAG du CM5 : l'empreinte de debug JST-SH et les points de test

Raspberry Pi Compute Module 5 (compute-module-5) · avance · Schéma : IMG-compute-module-5-avance-3-debug-uart-jtag-cm5.svg — CM5 vu de dessus avec l'empreinte de debug JST-SH 3 broches 1 mm (BM03B-SRSS-TB) surlignée, les points de test TP35/TP36 (TX/RX), les pastilles JTAG et les pads d'alimentation/boot USB sur points de test ; un convertisseur USB-série 3,3 V y est branché, un terminal affichant le log de boot.

Objectifs

Le CM5 est le premier Compute Module pensé pour le debug sans carte mère complète : la datasheet (Annexe A) décrit une empreinte UART de debug JST-SH 3 broches au pas de 1 mm (réf. connecteur BM03B-SRSS-TB), des points de test TX/RX répétés (TP35/TP36), des points de test JTAG, et des pads d'alimentation et de boot USB sur points de test pour flasher un module sans mobiliser les connecteurs 2 × 100 broches. Ce tuto : sortir la console noyau sur cet UART, capturer le log de boot complet, et poser la base d'un debug JTAG.

Matériel

Code complet

# --- Côté CM5 : activer la console série ---
sudo tee -a /boot/firmware/config.txt >/dev/null <<'EOF'
enable_uart=1
cmdline=console=serial0,115200 console=tty1
EOF
sudo reboot

# --- Côté hôte : capturer le boot complet ---
sudo apt install -y picocom
picocom -b 115200 /dev/ttyUSB0          # log de boot puis shell
# (sous minicom : minicom -D /dev/ttyUSB0 -b 115200)

# --- Vérifier le console déclarée par le noyau ---
cat /proc/cmdline
cat /sys/class/tty/ttyAMA0/device/driver/driver 2>/dev/null || true

# --- Base JTAG (points de test de l'Annexe A) avec un adaptateur CMSIS-DAP ---
cat > /tmp/jtag.cfg <<'EOF'
adapter driver cmsis-dap
transport select jtag
target extended-memory-access enabled
EOF
sudo openocd -f /tmp/jtag.cfg -c 'init; halt; reg pc; resume; shutdown'

Vérification attendue

Sur le terminal à 115200 bauds défilent le firmware puis les messages du noyau (console=serial0,115200 dans /proc/cmdline), et un login apparaît — la console série fonctionne même quand HDMI/SSH sont morts. OpenOCD halt le Cortex-A76 puis reprend sans erreur, preuve de la chaîne JTAG.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels