xilskey
Vitis Drivers API Documentation
xilskey_bbram_ultrascale_input.h File Reference

Overview

This file contains macros which needs to configured by user based on the options selected by user operations will be performed.

Note
            User configurable parameters for Ultrascale BBRAM
    ----------------------------------------------------------------------
  #define XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_0           FALSE
  TRUE will program BBRAM with OBFUSCATED key provided in
  XSK_BBRAM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_0. While programming obfuscated key DPA
  configurations cannot be done due to silicon bug, and values provided
  in DPA configuration macros will be ignored.
  FALSE will program the BBRAM with key provided in XSK_BBRAM_AES_KEY_SLR_CONFIG_ORDER_0
  and DPA configurations (protect, count and mode) can be configured

  #define XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_1           FALSE
  TRUE will program BBRAM with OBFUSCATED key provided in
  XSK_BBRAM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_1. While programming obfuscated key DPA
  configurations cannot be done due to silicon bug, and values provided
  in DPA configuration macros will be ignored.
  FALSE will program the BBRAM with key provided in XSK_BBRAM_AES_KEY_SLR_CONFIG_ORDER_1
  and DPA configurations (protect, count and mode) can be configured

  #define XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_2           FALSE
  TRUE will program BBRAM with OBFUSCATED key provided in
  XSK_BBRAM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_2. While programming obfuscated key DPA
  configurations cannot be done due to silicon bug, and values provided
  in DPA configuration macros will be ignored.
  FALSE will program the BBRAM with key provided in XSK_BBRAM_AES_KEY_SLR_CONFIG_ORDER_2
  and DPA configurations (protect, count and mode) can be configured

  #define XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_3           FALSE
  TRUE will program BBRAM with OBFUSCATED key provided in
  XSK_BBRAM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_3. While programming obfuscated key DPA
  configurations cannot be done due to silicon bug, and values provided
  in DPA configuration macros will be ignored.
  FALSE will program the BBRAM with key provided in XSK_BBRAM_AES_KEY_SLR_CONFIG_ORDER_3
  and DPA configurations (protect, count and mode) can be configured

  #define           XSK_BBRAM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_0
  "b1c276899d71fb4cdd4a0a7905ea46c2e11f9574d09c7ea23b70b67de713ccd1"
  The value mentioned in this will be converted to hex buffer and the
  key is programmed into BBRAM, when program API used. It should be 64
  characters long, valid characters are 0-9,a-f,A-F. Any other character
  is considered as invalid string and will not program BBRAM. Note that,
  for writing the OBFUSCATED Key, XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_0 should
  have TRUE value.

  #define           XSK_BBRAM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_1
  "b1c276899d71fb4cdd4a0a7905ea46c2e11f9574d09c7ea23b70b67de713ccd1"
  The value mentioned in this will be converted to hex buffer and the
  key is programmed into BBRAM, when program API used. It should be 64
  characters long, valid characters are 0-9,a-f,A-F. Any other character
  is considered as invalid string and will not program BBRAM. Note that,
  for writing the OBFUSCATED Key, XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_1 should
  have TRUE value.

  #define           XSK_BBRAM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_2
  "b1c276899d71fb4cdd4a0a7905ea46c2e11f9574d09c7ea23b70b67de713ccd1"
  The value mentioned in this will be converted to hex buffer and the
  key is programmed into BBRAM, when program API used. It should be 64
  characters long, valid characters are 0-9,a-f,A-F. Any other character
  is considered as invalid string and will not program BBRAM. Note that,
  for writing the OBFUSCATED Key, XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_2 should
  have TRUE value.

  #define           XSK_BBRAM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_3
  "b1c276899d71fb4cdd4a0a7905ea46c2e11f9574d09c7ea23b70b67de713ccd1"
  The value mentioned in this will be converted to hex buffer and the
  key is programmed into BBRAM, when program API used. It should be 64
  characters long, valid characters are 0-9,a-f,A-F. Any other character
  is considered as invalid string and will not program BBRAM. Note that,
  for writing the OBFUSCATED Key, XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_3 should
  have TRUE value.

  #define XSK_BBRAM_PGM_AES_KEY_SLR_CONFIG_ORDER_0                  FALSE
  #define XSK_BBRAM_PGM_AES_KEY_SLR_CONFIG_ORDER_1                  FALSE
  #define XSK_BBRAM_PGM_AES_KEY_SLR_CONFIG_ORDER_2                  FALSE
  #define XSK_BBRAM_PGM_AES_KEY_SLR_CONFIG_ORDER_3                  FALSE
  TRUE will program BBRAM with AES Key provided in XSK_BBRAM_AES_KEY for
  particular SLR.

    #define         XSK_BBRAM_AES_KEY_SLR_CONFIG_ORDER_0
  "349de4571ae6d88de23de65489acf67000ff5ec901ae3d409aabbce4549812dd"
  #define   XSK_BBRAM_AES_KEY_SLR_CONFIG_ORDER_1
  "349de4571ae6d88de23de65489acf67000ff5ec901ae3d409aabbce4549812dd"
  #define   XSK_BBRAM_AES_KEY_SLR_CONFIG_ORDER_2
  "349de4571ae6d88de23de65489acf67000ff5ec901ae3d409aabbce4549812dd"
  #define   XSK_BBRAM_AES_KEY_SLR_CONFIG_ORDER_3
  "349de4571ae6d88de23de65489acf67000ff5ec901ae3d409aabbce4549812dd"
  The value mentioned in this will be converted to hex buffer and the
  key is programmed into BBRAM for particular SLR(1/2/3/4), when
  program API used. It should be 64 characters long, valid characters
  are 0-9,a-f,A-F. Any other character is considered as invalid string
  and will not program BBRAM. Note that, for writing the BBRAM Key, XSK_
  BBRAM_PGM_OBFUSCATED_KEY for particular SLR(1/2/3/4)should have FALSE value.

    #define XSK_BBRAM_AES_KEY_SIZE_IN_BITS  256

  #define XSK_BBRAM_DPA_PROTECT_ENABLE      FALSE
  TRUE will enable the DPA protection for BBRAM key, to enable
  DPA protection XSK_BBRAM_PGM_OBFUSCATED_KEY should be FALSE,
  as DPA protection is not supported for Obfuscated key due to silicon
  bug, XSK_BBRAM_DPA_COUNT should be in the range of 1-255 and
  XSK_BBRAM_DPA_MODE can be XSK_BBRAM_INVALID_CONFIGURATIONS or
  XSK_BBRAM_ALL_CONFIGURATIONS.
  FALSE will not enable DPA protection, XSK_BBRAM_DPA_COUNT and
  XSK_BBRAM_DPA_MODE both will be taken default values 0 and
  XSK_BBRAM_INVALID_CONFIGURATIONS respectively

  #define XSK_BBRAM_DPA_COUNT       0
  Default value will be zero,
  when XSK_BBRAM_DPA_PROTECT_ENABLE is TRUE this should be in range
  of 1-255 (should be greater that zero).

  #define XSK_BBRAM_DPA_MODE        XSK_BBRAM_INVALID_CONFIGURATIONS
  Default value is XSK_BBRAM_INVALID_CONFIGURATIONS
  When XSK_BBRAM_DPA_PROTECT_ENABLE is TRUE it can be
  XSK_BBRAM_INVALID_CONFIGURATIONS or XSK_BBRAM_ALL_CONFIGURATIONS
  If XSK_BBRAM_DPA_PROTECT_ENABLE is FALSE, it should be
  XSK_BBRAM_INVALID_CONFIGURATIONS.

  #define XSK_BBRAM_AXI_GPIO_DEVICE_ID  XPAR_AXI_GPIO_0_DEVICE_ID
  Default value is XPAR_AXI_GPIO_0_DEVICE_ID
  This macro is for providing exact GPIO device ID, based on the
  design configuration this macro should be modified to provide
  GPIO device ID which is used for connecting MASTER JTAG pins.

  In Ultrascale GPIO pins are used for connecting MASTER_JTAG pins to
  access BBRAM.
  Following are the GPIO pins and user can change these pins
  #define XSK_BBRAM_AXI_GPIO_JTAG_TDO       (0)
  #define XSK_BBRAM_AXI_GPIO_JTAG_TDI       (0)
  #define XSK_BBRAM_AXI_GPIO_JTAG_TMS       (1)
  #define XSK_BBRAM_AXI_GPIO_JTAG_TCK       (2)

  #define XSK_BBRAM_GPIO_INPUT_CH           (2)
  This macro is for providing channel number of ALL INPUTS connected(TDO)
  #define XSK_BBRAM_GPIO_OUTPUT_CH  (1)
  This macro is for providing channel number of ALL OUTPUTS connected
  (TDI, TCK, TMS)

  NOTE: All inputs and outputs of GPIO can be configured in single
  channel also
  i.e XSK_BBRAM_GPIO_INPUT_CH = XSK_BBRAM_GPIO_OUTPUT_CH = 1 or 2.
  Among (TDI, TCK, TMS) Outputs of GPIO cannot be connected to different
  GPIO channels all the 3 signals should be in same channel.
  TDO can be a other channel of (TDI, TCK, TMS) or the same.
  DPA protection can be enabled only when programming non-obfuscated key.
