FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
5156 Discussions

Write Internal UFM Flas Memory of MAX10 Using Nios Command Shell


hi everyone,,

I have to implement a way to write Flash data of a max 10 without opening Quartus. In particular I need to overwrite only the ufm part of the internal flash (UFM) of MAX10 through JTAG using USB Blaster.

I can already do this by first creating sof file and hex data file and then using the Quartus 'Convert Programming Files' feature. This way I can create the final pof file.

Then through 'Programmer' I write only the UFM part. What I would like to do is generate the pof file without opening Quartus. I thought I was using Nios Command Shell, but I can't find the right commands, can anyone tell me if it's possible and how to do it?

Thanks for your help.

0 Kudos
2 Replies

Use this executable quartus_cpf in command line which equivalent to "Convert Programming Files" in GUI. Refer to https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug-qps-scripting.pdf, 1.8.7 pg14


=> quartus_cpf --convert --device=EPCS64 <file name>.sof <file name>.pof


thanks Cng,

but that was not what I meant.

However I have the answer, I hope it is useful to everyone.

To generate the pof file you need to use the command:

quartus_cpf -c file.cof


the cof file is an xml file that is generated by Quartus Programmer.

Report below the contents of the cof file:


<? xml version = "1.0" encoding = "US-ASCII" standalone = "yes"?> <Cof> <Output_filename> C: / ____ _________ filepath. Pof </ output_filename> <N_pages> 1 </ n_pages> <Width> 1 </ width> <Mode> 14 </ mode> <Sof_data> <User_name> PAGE_0 </ user_name> <Page_flags> 1 </ page_flags> <Bit 0> <Sof_filename> C: / ____ _________ filepath. Sof <compress_bitstream> 1 </ compress_bitstream> </ sof_filename> </ Bit0> </ Sof_data> <Version> 10 </ version> <Create_cvp_file> 0 </ create_cvp_file> <Create_hps_iocsr> 0 </ create_hps_iocsr> <Auto_create_rpd> 0 </ auto_create_rpd> <Rpd_little_endian> 1 </ rpd_little_endian> <Options> <Map_file> 0 </ map_file> </ Option> <MAX10_device_options> <Por> 0 </ por> <Io_pullup> 1 </ io_pullup> <Config_from_cfm0_only> 0 </ config_from_cfm0_only> <Isp_source> 0 </ isp_source> <Verify_protect> 0 </ verify_protect> <Epof> 0 </ epof> <Ufm_source> 2 </ ufm_source> <Ufm_filepath> C: / ____ _________ filepath. HEX </ ufm_filepath> </ MAX10_device_options> <Advanced_options> <Ignore_epcs_id_check> 2 </ ignore_epcs_id_check> <Ignore_condone_check> 2 </ ignore_condone_check> <Plc_adjustment> 0 </ plc_adjustment> <Post_chain_bitstream_pad_bytes> -1 </ post_chain_bitstream_pad_bytes> <Post_device_bitstream_pad_bytes> -1 </ post_device_bitstream_pad_bytes> <Bitslice_pre_padding> 1 </ bitslice_pre_padding> </ Advanced_options> </ Cof>


Once the pof file has been generated, it is possible to program the device with the command:

quartus_pgm -c