Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
8 years ago

ARM DS-5 and DE10-Nano

Hello guys,

I'm participating from the Innovate FPGA 2018 Contest and I would like to know how we can debug the ARM A9 (that comes with the DE10-Nano from terasic) as an Altera target in ARM DS-5 community edition license, btw, when I googled about this, I didn't find any alternative to develop Bare metal applications using DS-5 in DE10-Nano free license version. Does anybody find an alternative to debug bare metal applications in ARM target with free license? :cry: :cry: :cry:

11 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I'm pretty sure you can't. Bare metal design requires a license.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi, you can request for a 30-days trial license from ARM. Not much, but hopefully it can help.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Ok, I'll do that and do you know some examples of ARM Baremetal development for the DE10 Nano?, it seems hard to find some examples of baremetal development for this target....

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    when you install SoC EDS there are some examples of baremetal located in <quartus version>\embedded\examples\software. If i am not mistaken, these should be generic to all boards. You can find more examples here: https://www.altera.com/support/support-resources/design-examples.html#socdesignexamples

    Note that these are mostly called hwlibs as they uses the Altera-provided HAL. For some of these examples (especially the ones that interfaced to outside world) I believe you will need to use your own preloader (rather than the default one for the CV SoC development kit)
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    when you install SoC EDS there are some examples of baremetal located in <quartus version>\embedded\examples\software. If i am not mistaken, these should be generic to all boards. You can find more examples here: https://www.altera.com/support/support-resources/design-examples.html#socdesignexamples

    Note that these are mostly called hwlibs as they uses the Altera-provided HAL. For some of these examples (especially the ones that interfaced to outside world) I believe you will need to use your own preloader (rather than the default one for the CV SoC development kit)

    --- Quote End ---

    Thanks for the reply Sunshine but I see these examples and as you mentioned, none of these uses outside world peripherals and as I'm getting started I just want to use UART through USB port to debug my programs. About the preloader, I'm not familiar with these structure (I mean boot room, preloader...) but if I understood well, preloader is responsible to configure the peripherals initializing them for the ARM, then when you say that I need to use a different preloader you mean that I need to generate with the bsp-editor, make, etc... all that steps needed to create the new preloader based on my project on quartus/QSYS right? (btw there's a tutorial for these steps?:))
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Yes you are right regarding the function of the preloader. The reason you need to update them (for example, DE10 Nano's preloader is stored in the SD Card, you need to update the content of the SD Card to give it a new preloader) is because the default preloader that ships from Terasic is configured to set the UART pins to the HPS, and not to the FPGA world

    To generate the preloader, refer to here:

    https://rocketboards.org/foswiki/documentation/gsrdpreloader

    In short, the bsp-editor takes the information from Qsys (for example, the pin muxing information) and generates a project that you can compile (run Make) and

    To update the SD Card, follow the instruction here (you will need a Linux machine, or a virtual machine running Linux)

    https://rocketboards.org/foswiki/documentation/gsrdsdcard
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Thanks again Sunshine, I'll try to do that but now I've downloaded some examples from intel website (https://www.altera.com/support/support-resources/design-examples.html#socdesignexamples) for Cyclone V and none of these can compile in DS-5 Altera Edition, there's problem with libs missing and others references, this is normal or is there some specific examples to work with DS-5? I've also try to run the examples from C:\intelFPGA\17.1\embedded\examples\software but the same erros appears again....It's hard to develop when the reference project doesn't compile as in the image.

    https://www.alteraforum.com/forum/attachment.php?attachmentid=14824

    Once up I've my SD card ready can I just put the .axf (compiled bare metal) inside the right location and then boot the board to run the application?
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    You need to launch eclipse from the SoC EDS command shell in order for the environment to be set correctly.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hello sunshine,

    You're right, I made the correct export path and all works, thanks, but now I've been reading the boot types and I still didn't find a solution for bare-metal application. My goal is to load up a design into FPGA (with the .rbf file) and then load my binary bare-metal application for ARM-A9. Today what I could do is to generate the preloader (preloader-mkpimage.bin) and my FPGA raw files to program (.rbf) but I couldn't find some tutorial of how to generate the u-boot.scr and u-boot.script to program FPGA and load the binary. =/

    Btw, if I understood right to loadup the design and boot some bare-metal app you need and SD/MMC with:

    Partitions:

    fat32:

    ------ u-boot.img

    ------ u-boot.scr

    ------ baremetalapp.bin

    ------ soc_design.rbf

    a2:

    ------ preloader-mkpimage.bin

    Am I right about this?
    • WKhad1's avatar
      WKhad1
      Icon for New Contributor rankNew Contributor

      Hello,

      I'm stuck at the same problem.

      have you found the way to create a SD card with the ( preloader + bare-metal + rbf )

      Thanks in advance

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    For Cyclone V the uboot needs to be in the raw partition (write using $ sudo dd if=u-boot-cyclone5.img of=/dev/sdx3 bs=64k seek=4, x being the letter assigned by your machine) as the preloader doesn't have FAT support yet. With regards as to how to program the FPGA and launch the baremetal application, I suggest that you try follow the steps here:

    https://rocketboards.org/foswiki/documentation/socswws1introtoalterasocdeviceslab3baremetalapplication