Forum Discussion

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

How to generate .hexout File for MAX10 Devices

Hi. On cyclone devices, it was easy to get a .hex file by using the "convert programming file" tool. Now, when i try to get a hexout out of a .sof file, it shows a message "Device 10M08SAE144ES does not support selected configuration mode". How can a get the CFM0 configuration data in a open/readable format like .hex (for my own bootloader for a MAX10)?

Thank you very much.

6 Replies

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

    It's interesting, but I see the same issue. But the question is why do you need a bootloader, when you program the internals once and it's done.

    You will be able to write a converter from the SOF or POF file, but that's really a binary format.

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

    Thank you for reply,

    i woud like to remote upgrade the fpga by an external microcontroller. But without the configuration source data, i can't do that. Do you have information how the SOF data is structured?
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    This thread shows some information on the POF File format.

    http://www.alteraforum.com/forum/showthread.php?t=4947

    I could find in my quick search the SOF format.

    We typically use the RBF file or the "Remote Update Controller" ip and our own cpu interface. However neither are available for the MAX10 (At least yet)

    This is a good question.

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

    ok, thanks. the .rpd file was a good hint. In an741 (https://www.altera.com/en_us/pdfs/literature/an/an741.pdf) i found a work-around to extract the data i was looking for (i hope that is "all i need")

    --- Quote Start ---

    1. On the File menu, click Convert Programming Files.

    2. Under Output programming file, select Programmer Object File (.pof) in the Programming filetype list.

    3. In the Mode list, select Internal Configuration.

    4. In the File name box, specify the file name for the programming file you want to create.

    5. To generate a Memory Map File (.map), turn on Create Memory Map File (Auto generateoutput_file.map). The .map contains the address of the CFM and UFM with the ICB setting that youset through the Option/Boot Info option.

    6. To generate a Raw Programming Data (.rpd), turn on Create config data RPD (Generateoutput_file_auto.rpd).With the help of Memory Map File, you can easily identify the data for each functional block inthe .rpd file. You can also extract the flash data for third party programming tools or update theconfiguration or user data through the Altera On-Chip Flash IP.

    --- Quote End ---

    The IP Catalog shows a Remote Upgrade IP Core. This one seems to be able to write to the CFM. The Problem is, there is a huge inconvenient Avalon Bus on it. In this document (https://www.altera.com/content/dam/altera-www/global/en_us/pdfs/literature/ug/ug_altremote.pdf), its talking about a direct ip core variant - but i cant find an option for direct access interface as shown on Page 9. :-(

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

    I'm glad you were able to get the data you required.

    You do not have to have an Avalon Bus for the Remote Update Core. But the problem, is as of Quartus 15.0 at least, this core is not available for the MAX10.

    The other problem, is Altera hasn't always provided a simulation model for this IP, so it's a bit of a hack to get it to work.

    We have it working for one of our systems with a simple UART interface to a remote external CPU that writes through the remote update IP using a statemachine to manage everything.

    Pete