Forum Discussion
Hi there,
Is this POF directly converted from a SOF? Does it include any additional binary files, such as a .hex file for the HPS or others?
Typically, a POF is not suitable for use with the quartus_pfg --info command. However, if the original SOF is trusted, the POF generated using the PFG tool is usually not problematic.
Best regards,
WZ
- Ariel_Morali11 months ago
New Contributor
Hi,
If the POF is not suitable for use with the quartus_pfg --info command, can you suggest another way to verify the bitstream is encrypted?
The files are created using the OFS build_flash.sh script, while ofs_top_pof_flash.pfg was modified to enable encryption.
Specifically, The pof is created with "quartus_pfg -c ofs_top_pof_flash.pfg".
This is the content of ofs_top_pof_flash.pfg:
<pfg version="1">
<settings custom_db_dir="./" mode="AVSTX8"/>
<output_files>
<output_file name="ofs_top" directory="output_files/" type="POF">
<file_options/>
<secondary_file type="MAP" name="ofs_top_pof">
<file_options/>
</secondary_file>
<flash_device_id>Flash_Device_1</flash_device_id>
</output_file>
</output_files>
<bitstreams>
<bitstream id="Bitstream_1">
<path signing="ON" finalize_encryption="1" qek_file="keys/aes_root.qek" password="keys/passphrase.txt" signing_pem_file="keys/ac_adp_dev_fim_root_private_384.pem">output_files/ofs_top.sof</path>
</bitstream>
</bitstreams>
<raw_files>
<raw_file type="HEX" id="Info_Factory_1">./factory_image_info.hex</raw_file>
<raw_file type="HEX" id="Info_User_1">./user1_image_info.hex</raw_file>
<raw_file type="HEX" id="Info_User_2">./user2_image_info.hex</raw_file>
<raw_file type="RBF" id="VAB_Option_Bits_File">./vab_option_bits.bin</raw_file>
</raw_files>
<flash_devices>
<flash_device type="CFI_2Gb" id="Flash_Device_1">
<partition reserved="1" fixed_s_addr="0" s_addr="auto" e_addr="auto" fixed_e_addr="0" id="OPTIONS" size="0"/>
<partition reserved="0" fixed_s_addr="0" s_addr="0x00010000" e_addr="auto" fixed_e_addr="0" id="Option_Bits_VAB" size="0"/>
<partition reserved="0" fixed_s_addr="0" s_addr="0x00020000" e_addr="auto" fixed_e_addr="0" id="Factory_Image" size="0"/>
<partition reserved="0" fixed_s_addr="0" s_addr="0x04000000" e_addr="auto" fixed_e_addr="0" id="User_Image_1" size="0"/>
<partition reserved="0" fixed_s_addr="0" s_addr="0x07FF6000" e_addr="auto" fixed_e_addr="0" id="factory_image_info" size="0"/>
<partition reserved="0" fixed_s_addr="0" s_addr="0x07FF7000" e_addr="auto" fixed_e_addr="0" id="user1_image_info" size="0"/>
<partition reserved="0" fixed_s_addr="0" s_addr="0x07FF8000" e_addr="auto" fixed_e_addr="0" id="user2_image_info" size="0"/>
<partition reserved="0" fixed_s_addr="0" s_addr="0x08000000" e_addr="auto" fixed_e_addr="0" id="User_Image_2" size="0"/>
</flash_device>
</flash_devices>
<assignments>
<assignment page="1" partition_id="User_Image_1">
<bitstream_id>Bitstream_1</bitstream_id>
</assignment>
<assignment page="2" partition_id="User_Image_2">
<bitstream_id>Bitstream_1</bitstream_id>
</assignment>
<assignment page="0" partition_id="Factory_Image">
<bitstream_id>Bitstream_1</bitstream_id>
</assignment>
<assignment partition_id="factory_image_info">
<raw_file_id>Info_Factory_1</raw_file_id>
</assignment>
<assignment partition_id="user1_image_info">
<raw_file_id>Info_User_1</raw_file_id>
</assignment>
<assignment partition_id="user2_image_info">
<raw_file_id>Info_User_2</raw_file_id>
</assignment>
<assignment partition_id="Option_Bits_VAB">
<raw_file_id>VAB_Option_Bits_File</raw_file_id>
</assignment>
</assignments>
</pfg>