DE10 Nano - Booting from FPGA

Hannes hannes.grabmann at gmail.com
Mon Oct 27 17:01:22 CET 2025


Hello,



I am currently working on a small project for the DE10 Nano Board and setup
Pinmux for the Ethernet PHY signals. As I need the preloader to configure
the Pinmux in the HPS, I have tried to set this up based on the current
u-boot-socfpga branch. For this purpose i followed different guides on
rocketboards.org and the "AN 709: HPS SoC Boot Guide" on how to build a
bootloader and configure HPS from FPGA using EPCS64 flash memory. I could
configure SPL_TEXT_BASE=0xC0000000 and "Support booting from SPI Flash" in
menuconfig, build and create .hex file from u-boot-spl to initalize the
on-chip RAM. Problem is that the preloader does not seem to be executed.
Upon further investigation i noticed that the spl data address is not at
0XFFFF0000 as suggested by several older guides:

arm-none-eabi-readelf -S spl/u-boot-spl
There are 19 section headers, starting at offset 0x1482f4:

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk
Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0
0  0
  [ 1] .text             PROGBITS        c0000000 001000 00b5d4 00  AX  0
0 64
  [ 2] .rodata           PROGBITS        c000b5d4 00c5d4 00232b 00   A  0
0  4
  [ 3] .data             PROGBITS        c000d900 00e900 000098 00  WA  0
0  4
  [ 4] __u_boot_list     PROGBITS        c000d998 00e998 000840 00  WA  0
0  4
  [ 5] .bss              PROGBITS        c000e1d8 00f1d8 000010 00   W  0
0  4
  [ 6] .ARM.attributes   ARM_ATTRIBUTES  00000000 00f1e8 000029 00      0
0  1
  [ 7] .comment          PROGBITS        00000000 00f211 000026 01  MS  0
0  1
  [ 8] .debug_line       PROGBITS        00000000 00f237 0292fa 00      0
0  1
  [ 9] .debug_info       PROGBITS        00000000 038531 08eab7 00      0
0  1
  [10] .debug_abbrev     PROGBITS        00000000 0c6fe8 0134ca 00      0
0  1
  [11] .debug_aranges    PROGBITS        00000000 0da4b8 002948 00      0
0  8
  [12] .debug_str        PROGBITS        00000000 0dce00 010da7 01  MS  0
0  1
  [13] .debug_loc        PROGBITS        00000000 0edba7 042307 00      0
0  1
  [14] .debug_ranges     PROGBITS        00000000 12feb0 006ca0 00      0
0  8
  [15] .debug_frame      PROGBITS        00000000 136b50 007324 00      0
0  4
  [16] .symtab           SYMTAB          00000000 13de74 006a70 10     17
1244  4
  [17] .strtab           STRTAB          00000000 1448e4 00394d 00      0
0  1
  [18] .shstrtab         STRTAB          00000000 148231 0000c1 00      0
0  1


I also couldn't find that value in the menuconfig, nor could I find any
up-to-date guidelines for booting HPS preloader from FPGA. Can you tell me
if this approach is still viable and how to implement it correctly?

Best regards,

Hannes Grabmann


More information about the U-Boot mailing list