Buscar este blog

sábado, 15 de noviembre de 2014

PRACTICA # 14 BOOTLOADER ZYNQ-7000 DESDE FLASH SPI Y TARJETA SD





La siguiente figura muestra el flujo de proceso de carga en 2 estados.



  • Un BootRom interna almacena el código de arranque Stage 0, la cual configura el procesador ARM y los periféricos necesarios e iniciar  la búsqueda del FSBL (First Stage BootLoader). La lógica programable (PL) no se configura con el BootRom ya que no puede escribir a PL.
  • El código de arranque FSBL  normalmente se almacena en una de las memorias flash o se puede descargar a través del JTAG. EL BootRomm copia el código de arranque del FSBL que está en la memoria flash  y la memoria OCM (On-Chip Memory). El tamaño del FSBL cargado en la OCM está limitado a 192 Kilobyte. Los completos 256 Kilobyte están disponibles después de que el FSBL se empezó a ejecutar.
  • El código FSBL está completamente bajo el control del usuario y se le conoce como código arrancador de inicio de usuario. Este nos proporciona la flexibilidad necesaria para arrancar el sistema completo.
  • El FSBL es responsable de:
1)      Inicializar los datos de configuración en hardware del sistema PS
2)      Programar la parte PL usando el bitstream asignado
3)      Cargar la segunda etapa del gestor de arranque o código de aplicación bare – metal en la memoria DDR

  • Para ampliar más sobre este tema favor de consultar la siguiente documentación:



  • El proceso de creacion del bootloader se ve en la siguiente figura:



INICIAMOS ABRIENDO VIVADO

  • En el diagrama de bloques del proyecto LEDs en vivado  debes habilitar SD0 y QUAD SPI en el Zynq, despues  volver a generar el bitstream,  exportar el hardware y por ultimo lanzar el SDK.


  • El entorno de eclipse se muestra a continuación:


  • Crearemos una nueva aplicación para FSBL:
  • Escogemos como plataforma de hardware a zed_hw_platform:






  • Establecemos la construcción del FSBL tipo reléase:


  • Construimos el proyecto de FSBL:


  • Nos dirigimos a Xilinx Tools y escogemos Create Zynq Boot Image:


PASOS PARA CORRER EN MEMORIA SPI:



  • Agregamos los archivos en este orden:


(bootloader) FSBL.elf
(datafile) LED_wrapper.bit
(datafile) LES.elf

  • Y cambiamos la extensión del archive BOOT.bin a BOOT.mcs y damos clic en Create Image.


  • Generándose el archivo  BOOT.mcs:


  • Nos dirigimos ahora a Xilinx Tools y escogemos Program Flash:


  • Seleccionamos zed_hw_platform y buscamos nuestro archivo BOOT.mcs y damos clic en programar:







  • Programación de la memoria flash:


  • Por ultimo apagar la tarjeta y cambiar los jumpers de la siguiente manera:


  • Encender la tarjeta J



PASOS PARA CORRER EN MEMORIA SD:



  • Nos dirigimos a Xilinx Tools y escogemos Create Zynq Boot Image:


  • Agregamos los archivos en este orden:



(bootloader) FSBL.elf

(datafile) LED_wrapper.bit

(datafile) LES.elf



  • Verificamos que el archivo de salida sea BOOT.bin y damos clic en Create Image.


  • Guardamos el archivo BOOT.bin en la memoria SD y la insertamos en la ZedBoard:


  • Cambiamos los jumpers de la siguiente manera:


  • Encender la tarjeta J


































No hay comentarios.:

Publicar un comentario