Provisionado de una placa limpia¶
Arranque desde SD probado el 16-oct-2026 (borrador del 8-oct, actualizado con la evidencia). La
definición de terminado de Z5 pide «una ZedBoard provisionada desde cero por un
BOOT.BIN construido por CI de forma reproducible». El primer intento destapó un bug de empaquetado:
boot.bif listaba el bitstream como .bin y bootgen lo guardaba como dato de PS, así que la PL
nunca se configuraba. Corregido en 639d709; con el .bit la placa arranca sola y cumple el
criterio de aceptación de abajo. «Reproducible» sigue medido solo para dos empaquetados del mismo
.bit, no entre corridas de Vivado.
Lo que sí está medido¶
| Paso | Estado | Evidencia |
|---|---|---|
Construir el gateware (-top zynq -step xsa) |
Hecho, en CI | job ci, runner [self-hosted, vivado] |
Generar BSP/FSBL/drx_app |
Hecho | tools/build_vitis.sh |
Empaquetar BOOT.BIN reproducible |
Hecho | tools/make_boot.sh (dos bootgen → mismo hash) |
| Cargar bitstream + firmware por JTAG | Hecho, repetidamente | tools/cargar.sh, bringup/README.md |
| Arrancar desde SD | Hecho, 16-oct-2026 | BOOT.BIN sha256 de21ef14…; build/soak/20261016-230257/ |
Procedimiento (ejecutado el 16-oct-2026)¶
- Artefactos. Bajar el artefacto
gateware-zedboarddel jobci, o construir en local:vivado -mode batch -source tcl/build.tcl -tclargs -platform zedboard -top zynq -step xsa, luegotools/build_vitis.shytools/make_boot.sh zedboard. ComprobarBOOT.BIN.sha256. - Tarjeta SD. Una partición FAT con
BOOT.BINen la raíz. Una partición FAT (vfat) conBOOT.BINen la raíz funcionó en esta placa. - Jumpers de modo de arranque. Poner la ZedBoard en modo SD. Las posiciones no están en el
repositorio: salen del manual de la ZedBoard rev. D. Con
BOOT_MODE(0xF800025C) = 5 el modo es SD. - Consola.
/dev/ttyACM0a 115200 8N1 (solo un lector; vertools/soak.sh). Es el USB-UART del PS, no elttyUSB0, que es el JTAG. - Enlace.
tools/net_drx_link.shdejaenp1s0en 192.168.1.1/24. El firmware fija 192.168.1.10 (fw/src/app/main.c:162). - Encender y comprobar, por la UART y sin JTAG: línea
mapa de registros v11 confirmado por AXI-Lite,drx_status: red conectada, yping 192.168.1.10. - Cliente.
tools/mock_dsp.py --seconds 10: rayos a ~223/s y 0 huecos deseq.
Riesgos conocidos al arrancar desde SD¶
- Todo artefacto de
build/anterior al 1-oct-2026 es defectuoso (VREF de DDR; bitstream equivocado enmake_boot.sh). TodoBOOT.BINanterior al 16-oct-2026 también (bitstream empaquetado como.bin, PL sin configurar). Reconstruir desde un árbol posterior. - Diagnóstico si el LED DONE no enciende:
bootgen -arch zynq -read BOOT.BIN. El bitstream debe salir conattributes 0x20; con0x10es el bug del.bin. ps7_initpor JTAG no es lo mismo que el FSBL. Cargando por JTAG,ps7_initlo correxsct; desde SD lo hace el FSBL. El 16-oct-2026 no apareció ningún ajuste que viviera solo en el flujo JTAG: DDR, MDIO/red y reloj de PL funcionaron desde el FSBL.- Reprogramar la PL con tráfico vivo cuelga HP0 y solo se sale con ciclo de alimentación. Si el
arranque desde SD falla y se «recarga por JTAG» encima, aplica la misma regla de
tools/cargar.sh: un solo intento. - Reloj de PL: hoy 62,5 MHz. Si se firma ADR-001 cambia
fsy todoBOOT.BINse reconstruye.
Criterio de aceptación¶
Placa sin ningún ELF cargado por JTAG, encendida con la SD, llega por sí sola a los pasos 6 y 7 y
sostiene al menos 10 minutos sin dma_overruns.
Cumplido el 16-oct-2026: pasos 6 y 7 sin JTAG, y tools/soak.sh 660 con 147 442 rayos,
0 huecos de seq y dma_overruns=0 (build/soak/20261016-230257/). Aviso de la cabecera de
tools/make_boot.sh retirado.