MODIFICATION HISTORY:
Ver   Who     Date     Changes


5.0 vns 09/01/16 First Release. 6.0 vns 07/28/16 Added counting configuration feature(DPA count), protection and to program Obfuscated key. 6.7 psl 03/20/19 Added BBRAM key write support for SSIT devices. psl 03/29/19 Added Support for user configurable GPIO for jtag control. 7.5 ng 07/13/23 added SDT support ng 09/02/23 fixed gpio macro in SDT flow

Macros

#define XSK_BBRAM_AXI_GPIO_DEVICE_ID   XPAR_AXI_GPIO_0_DEVICE_ID
 Following defines should be given in decimal/hexa-decimal values. More...
 
#define XSK_BBRAM_AXI_GPIO_JTAG_TDO   (0)
 MASTER JTAG GPIO pin for TDO. More...
 
#define XSK_BBRAM_AXI_GPIO_JTAG_TDI   (0)
 MASTER JTAG GPIO pin for TDI. More...
 
#define XSK_BBRAM_AXI_GPIO_JTAG_TMS   (1)
 MASTER JTAG GPIO pin for TMS. More...
 
#define XSK_BBRAM_AXI_GPIO_JTAG_TCK   (2)
 MASTER JTAG GPIO pin for TCK. More...
 
