I switched from using the DE0-nano Development Board (Rocketboard) to the DE10-nano Development Board (Rocketboard) for a baremetal-Application. Both use a Cyclone V SoC FPGA. The FPGA is configured trough the onboard EPCS. The MPU main-routine is supposed to be loaded by an external memory card. On that card are two different partitions. One in which I programmed the preloader (A2) and one FAT-partition which hosts my image-file. This image-file includes the main-application which is loaded by the preloader into the MPU.
I successfully designed my FPGA-Design in Qsys and programmed the FPGA. With the generated handoff-files, I build the preloader with the bsp-editor.
When I load the ELF-file (“u-boot-spl”) of the compiled preloader with the DS-5 debugger, the MPU and the FPGA are running correctly. Same applies, when I load just the ELF-file via the debugger and put the HPS-image-file on the FAT-partition of the SD-Card. Thus, both the preloader-ELF-file and the HPS-image-file seem to be flawless.
To get the system working standalone, I need to boot the preloader from the SD-Card. So I programmed the SD-card with the corresponding executable binary of the compiled preloader-files (“preloader-mkpimage.bin”). When I power up the board, the preloader successfully configures the HPS. This can be seen by establishing the UART-connection with Putty. However, this time the main-routine gets stuck. So it seems like the preloader compiled ELF-file works but the corresponding bin-file does not.
When I boot the preloader from the SD-Card and load the axf-file manually (with the help of a debugger script) into the SDRAM I can see that the main-routine gets stuck at the source line “alt_int_handler_abort” of the assembly file “alt_interrupt_armcc.s”. Latter file is part of the HWLIB provided by Altera.
Further investigations show, that this occurs with the first read access from the HPS to the FPGA via the “Lightweigt HPS-to-FPGA Bridge”. So is seems like this bridge is not configured properly!?
Since the boot.img of the HPS is working well, I think the problem is the preloader which starts from the SD-card (preloader-mkpimage.bin). With the debugger-command:
“restore preloader-mkpimage.bin binary 0x0”
I tried to directly load the “preloader-mkpimag.bin” into the the Boot ROM in order to see whether this file is somehow corrupted. Unfortunately this does not work. I get the error “Unable to restore image”.
- Does anybody encounter similar problems when using the DE10-nano-board? Previously I worked with the DE0-nano board which just worked fine.
- Does anybody know what the “alt_int_handler_abort” line does? Why gets the main-routine stuck here? Under what conditions do I end up here?
- Is it possible to load directly the “preloader-mkimage.bin” into the Boot ROM?
- DE10-nano development board (Cyclone V SoC FPGA)
- Windows 7 SP1
- Quatus Prime 16.1
- Eclipse with DS-5 v5.25.0
I trying to get this Board working for already 2 weeks now, but I just do not get any furhter at this point. Any help is neccessary and would be appreciated!