Force A10 FPGA to reload after WARM reset with u-Boot 2021.4
- 5 years ago
Hi.
Thanks for the response. I am reasonably familiar with the A10 early IO release flow. We've been supporting our A10 based SOMs since 2018. We are simply upgrading from Intel's reference uBoot 2014 to 2021.
Having the SPL program the entire bitstream (non-split RBF) will not work either because it will skip programming the FPGA if it is already in user mode (see line 126 of spl_a10.c ). This can be easily tested and confirmed on the Arria10 SocKit board. Besides, the SPL programming the entire core is prohibitively slow with larger FPGA sizes (10-30 seconds instead of < 1, depending on density for us) as it has to bounce small reads in and out of SRAM instead of DMA'ing the full image to DDR. I am surprised that SPL booting a non-split image is now the "standard flow", it never was before due to the load times.
We ended up using this patch as a work-around, which forces the SPL to always reconfigure the peripheral bitstream and re-init/cal the HPS EMIF DDR. It only supports split RBF loading; you have to load the core rbf in the u-Boot.img TPL. This works for us. We are still testing it, but so far it has allowed us to issue a reboot from linux multiple times without issue as well as support uploading new FPGA bitstreams in the ITB file for a remote firmware upgrade.
With regards,
Mike