#define XSK_BBRAM_GPIO_INPUT_CH   (2)
 GPIO Channel of TDO pin connected. More...
 
#define XSK_BBRAM_GPIO_OUTPUT_CH   (1)
 GPIO Channel of TDI, TMS and TCK pin connected. More...
 
#define XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_0   FALSE
 TRUE burns obfuscated key. More...
 
#define XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_1   FALSE
 TRUE burns obfuscated key. More...
 
#define XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_2   FALSE
 TRUE burns obfuscated key. More...
 
#define XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_3   FALSE
 TRUE burns obfuscated key. More...
 
#define XSK_BBRAM_PGM_AES_KEY_SLR_CONFIG_ORDER_0   FALSE
 If the following is TRUE BBRAM Key in corresponding XSK_BBRAM_AES_KEY_SLR_CONFIG_ORDER_INDEX is programmed Returns error if the target doesn't have enabled SLR. More...
 
#define XSK_BBRAM_PGM_AES_KEY_SLR_CONFIG_ORDER_1   FALSE
 TRUE burns BBRAM key. More...
 
#define XSK_BBRAM_PGM_AES_KEY_SLR_CONFIG_ORDER_2   FALSE
 TRUE burns BBRAM key. More...
 
#define XSK_BBRAM_PGM_AES_KEY_SLR_CONFIG_ORDER_3   FALSE
 TRUE burns BBRAM key. More...
 
#define XSK_BBRAM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_0   "b1c276899d71fb4cdd4a0a7905ea46c2e11f9574d09c7ea23b70b67de713ccd1"
 This is the 256 bit key to be programmed into BBRAM. More...
 

Macro Definition Documentation

#define XSK_BBRAM_AXI_GPIO_DEVICE_ID   XPAR_AXI_GPIO_0_DEVICE_ID

Following defines should be given in decimal/hexa-decimal values.

These are to be defined for Ultrascale Microblaze AXI GPIO pin numbers connected to MASTER JTAG primitive and corresponding channel numbers for GPIO pins

#define XSK_BBRAM_AXI_GPIO_JTAG_TCK   (2)

MASTER JTAG GPIO pin for TCK.

#define XSK_BBRAM_AXI_GPIO_JTAG_TDI   (0)

MASTER JTAG GPIO pin for TDI.

#define XSK_BBRAM_AXI_GPIO_JTAG_TDO   (0)

MASTER JTAG GPIO pin for TDO.

#define XSK_BBRAM_AXI_GPIO_JTAG_TMS   (1)

MASTER JTAG GPIO pin for TMS.

#define XSK_BBRAM_GPIO_INPUT_CH   (2)

GPIO Channel of TDO pin connected.

#define XSK_BBRAM_GPIO_OUTPUT_CH   (1)

GPIO Channel of TDI, TMS and TCK pin connected.

#define XSK_BBRAM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_0   "b1c276899d71fb4cdd4a0a7905ea46c2e11f9574d09c7ea23b70b67de713ccd1"

This is the 256 bit key to be programmed into BBRAM.

This should entered by user in HEX.

Referenced by main().

#define XSK_BBRAM_PGM_AES_KEY_SLR_CONFIG_ORDER_0   FALSE

If the following is TRUE BBRAM Key in corresponding XSK_BBRAM_AES_KEY_SLR_CONFIG_ORDER_INDEX is programmed Returns error if the target doesn't have enabled SLR.

TRUE burns BBRAM key

Referenced by main().

#define XSK_BBRAM_PGM_AES_KEY_SLR_CONFIG_ORDER_1   FALSE

TRUE burns BBRAM key.

Referenced by main().

#define XSK_BBRAM_PGM_AES_KEY_SLR_CONFIG_ORDER_2   FALSE

TRUE burns BBRAM key.

Referenced by main().

#define XSK_BBRAM_PGM_AES_KEY_SLR_CONFIG_ORDER_3   FALSE

TRUE burns BBRAM key.

Referenced by main().

#define XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_0   FALSE

TRUE burns obfuscated key.

Referenced by main().

#define XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_1   FALSE

TRUE burns obfuscated key.

Referenced by main().

#define XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_2   FALSE

TRUE burns obfuscated key.

Referenced by main().

#define XSK_BBRAM_PGM_OBFUSCATED_KEY_SLR_CONFIG_ORDER_3   FALSE

TRUE burns obfuscated key.

Referenced by main().