Intel SoCFPGA Golden Software Reference Design
GSRD is an Embedded Linux Reference Distribution optimized for SoCFPGA.
It is based on Yocto Project Poky reference distribution.
meta-intel-fpga - SoCFPGA BSP Core Layer
meta-intel-fpga-refdes - SoCFPGA GSRD Customization Layer
Dependencies
poky - Core Layer from Yocto Project
meta-openembedded - Additional features (python, networking tools, etc) for GSRD
Target
Image
Agilex5
gsrd
Agilex5 DK-A5E065BB32AES1
gsrd [ qspi + emmc ], nand
Agilex5 Modular
gsrd
Agilex7 DK-SI-AGF014EA
gsrd [ sgmii + pr + qspi ]
Agilex7 DK-SI-AGF014EB
gsrd [ sgmii + pr + qspi ]
Agilex7 DK-DEV-AGF027F1ES
gsrd
Agilex7 DK-SI-AGI027FB
gsrd
Agilex7 DK-SI-AGI027FA
gsrd
Agilex7 DK-DEV-AGM039FES
gsrd
Stratix10
gsrd [ sgmii + pr + qspi ]
Arria10
gsrd, qspi, nand, pcie, pr, sgmii, tse
Cyclone5
gsrd
Default
gsrd
Clone the repository
$ git clone -b $POKY_VERSION https://gitlab.devtools.intel.com/psg-opensource/gsrd-socfpga.git
Sync the submodules
$ cd gsrd-socfpga
$ git submodule update --init --remote -r
Source the script to export component version (Linux,U-Boot,ATF,Machine,Image)
Target
Command
Agilex5
$ . agilex5-gsrd-build.sh
Agilex5 DK-A5E065BB32AES1
$ . agilex5_dk_a5e065bb32aes1-$Image-build.sh
Agilex5 Modular
$ . agilex5_modular-gsrd-build.sh
Agilex7 DK-SI-AGF014EA
$ . agilex7_dk_si_agf014ea-gsrd-build.sh
Agilex7 DK-SI-AGF014EB
$ . agilex7_dk_si_agf014eb-gsrd-build.sh
Agilex7 DK-DEV-AGF027F1ES
$ . agilex7_dk_dev_agf027f1es-gsrd-build.sh
Agilex7 DK-SI-AGI027FB
$ . agilex7_dk_si_agi027fb-gsrd-build.sh
Agilex7 DK-SI-AGI027FA
$ . agilex7_dk_si_agi027fa-gsrd-build.sh
Agilex7 DK-DEV-AGM039FES
$ . agilex7_dk_dev_agm039fes-gsrd-build.sh
Stratix10
$ . stratix10-gsrd-build.sh
Arria10
$ . arria10-$Image-build.sh
Cyclone V
$ . cyclone5-gsrd-build.sh
Build default GSRD setup
$ build_default
Default GSRD Setup with eSDK
Clone the repository
$ git clone -b $POKY_VERSION https://gitlab.devtools.intel.com/psg-opensource/gsrd-socfpga.git
Sync the submodules
$ cd gsrd-socfpga
$ git submodule update --init --remote -r
Source the script to export component version (Linux,U-Boot,ATF,Machine,Image)
Target
Command
Agilex5
$ . agilex5-gsrd-build.sh
Agilex5 DK-A5E065BB32AES1
$ . agilex5_dk_a5e065bb32aes1-$Image-build.sh
Agilex5 Modular
$ . agilex5_modular-gsrd-build.sh
Agilex7 DK-SI-AGF014EA
$ . agilex7_dk_si_agf014ea-gsrd-build.sh
Agilex7 DK-SI-AGF014EB
$ . agilex7_dk_si_agf014eb-gsrd-build.sh
Agilex7 DK-DEV-AGF027F1ES
$ . agilex7_dk_dev_agf027f1es-gsrd-build.sh
Agilex7 DK-SI-AGI027FB
$ . agilex7_dk_si_agi027fb-gsrd-build.sh
Agilex7 DK-SI-AGI027FA
$ . agilex7_dk_si_agi027fa-gsrd-build.sh
Agilex7 DK-DEV-AGM039FES
$ . agilex7_dk_dev_agm039fes-gsrd-build.sh
Stratix10
$ . stratix10-gsrd-build.sh
Arria10
$ . arria10-$Image-build.sh
Cyclone V
$ . cyclone5-gsrd-build.sh
Build default GSRD setup + eSDK
$ build_esdk
Clone the repository
$ git clone -b $POKY_VERSION https://gitlab.devtools.intel.com/psg-opensource/gsrd-socfpga.git
Sync the submodules
$ cd gsrd-socfpga
$ git submodule update --init --remote -r
Source the script to export component version (Linux,U-Boot,ATF,Machine,Image)
Target
Command
Agilex5
$ . agilex5-gsrd-build.sh
Agilex5 DK-A5E065BB32AES1
$ . agilex5_dk_a5e065bb32aes1-$Image-build.sh
Agilex5 Modular
$ . agilex5_modular-gsrd-build.sh
Agilex7 DK-SI-AGF014EA
$ . agilex7_dk_si_agf014ea-gsrd-build.sh
Agilex7 DK-SI-AGF014EB
$ . agilex7_dk_si_agf014eb-gsrd-build.sh
Agilex7 DK-DEV-AGF027F1ES
$ . agilex7_dk_dev_agf027f1es-gsrd-build.sh
Agilex7 DK-SI-AGI027FB
$ . agilex7_dk_si_agi027fb-gsrd-build.sh
Agilex7 DK-SI-AGI027FA
$ . agilex7_dk_si_agi027fa-gsrd-build.sh
Agilex7 DK-DEV-AGM039FES
$ . agilex7_dk_dev_agm039fes-gsrd-build.sh
Stratix10
$ . stratix10-gsrd-build.sh
Arria10
$ . arria10-$Image-build.sh
Cyclone V
$ . cyclone5-gsrd-build.sh
Setup build environment
$ build_setup
5. OPTIONAL: GHRD:
1. Add custom GHRD design in:
$WORKSPACE/meta-intel-fpga-refdes/recipes-bsp/ghrd/files
NOTE: Update/Replace the file with the same naming convention
For Agilex5 DK-A5E065BB32AES1:-
agilex5_dk_a5e065bb32aes1_gsrd_ghrd.core.rbf
agilex5_dk_a5e065bb32aes1_nand_ghrd.core.rbf
agilex5_dk_a5e065bb32aes1_emmc_ghrd.core.rbf
For Agilex5 Modular:-
agilex5_modular_gsrd_ghrd.core.rbf
For Agilex7 DK-SI-AGF014EA:-
agilex7_dk_si_agf014ea_gsrd_ghrd.core.rbf
agilex7_dk_si_agf014ea_nand_ghrd.core.rbf
agilex7_dk_si_agf014ea_pr_ghrd.core.rbf
agilex7_dk_si_agf014ea_pr_persona0.rbf
agilex7_dk_si_agf014ea_pr_persona1.rbf
For Agilex7 DK-SI-AGF014EB:-
agilex7_dk_si_agf014eb_gsrd_ghrd.core.rbf
For Agilex7 DK-DEV-AGF027F1ES:-
agilex7_dk_dev_agf027f1es_gsrd_ghrd.core.rbf
For Agilex7 DK-SI-AGI027FB:-
agilex7_dk_si_agi027fb_gsrd_ghrd.core.rbf
For Agilex7 DK-SI-AGI027FA:-
agilex7_dk_si_agi027fa_gsrd_ghrd.core.rbf
For Agilex7 DK-DEV-AGM039FES:-
agilex7_dk_dev_agm039fes_gsrd_ghrd.core.rbf
For Stratix10:-
stratix10_gsrd_ghrd.core.rbf
stratix10_nand_ghrd.core.rbf
stratix10_pr_persona0.rbf
stratix10_pr_persona1.rbf
For Arria10:-
GSRD:-
arria10_gsrd_ghrd_10as066n2.core.rbf
arria10_gsrd_ghrd_10as066n2.periph.rbf
arria10_gsrd_hps.xml
NAND:-
arria10_nand_ghrd_10as066n2.core.rbf
arria10_nand_ghrd_10as066n2.periph.rbf
arria10_nand_hps.xml
PCIE:-
arria10_pcie_ghrd_10as066n2.core.rbf
arria10_pcie_ghrd_10as066n2.periph.rbf
arria10_pcie_hps.xml
PR:-
arria10_pr_ghrd_10as066n2.core.rbf
arria10_pr_ghrd_10as066n2.periph.rbf
arria10_pr_hps.xml
arria10_pr_persona0.rbf
arria10_pr_persona1.rbf
QSPI:-
arria10_qspi_ghrd_10as066n2.core.rbf
arria10_qspi_ghrd_10as066n2.periph.rbf
arria10_qspi_hps.xml
SGMII:-
arria10_sgmii_ghrd_10as066n2.core.rbf
arria10_sgmii_ghrd_10as066n2.periph.rbf
arria10_sgmii_hps.xml
TSE:-
arria10_tse_ghrd_10as066n2.core.rbf
arria10_tse_ghrd_10as066n2.periph.rbf
arria10_tse_hps.xml
For Cyclone5:-
cyclone5_gsrd_soc_system.rbf
2. Update SRC_URL in the recipe:
$WORKSPACE/meta-intel-fpga-refdes/recipes-bsp/ghrd/hw-ref-design.bb
Note: Update the SRC_URL using the example below
Include the required file with sha256sum
Eg:-
SRC_URI:agilex7_dk_si_agf014ea ?= "\
file://agilex7_dk_si_agf014ea_gsrd_ghrd.core.rbf;sha256sum=xxxx \
file://agilex7_dk_si_agf014ea_nand_ghrd.core.rbf;sha256sum=xxxx \
file://agilex7_dk_si_agf014ea_pr_ghrd.core.rbf;sha256sum=xxxx \
file://agilex7_dk_si_agf014ea_pr_persona0.rbf;sha256sum=xxxx \
file://agilex7_dk_si_agf014ea_pr_persona1.rbf;sha256sum=xxxx \
"
U-BOOT:
For Agilex and Stratix10:-
Edit uboot.txt, uboot_script.its in:
$WORKSPACE/meta-intel-fpga-refdes/recipes-bsp/u-boot/files
Edit fit_kernel_(agilex*/stratix10).its in:
$WORKSPACE/meta-intel-fpga-refdes/recipes-kernel/linux/linux-socfpga-lts
For Cyclone5:-
Edit cyclone5_u-boot.txt in:
$WORKSPACE/meta-intel-fpga-refdes/recipes-bsp/u-boot/files
Perform Yocto bitbake to generate binaries
$ bitbake_image
Package binaries into build folder
$ package