Forum Discussion

AALDH1's avatar
AALDH1
Icon for New Contributor rankNew Contributor
5 years ago

How to boot and decrypt RBF for Arria 10 using non-volatile key (Fuse) ?

hello

i can boot and decrypt RBF if i program the ekp file (voltile key ), but i need it to decrypt using the fuse which i already programed to the board.

thanks for your help.

4 Replies

  • ShafiqY_Intel's avatar
    ShafiqY_Intel
    Icon for Frequent Contributor rankFrequent Contributor

    Hi AALDHI1,

    When you mention boot, is it related to Arria 10 SOC ARM booting?

    May I know how do you program the ekp file for non-volatile key?

    and also, can you describe how you program. boot and decrypt the ekp forvolatile (the success one)?

    Thanks

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

    yes i am using HPS , after i generated the ekp file i convert it to .jam file and programed it using this command "quartus_jli -c 1 key.jam -aKEY_program"

    but the system after i boot it up keep resting unitle i program the voltile key using "quartus_jli -c 1 key.jam -aKEY_CONFIGURE " then it will decrypt the RBF and will boot the Linux kernel .

  • ShafiqY_Intel's avatar
    ShafiqY_Intel
    Icon for Frequent Contributor rankFrequent Contributor

    Hi AALDH1,

    May I know which USB blaster you are using?

    There two things you can try here:

    1.Can you try to performed “quartus_jli -c 1 key.jam -aKEY_VERIFY”.

    This to unsure the FPGA key is programmed correctly. Refer to table 16 in AN556,

    https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/an/an556.pdf#page=25

    2.May I know how do you generate the rbf file? I suspect that the rbf file generation is setting it to volatile key.

    For 20nm FPGA (Arria 10), both volatile and non-volatile key can exist in a device. User can choose which key to use by setting the option bits in encrypted configuration file through the Convert Programming File tool or the Qcrypt tool.

    I suspect your issue, it is always trying to read the key from volatile. you need to change the option bit that it is reading the key from non-volatile key. Refer to table 4 in AN556,

    https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/an/an556.pdf#page=5

    I hope this will help.

    Thanks