20292029
20302030
20312031 < li class ="md-nav__item ">
2032- < a href ="../../../../../embedded-designs/agilex-5/e-series/premium/tsn/sgmii_xcvr/ug-tsn-sgmii-xcvr-agilex5/ " class ="md-nav__link ">
2032+ < a href ="../../../../../embedded-designs/agilex-5/e-series/premium/tsn/sgmii_xcvr/ug-tsn-sgmii-xcvr-agilex5.md " class ="md-nav__link ">
20332033 TSN - SGMII XCVR System
20342034 </ a >
20352035 </ li >
29882988 < h1 > Baremetal Hello World Example</ h1 >
29892989
29902990< h2 id ="overview "> Overview< a class ="headerlink " href ="#overview " title ="Permanent link "> ¶</ a > </ h2 >
2991- < p > This page demonstrates how to use the < a href ="https://altera-fpga.github.io/rel-24.3.1 /driver-list_baremetal/ "> baremetal drivers</ a > for a simple hello world program, running from SDRAM, and booting from QSPI, on the < a href ="https://www.intel.com/content/www/us/en/products/details/fpga/development-kits/agilex/a5e065b-premium.html "> Agilex 5 E-Series Premium Development Kit</ a > </ p >
2991+ < p > This page demonstrates how to use the < a href ="https://altera-fpga.github.io/rel-24.3/driver-list_baremetal/ "> baremetal drivers</ a > for a simple hello world program, running from SDRAM, and booting from QSPI, on the < a href ="https://www.intel.com/content/www/us/en/products/details/fpga/development-kits/agilex/a5e065b-premium.html "> Agilex 5 E-Series Premium Development Kit</ a > </ p >
29922992< p > ATF (Arm Trusted Firmware) is used, composed of the following two components:</ p >
29932993< ul >
29942994< li > ATF bl22: First stage bootloader. Part of the bitstream. Initializes hardware, including SDRAM, and loads FIP image.</ li >
@@ -3027,23 +3027,23 @@ <h2 id="build-flow">Build Flow<a class="headerlink" href="#build-flow" title="Pe
30273027< tbody >
30283028< tr >
30293029< td > Baremetal Drivers Source</ td >
3030- < td > < a href ="https://github.com/altera-fpga/baremetal-drivers/tree/QPDS24.3.1_REL_GSRD_PR "> baremetal-drivers</ a > </ td >
3030+ < td > < a href ="https://github.com/altera-fpga/baremetal-drivers/tree/QPDS24.3_REL_GSRD_PR "> baremetal-drivers</ a > </ td >
30313031</ tr >
30323032< tr >
30333033< td > Baremetal CMake Project File</ td >
3034- < td > < a href ="https://altera-fpga.github.io/rel-24.3.1 /baremetal-embedded/agilex-5/e-series/premium/collateral/CMakeLists.txt "> CMakeLists.txt</ a > </ td >
3034+ < td > < a href ="https://altera-fpga.github.io/rel-24.3/baremetal-embedded/agilex-5/e-series/premium/collateral/CMakeLists.txt "> CMakeLists.txt</ a > </ td >
30353035</ tr >
30363036< tr >
30373037< td > Programming File Generator File</ td >
3038- < td > < a href ="https://altera-fpga.github.io/rel-24.3.1 /baremetal-embedded/agilex-5/e-series/premium/collateral/flash_image.pfg "> flash_image.pfg</ a > </ td >
3038+ < td > < a href ="https://altera-fpga.github.io/rel-24.3/baremetal-embedded/agilex-5/e-series/premium/collateral/flash_image.pfg "> flash_image.pfg</ a > </ td >
30393039</ tr >
30403040< tr >
30413041< td > Arm Trusted Firmware Source</ td >
3042- < td > < a href ="https://github.com/altera-opensource/arm-trusted-firmware/tree/QPDS24.3.1_REL_GSRD_PR "> arm-trusted-firmware</ a > </ td >
3042+ < td > < a href ="https://github.com/altera-opensource/arm-trusted-firmware/tree/QPDS24.3_REL_GSRD_PR "> arm-trusted-firmware</ a > </ td >
30433043</ tr >
30443044< tr >
30453045< td > Precompiled GHRD SOF</ td >
3046- < td > < a href ="https://releases.rocketboards.org/2025.01 /gsrd/agilex5_dk_a5e065bb32aes1_gsrd/ghrd_a5ed065bb32ae6sr0_hps_debug.sof "> ghrd_a5ed065bb32ae6sr0_hps_debug.sof</ a > </ td >
3046+ < td > < a href ="https://releases.rocketboards.org/2024.11 /gsrd/agilex5_dk_a5e065bb32aes1_gsrd/ghrd_a5ed065bb32ae6sr0_hps_debug.sof "> ghrd_a5ed065bb32ae6sr0_hps_debug.sof</ a > </ td >
30473047</ tr >
30483048</ tbody >
30493049</ table >
@@ -3064,19 +3064,19 @@ <h2 id="build-instructions">Build Instructions<a class="headerlink" href="#build
30643064< a id ="__codelineno-1-6 " name ="__codelineno-1-6 " href ="#__codelineno-1-6 "> </ a > < span class ="nb "> export</ span > < span class ="w "> </ span > < span class ="nv "> CROSS_COMPILE</ span > < span class ="o "> =</ span > aarch64-none-elf-
30653065</ code > </ pre > </ div >
30663066< p > 3. Add Quartus tools to the PATH - only the Quartus Programmer tools are actually used:</ p >
3067- < div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-2-1 " name ="__codelineno-2-1 " href ="#__codelineno-2-1 "> </ a > < span class ="nb "> export</ span > < span class ="w "> </ span > < span class ="nv "> QUARTUS_ROOTDIR</ span > < span class ="o "> =</ span > ~/intelFPGA_pro/24.3.1 /quartus/
3067+ < div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-2-1 " name ="__codelineno-2-1 " href ="#__codelineno-2-1 "> </ a > < span class ="nb "> export</ span > < span class ="w "> </ span > < span class ="nv "> QUARTUS_ROOTDIR</ span > < span class ="o "> =</ span > ~/intelFPGA_pro/24.3/quartus/
30683068< a id ="__codelineno-2-2 " name ="__codelineno-2-2 " href ="#__codelineno-2-2 "> </ a > < span class ="nb "> export</ span > < span class ="w "> </ span > < span class ="nv "> PATH</ span > < span class ="o "> =</ span > < span class ="nv "> $QUARTUS_ROOTDIR</ span > /bin:< span class ="nv "> $QUARTUS_ROOTDIR</ span > /linux64:< span class ="nv "> $QUARTUS_ROOTDIR</ span > /../qsys/bin:< span class ="nv "> $PATH</ span >
30693069</ code > </ pre > </ div >
30703070< p > 4. Build ATF</ p >
30713071< div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-3-1 " name ="__codelineno-3-1 " href ="#__codelineno-3-1 "> </ a > < span class ="nb "> cd</ span > < span class ="w "> </ span > < span class ="nv "> $TOP_FOLDER</ span >
3072- < a id ="__codelineno-3-2 " name ="__codelineno-3-2 " href ="#__codelineno-3-2 "> </ a > git< span class ="w "> </ span > clone< span class ="w "> </ span > -b< span class ="w "> </ span > QPDS24.3.1_REL_GSRD_PR < span class ="w "> </ span > https://github.com/altera-opensource/arm-trusted-firmware< span class ="w "> </ span > atf
3072+ < a id ="__codelineno-3-2 " name ="__codelineno-3-2 " href ="#__codelineno-3-2 "> </ a > git< span class ="w "> </ span > clone< span class ="w "> </ span > -b< span class ="w "> </ span > QPDS24.3_REL_GSRD_PR < span class ="w "> </ span > https://github.com/altera-opensource/arm-trusted-firmware< span class ="w "> </ span > atf
30733073< a id ="__codelineno-3-3 " name ="__codelineno-3-3 " href ="#__codelineno-3-3 "> </ a > make< span class ="w "> </ span > -C< span class ="w "> </ span > atf< span class ="w "> </ span > fiptool
30743074< a id ="__codelineno-3-4 " name ="__codelineno-3-4 " href ="#__codelineno-3-4 "> </ a > make< span class ="w "> </ span > -C< span class ="w "> </ span > atf< span class ="w "> </ span > bl2< span class ="w "> </ span > bl31< span class ="w "> </ span > < span class ="nv "> PLAT</ span > < span class ="o "> =</ span > agilex5< span class ="w "> </ span > < span class ="nv "> DEBUG</ span > < span class ="o "> =</ span > < span class ="m "> 1</ span > < span class ="w "> </ span > < span class ="nv "> SOCFPGA_BOOT_SOURCE_QSPI</ span > < span class ="o "> =</ span > < span class ="m "> 1</ span > < span class ="w "> </ span > < span class ="nv "> LOG_LEVEL</ span > < span class ="o "> =</ span > < span class ="m "> 50</ span >
30753075</ code > </ pre > </ div >
30763076< p > 5. Retrieve the baremetal library sources:</ p >
30773077< div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-4-1 " name ="__codelineno-4-1 " href ="#__codelineno-4-1 "> </ a > < span class ="nb "> cd</ span > < span class ="w "> </ span > < span class ="nv "> $TOP_FOLDER</ span >
30783078< a id ="__codelineno-4-2 " name ="__codelineno-4-2 " href ="#__codelineno-4-2 "> </ a > rm< span class ="w "> </ span > -rf< span class ="w "> </ span > baremetal-drivers*
3079- < a id ="__codelineno-4-3 " name ="__codelineno-4-3 " href ="#__codelineno-4-3 "> </ a > git< span class ="w "> </ span > clone< span class ="w "> </ span > -b< span class ="w "> </ span > QPDS24.3.1_REL_GSRD_PR < span class ="w "> </ span > https://github.com/altera-fpga/baremetal-drivers
3079+ < a id ="__codelineno-4-3 " name ="__codelineno-4-3 " href ="#__codelineno-4-3 "> </ a > git< span class ="w "> </ span > clone< span class ="w "> </ span > -b< span class ="w "> </ span > QPDS24.3_REL_GSRD_PR < span class ="w "> </ span > https://github.com/altera-fpga/baremetal-drivers
30803080</ code > </ pre > </ div >
30813081< p > 6. Create the sample application folder:</ p >
30823082< div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-5-1 " name ="__codelineno-5-1 " href ="#__codelineno-5-1 "> </ a > < span class ="nb "> cd</ span > < span class ="w "> </ span > < span class ="nv "> $TOP_FOLDER</ span >
@@ -3085,10 +3085,10 @@ <h2 id="build-instructions">Build Instructions<a class="headerlink" href="#build
30853085< a id ="__codelineno-5-4 " name ="__codelineno-5-4 " href ="#__codelineno-5-4 "> </ a > < span class ="nb "> cd</ span > < span class ="w "> </ span > baremetal-example
30863086</ code > </ pre > </ div >
30873087< p > 7. Bring in the hello world source code:</ p >
3088- < div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-6-1 " name ="__codelineno-6-1 " href ="#__codelineno-6-1 "> </ a > cp< span class ="w "> </ span > < span class ="nv "> $TOP_FOLDER</ span > /baremetal-drivers/examples/hello_world/hello_world .c< span class ="w "> </ span > .
3088+ < div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-6-1 " name ="__codelineno-6-1 " href ="#__codelineno-6-1 "> </ a > cp< span class ="w "> </ span > < span class ="nv "> $TOP_FOLDER</ span > /baremetal-drivers/test/simics/hello-world/printf_hello_world .c< span class ="w "> </ span > hello_world.c
30893089</ code > </ pre > </ div >
30903090< p > 8. Bring in the cmake file for the project:</ p >
3091- < div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-7-1 " name ="__codelineno-7-1 " href ="#__codelineno-7-1 "> </ a > wget< span class ="w "> </ span > https://altera-fpga.github.io/rel-24.3.1 /baremetal-embedded/agilex-5/e-series/premium/collateral/CMakeLists.txt
3091+ < div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-7-1 " name ="__codelineno-7-1 " href ="#__codelineno-7-1 "> </ a > wget< span class ="w "> </ span > https://altera-fpga.github.io/rel-24.3/baremetal-embedded/agilex-5/e-series/premium/collateral/CMakeLists.txt
30923092</ code > </ pre > </ div >
30933093< p > The file looks like this:
30943094< div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-8-1 " name ="__codelineno-8-1 " href ="#__codelineno-8-1 "> </ a > cmake_minimum_required< span class ="o "> (</ span > VERSION< span class ="w "> </ span > < span class ="m "> 3</ span > .5...3.28< span class ="o "> )</ span >
@@ -3138,7 +3138,7 @@ <h2 id="build-instructions">Build Instructions<a class="headerlink" href="#build
31383138< div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-10-1 " name ="__codelineno-10-1 " href ="#__codelineno-10-1 "> </ a > < span class ="nv "> $TOP_FOLDER</ span > /atf/tools/fiptool/fiptool< span class ="w "> </ span > create< span class ="w "> </ span > --soc-fw< span class ="w "> </ span > < span class ="nv "> $TOP_FOLDER</ span > /atf/build/agilex5/debug/bl31.bin< span class ="w "> </ span > --nt-fw< span class ="w "> </ span > hello_world.bin< span class ="w "> </ span > fip.bin
31393139</ code > </ pre > </ div >
31403140< p > 11. Bring the Programming File Generator file, used to instruct Quartus Programmer how to create the flash image:</ p >
3141- < div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-11-1 " name ="__codelineno-11-1 " href ="#__codelineno-11-1 "> </ a > wget< span class ="w "> </ span > https://altera-fpga.github.io/rel-24.3.1 /baremetal-embedded/agilex-5/e-series/premium/collateral/flash_image.pfg
3141+ < div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-11-1 " name ="__codelineno-11-1 " href ="#__codelineno-11-1 "> </ a > wget< span class ="w "> </ span > https://altera-fpga.github.io/rel-24.3/baremetal-embedded/agilex-5/e-series/premium/collateral/flash_image.pfg
31423142</ code > </ pre > </ div >
31433143< p > The file looks like this:</ p >
31443144< p > < div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-12-1 " name ="__codelineno-12-1 " href ="#__codelineno-12-1 "> </ a > < span class ="nt "> <pfg</ span > < span class ="w "> </ span > < span class ="na "> version=</ span > < span class ="s "> "1"</ span > < span class ="nt "> ></ span >
@@ -3185,11 +3185,11 @@ <h2 id="build-instructions">Build Instructions<a class="headerlink" href="#build
31853185< div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-13-1 " name ="__codelineno-13-1 " href ="#__codelineno-13-1 "> </ a > < span class ="si "> ${</ span > < span class ="nv "> CROSS_COMPILE</ span > < span class ="si "> }</ span > objcopy< span class ="w "> </ span > -v< span class ="w "> </ span > -I< span class ="w "> </ span > binary< span class ="w "> </ span > -O< span class ="w "> </ span > ihex< span class ="w "> </ span > --change-addresses< span class ="w "> </ span > 0x0< span class ="w "> </ span > < span class ="nv "> $TOP_FOLDER</ span > /atf/build/agilex5/debug/bl2.bin< span class ="w "> </ span > bl2.hex
31863186</ code > </ pre > </ div >
31873187< p > 13. Create JIC File, using the prebuilt hardware SOF file from GSRD release:</ p >
3188- < div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-14-1 " name ="__codelineno-14-1 " href ="#__codelineno-14-1 "> </ a > wget< span class ="w "> </ span > -O< span class ="w "> </ span > design.sof< span class ="w "> </ span > https://releases.rocketboards.org/2025.01 /gsrd/agilex5_dk_a5e065bb32aes1_gsrd/ghrd_a5ed065bb32ae6sr0_hps_debug.sof
3188+ < div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-14-1 " name ="__codelineno-14-1 " href ="#__codelineno-14-1 "> </ a > wget< span class ="w "> </ span > -O< span class ="w "> </ span > design.sof< span class ="w "> </ span > https://releases.rocketboards.org/2024.11 /gsrd/agilex5_dk_a5e065bb32aes1_gsrd/ghrd_a5ed065bb32ae6sr0_hps_debug.sof
31893189< a id ="__codelineno-14-2 " name ="__codelineno-14-2 " href ="#__codelineno-14-2 "> </ a > quartus_pfg< span class ="w "> </ span > -c< span class ="w "> </ span > flash_image.pfg
31903190</ code > </ pre > </ div >
31913191< h2 id ="run-example "> Run Example< a class ="headerlink " href ="#run-example " title ="Permanent link "> ¶</ a > </ h2 >
3192- < p > 1. Set up the board as described in the GSRD < a href ="https://altera-fpga.github.io/rel-24.3.1embedded -designs/agilex-5/e-series/premium/gsrd/ug-gsrd-agx5e-premium/#configure-board "> Configure Board</ a > .</ p >
3192+ < p > 1. Set up the board as described in the GSRD < a href ="https://altera-fpga.github.io/rel-24.3embedded -designs/agilex-5/e-series/premium/gsrd/ug-gsrd-agx5e-premium/#configure-board "> Configure Board</ a > .</ p >
31933193< p > 2. Power down board</ p >
31943194< p > 3. Set up MSEL dipswitch SW27 for JTAG boot: OFF-OFF-OFF-OFF</ p >
31953195< p > 4. Power up board</ p >
0 commit comments