Forum Discussion

EFran7's avatar
EFran7
Icon for New Contributor rankNew Contributor
7 years ago

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.

2 Replies

  • EFran7's avatar
    EFran7
    Icon for New Contributor rankNew Contributor

    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