xilpuf
Vitis Drivers API Documentation
xilpuf_ssit_client_example.c File Reference

Overview

This file illustrates encryption of red key using PUF KEY and programming the black key and helper data in a user specified location for Primary SLR0, Secondary SLR1, Secondary SLR2 and Secondary SLR3.

To build this application, xilmailbox library must be included in BSP and xilsecure, xilnvm and xilpuf must be in client mode.

This example is supported for Versal devices.

Procedure to link and compile the example for the default ddr less designs

The default linker settings places a software stack, heap and data in DDR memory. For this example to work, any data shared between client running on A72/R5/PL and server running on PMC, should be placed in area which is accessible to both client and server.

Following is the procedure to compile the example on OCM or any memory region which can be accessed by server

           1. Open example linker script(lscript.ld) in Vitis project and section to memory mapping should
                   be updated to point all the required sections to shared memory(OCM or TCM)
                   using a memory region drop down selection

                                           OR

           1. In linker script(lscript.ld) user can add new memory section in source tab as shown below
                   .sharedmemory : {
                   . = ALIGN(4);
                   __sharedmemory_start = .;
                   *(.sharedmemory)
                   *(.sharedmemory.*)
                   *(.gnu.linkonce.d.*)
                   __sharedmemory_end = .;
                   } > versal_cips_0_pspmc_0_psv_ocm_ram_0_psv_ocm_ram_0

           2. In this example ".data" section elements that are passed by reference to the server-side should
              be stored in the above shared memory section. To make it happen in below example,
              replace ".data" in attribute section with ".sharedmemory". For example,
   static XPuf_DataAddr PufData __attribute__ ((aligned (64U)) __attribute__ ((section (".data.PufData")));
                                   should be changed to
   static XPuf_DataAddr PufData __attribute__ ((aligned (64U)) __attribute__ ((section (".sharedmemory.PufData")));

To keep things simple, by default the cache is disabled for this example

 MODIFICATION HISTORY:
 Ver   Who   Date     Changes


2.5 hj 02/11/25 Initial release 2.5 hj 03/25/25 Remove master and slave keywords

Note

Macros

#define XNVM_MAX_SLR_NUM   (XNVM_SLR_INDEX_3)
 Max SLR number. More...
 

Macro Definition Documentation

#define XNVM_MAX_SLR_NUM   (XNVM_SLR_INDEX_3)

Max SLR number.