A10 HPS not booting from micro SD card - NRST pulsing


I have a custom A10 prototype PCB, and I’m trying to bring up the HPS. I am building the preloader/uboot using the BSP-Editor and writing the output to a partition on a micro sdcard (same process I’ve done on the dev kit many times with success). I never get anything from the UART console output, so I’m attempting to debug what’s happening. I have noticed the HPS_NRST signal is pulsing low continuously when there is a micro SD card installed (otherwise it stays HIGH all the time with no SD card plugged in). Any ideas on what is happening, or how to debug a preloader /u-boot that’s not coming up initially? Can I get access to the HPS registers to see why it won’t come up?


A quick check - if you just recompiled the FPGA image then it may not be compatible with the board, verify the Device is correct and try again.

Otherwise there is a way to debug U-boot via DS-5 that is the only way you look at the boot process before UART is active. This document has helped me in the past: https://rocketboards.org/foswiki/Documentation/LoadingUBootFromDS5

You will be able to step through the U-boot code and peek at HPS registers.



Thanks for the reply, I got it working just the other day. I believe the entire time it was trying to boot and use UART1 on dedicated IO, rather than UART0 that we have routed on our custom board. We soldered wires and a 232 transceiver to UART1 on our board to see the boot loop it was stuck in (didn’t like the file system and then would just keep rebooting- hence the pulsing NRST) - then I fixed the file system and sd card image - and it all worked as expected on UART0 via shared IO. I thought that U-Boot would not need the filesystem (at all) or Linux device tree or anything other than U-boot itself to run, but I think that it does indeed need a good RFS. I think I proved that it has to have some root file system, even if it has almost no files in it.

As far as the link you sent (thank you) I have followed a similar process using the socedsgettingstarted guide from the Altera wiki, and was able to at least inspect ARM CPU registers. My issue seems to always be that the instructions are for Cyclone V/ArriaV, and while 90% similar, it’s different enough that I can’t get quite all the way there. For instance, with Arria 10 there is no preloader directory off the soceds install and there is no documentation that distinguishes this from the other soc devices that still use it for the preloader. According to the Altera support person, Arria 10 boot preloader is included in the Boot ROM so it’s not needed - just U-Boot and the Boot ROM are all that’s required (that would seem true given the preloader directory is gone for any Arria 10 ghrd). However, I have yet to find any documentation anywhere that mentions this.