Actualmente estoy usando el Altera MAX10 basado en flash, diseñado para ser conectado al procesador principal que ejecuta Linux en una placa personalizada (el FPGA solo implementa algunos periféricos; el procesador que ejecuta Linux es un diseño ARM normal).
Hasta ahora, he estado usando las herramientas estándar de Altera para el desarrollo ( Quartus Prime y USB Blaster como software de programación y herramientas de hardware), pero una vez que el producto se envía, no tenemos esta opción.
Como nos gustaría diseñar para actualizarse en campo, necesitamos una solución para cargar un flujo de bits al flash del MAX10 desde Linux (el sistema operativo incorporado) sin un USB Blaster o las herramientas de programación Quartus (ya que es un ARM tablero, no podemos ejecutar los binarios).
Así que mis preguntas son:
- ¿Qué herramientas de software se pueden usar para este propósito? ( fpga_manager aún no parece estar en horario de máxima audiencia, y urjtag no tiene mucho en cuanto al soporte reciente de Altera)
- ¿Qué consideraciones deben darse al diseño de hardware para habilitar esta funcionalidad? (Por ejemplo, ¿se pueden usar los GPIO para hacer bit-bang en JTAG, una solución ideal desde una perspectiva de costos, o necesito un chip como un y un FTDI )
Para desarrollar una solución de prueba de concepto, tengo un MAX10 Eval kit y un BeagleBone Black . Puedo hacer cualquier software y hardware que se requieran.
Soluciones parciales
Si sabe cómo realizar cualquiera de las siguientes acciones, promocionaré cualquiera de las siguientes con la esperanza de reunir una solución completa de las piezas individuales:
- Si ha transmitido un flujo de bits a otro FPGA basado en flash de Altera (por ejemplo, MAXII) con software + hardware no Altera;
- Si ha transmitido un flujo de bits a un MAX10 usando un USB Blaster usando un software que no es Altera; o
- Si ha transmitido un bistream a un MAX10 utilizando un hardware de programación que no es Altera y el software de programación estándar Altera / Quartus.
Actualizaciones :
- Una de las respuestas sugirió un esquema estilo bootloader (que también se sugiere en este video , pero Estoy usando uno de los dispositivos que admiten solo configuración única .