How can I customize the Intel® Arria® 10 FPGA u-boot-socfpga and Linux-socfpga GHRD recipes for my custom board? - How can I customize the Intel® Arria® 10 FPGA u-boot-socfpga and Linux-socfpga GHRD recipes for my custom board? Description The Rocketboards.org documentation should be used as reference, but does not cover the internals of boot flows where the board-specific customization is contained. This document is designed to be a high-level guide to show you where to look, and what files you may want to copy and adapt. For Rocketboards.org references on how to build the boot loader for Intel® Arria® 10 FPGA SoC projects, view the Arria 10 SoC - Boot from SD Card section of the Building Bootloader for Cyclone ® V and Arria 10 web page. Items in BOLD refer to sections of the guidelines on the Building Bootloader for Cyclone V and Arria 10 web page. Resolution Customizing U-boot and U-boot-SPL for your board The HPS settings from your Platform Designer project are taken into u-boot via the hand off files using a script, which is shipped as part of u-boot-socfpga: See: Convert hps.xml handoff file to include file to be used by the device tree cd u-boot-socfpga ./arch/arm/mach-socfpga/qts-filter-a10.sh \ <Quartus project location>/hps_isw_handoff/hps.xml arch/arm/dts/socfpga_arria10_socdk_sdmmc_handoff.h This creates the socfpga_arria10_socdk_sdmmc_handoff.h file, which is then pulled in during compilation. Other board-specific configuration items (Ethernet, Uart, memory size etc) u-boot config file: u-boot-socfpga/configs/ socfpga_arria10_defconfig Most items are now defined in the u-boot device tree, however we would recommend creating custom version of the u-boot defconfig file for your board: The config file specifies: Whats enabled in the u-boot build Default boot command Default Device Tree Some environment defaults Config include file: include/configs/socfpga_arria10.h Memory sizes Pre-set addresses and config items Device tree files names Default u-boot run time environment UART defaults Some setup is shared, also see #include <configs/socfpga_common.h> u-boot device trees : arch/arm/dts/<board name>_<boot_device>.dts There are multiple hierarchical file sets for each boot target (NAND, SDMMC, QSPI). There is a top level file, and this includes generic information, and board specific overrides. Some files have items for u-boot, and some for u-boot spl Arria 10 SoC DK SDMMC example: socfpga_<device>_<board>_<boot device>.dts: Top level file for a board and boot flash target Which flash to enable etc socfpga_<device>_<board>.dtsi : board specific files: Override or extend the generic files Exact IP Setup: UART, EMAC , MEMORY socfpga_<device>.dtsi: Generic files for the device Note: socfpga_arria10_socdk_sdmmc-u-boot.dtsi Contains the name of the .itb files to use for FPGA configuration and uboot proper loading. See the relevant .its file board/altera/arria10socdk/*.its &fpga_mgr { u-boot,dm-pre-reloc; altr,bitstream = "fit_spl_fpga.itb"; }; .its files: for creating the .itb files u-boot will try to load : board/altera/arria10-socdk board/altera/arria10-socdk/fit_uboot.its u-boot SPL control file : Which U-boot Proper to load board/altera/arria10-socdk/fit_spl_fpga.its FPGA configuration from SPL : Paths to .rbf files for FPGA configuration board/altera/arria10-socdk/fit_kernel_qspi.its Linux Kernel load from QSPI board/altera/arria10-socdk/fit_kernel_nand.its Linux Kernel load from NAND Note: With newer versions of u-boot distro boot, for SDMMC boot an .itb file is not loaded to the sdmmc. The relevant files are loaded to the FAT partition, and loaded directly. For more information, see the C. Build SD Card Image section of the Building Bootloader for Cyclone ® V and Arria 10 web page. For Linux The kernel configuration used is now default, and can be added to in the normal fashion Load default : make defconfig Edit using : make manuconfig Save new config file as defconfig : make savedefconfig Copy to the configs directory, to be used later : cp defconfig arch/arm/configs/socfpga_myName Custom Device Trees for a custom board should be created, by copying and editing the development kit versions. The naming and structure is similar to uboot, with board specific files (.dts) which override generic settings (.dtsi). Custom Fields values: ['novalue'] Troubleshooting 18026074753 False ['novalue'] ['novalue'] novalue novalue ['Arria® V FPGAs and SoCs', 'Cyclone® V FPGAs and SoCs', 'Arria® 10 FPGAs and SoCs'] ['novalue'] ['novalue'] ['novalue'] - 2022-04-22

external_document