Depende de cómo conectes la FPGA al host. Si estás usando el cable JTAG de Xilinx, estás prácticamente atrapado con Impact. Sin embargo, si tienes una interfaz diferente al host, entonces no sería demasiado difícil, digamos, escribir una interfaz de carga que pueda aceptar un archivo de bits y sobrescribir la flash de configuración. Entonces todo lo que necesitas hacer es reiniciar la placa, y estás listo para ir. Sugeriría mirar la guía de configuración de Xilinx para la parte que estás usando; tendrá más información específica sobre las diferentes interfaces de configuración.
Edición: Interesante; no hay una guía de configuración separada para las partes de Zynq. Echa un vistazo al capítulo 6 del manual de referencia técnica, Xilinx ug585. Parece que el procedimiento es arrancar un núcleo desde la flash, y luego hacer que el núcleo cargue la configuración de la FPGA. Si puedes cargar una nueva configuración en la RAM a través de cualquier interfaz arbitraria, entonces mientras el reinicio de la parte lógica programable no impida que el núcleo acceda a la imagen en la RAM, puedes reiniciar la FPGA y cargar la nueva configuración desde la RAM. Parece que necesitas usar AXI-PCAP. Me imagino que también puedes actualizar el software del núcleo ARM, pero no estoy seguro de cuál sería el procedimiento adecuado. ¿Tienes alguna memoria de programa externa, o sólo estás utilizando la memoria en el chip? Si puedes utilizar la memoria externa, entonces tal vez puedas 'montar' una nueva imagen en la memoria externa, y luego copiarla de nuevo en la memoria interna antes de iniciarla. Básicamente, sólo necesitas una manera de esconder un poco de código que pueda recargar la configuración de la FPGA y luego recargar y/o iniciar el software del núcleo ARM.