PUF eFUSE Settings

External Secure Storage Using the PUF (XAPP1333)

Document ID
XAPP1333
Release Date
2022-04-12
Revision
1.2 English

PUF registration is covered in detail in Using the PUF in the UltraScale+ MPSoC: Embedded Design Tutorial (UG1209) [Ref 5] so only a summary pertaining to this application note is documented here.

1. In the Vitis workspace for this application note, right-click on the platform.spr that is located under ZCU102_XAPP1333 platform in the Explorer view and click Open .

2. Select Board Support Package under standalone on psu_cortexa53_0 in the ZCU102_XAPP1333 platform view and click Modify BSP settings .

Figure 4: Standalone BSP for PUF eFUSE registration

X-Ref Target - Figure 4

X26511-Page-1.jpg

3. In the Supported Libraries , select xilsecure and xilskey .

4. Click OK to close the window.

5. Right-click the ZCU102_XAPP1333 platform in the Explorer view, which is now marked out-of-date, and click Build Project .

6. Select Board Support Package under standalone on psu_cortexa53_0 in the platform view that just opened and select Libraries tab in Operating Systems section .

7. Scroll to the bottom of the Libraries tab and click Import Examples for the xilskey library.

8. Check the xilskey_puf_registration example and click OK . This adds the associated project to your workspace.

9. Open the xilskey_puf_registration . h file in the src folder under the fully expanded xilskey_puf_registration_example_1_system in the Project Explorer tab.

10. Change the definition of XSK_PUF_INFO_ON_UART to TRUE . This setting is extremely important to verify the PUF registration completed successfully.

11. Ensure the definition of XSK_PUF_PROGRAM_EFUSE is set to TRUE .

12. Change the definition of XSK_PUF_PROGRAM_SECUREBITS to TRUE .

13. Change the definition of XSK_PUF_SYN_WRLK to TRUE .

14. Set the XSK_PUF_AES_KEY to the Key 0 value in the aes_key.nky file.

15. Set the XSK_PUF_BLACK_KEY_IV to a value that is user choice. This IV is not related to the IV created in aes_key.nky and can be any user generated value. This IV is used by encryption when encrypting the red key with the PUF’s KEK.

16. Create a file named puf_iv.txt with the ASCII-HEX string of the PUF IV used in XSK_PUF_BLACK_KEY_IV as this is needed during boot. Alternatively, use the one provided in the design documents in the Keys folder.

17. Verify all the required changes are made before continuing as shown in the figure below. The xilskey_puf_registration.h file with the example keys, shown in the figure below, is included in the reference design in the puf_registration folder.

18. To save changes to xilskey_puf_registration.h click File -> Save in the main toolbar.

Figure 5: PUF Registration File Required for eFUSE

X-Ref Target - Figure 5

fig4.png