Depende de cómo se conecte el FPGA al host. Si está utilizando el cable JTAG de Xilinx, está prácticamente estancado con Impact. Sin embargo, si tiene una interfaz diferente al host, entonces no sería muy difícil, por ejemplo, escribir una interfaz de cargador que pueda aceptar un archivo de bits y sobrescribir la configuración flash. Entonces, todo lo que necesita hacer es reiniciar el tablero, y ya está listo. Yo sugeriría buscar en la guía de configuración de Xilinx para la parte que está usando; Tendrá información más específica sobre las distintas interfaces de configuración.
Editar: Interesante; no hay una guía de configuración separada para las partes Zynq. Eche un vistazo al capítulo 6 del manual de referencia técnica, Xilinx ug585. A Loks le gusta el procedimiento es arrancar un núcleo desde flash, luego hacer que el núcleo cargue la configuración de FPGA. Si puede cargar una nueva configuración en la RAM a través de cualquier interfaz arbitraria, entonces, si la restauración de la parte lógica programable no impide que el núcleo acceda a la imagen en la RAM, puede reiniciar el FPGA y cargar la nueva configuración desde la RAM. Parece que necesitas usar AXI-PCAP. Me imagino que también puede actualizar el software de núcleo ARM, pero no estoy seguro de cuál sería el procedimiento adecuado. ¿Tiene alguna memoria de programa externa o solo utiliza memoria en chip? Si puede usar la memoria externa, entonces tal vez pueda "crear" una nueva imagen en la memoria externa y luego volver a copiarla en la memoria interna antes de iniciarla. Básicamente, solo necesita una forma de guardar un poco de código que pueda volver a cargar la configuración de FPGA y luego volver a cargar y / o iniciar el software principal ARM.