USER Keys (128-bit) and Related Parameters - 2020.2 English

OS and Libraries Document Collection (UG643)

Document ID
UG643
Release Date
2020-11-24
Version
2020.2 English
Note: For programming USER key 128 bit for MONO/SSIT device, the corresponding SLR and programming for USER key 128 bit should be enabled.

Enable the following parameters if you want to program USER key 128-bit for SLR2:

  1. Enable programming for SLR:
    • XSK_EFUSEPL_PGM_SLR_CONFIG_ORDER_2 should have the TRUE value.
  2. Enable USER key programming:
    • XSK_EFUSEPL_PROGRAM_USER_KEY_128BIT should have the TRUE value.
  3. Provide key to be programmed on SLR:
    • XSK_EFUSEPL_USER_KEY_128BIT_0_CONFIG_ORDER_2 , XSK_EFUSEPL_USER_KEY_128BIT_1_CONFIG_ORDER_2, XSK_EFUSEPL_USER_KEY_128BIT_2_CONFIG_ORDER_2, XSK_EFUSEPL_USER_KEY_128BIT_3_CONFIG_ORDER_2 should have value to be programmed in the string format. The key should be provided as below
      • XSK_EFUSEPL_USER_KEY_128BIT_0_CONFIG_ORDER_2 holds 31:0 bits,

XSK_EFUSEPL_USER_KEY_128BIT_1_CONFIG_ORDER_2 holds 63:32 bits,

  • XSK_EFUSEPL_USER_KEY_128BIT_2_CONFIG_ORDER_2 holds 95:64 bits and
  • XSK_EFUSEPL_USER_KEY_128BIT_3_CONFIG_ORDER_2 holds 127:96 bits of whole 128 bit User key. The following table shows USER key 128 bit and related parameters.
    Parameter Name Description
    XSK_EFUSEPL_PROGRAM_USER_KEY_

    128BIT
    Default = FALSE

    TRUE will burn 128 bit User key given in:

    XSK_EFUSEPL_USER_KEY_128BIT_0_

    CONFIG_ORDER_INDEX, XSK_EFUSEPL_USER_KEY_128BIT_1

    _CONFIG_ORDER_INDEX, XSK_EFUSEPL_USER_KEY_128BIT_2

    _CONFIG_ORDER_INDEX, XSK_EFUSEPL_USER_KEY_128BIT_3

    _CONFIG_ORDER_INDEX if corresponding XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_INDEX is TRUE, FALSE will ignore the values given.
    XSK_EFUSEPL_USER_KEY_128BIT_0

    _CONFIG_ORDER_0
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_0_

    CONFIG_ORDER_0 holds 31:0 bits, of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR0/MONO when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_0 are enabled with TRUE value.
    XSK_EFUSEPL_USER_KEY_128BIT_1

    _CONFIG_ORDER_0
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_1_

    CONFIG_ORDER_0 holds 63:32 bits, of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR0/MONO when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_0 are enabled with TRUE value.
    XSK_EFUSEPL_USER_KEY_128BIT_2

    _CONFIG_ORDER_0
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_2_

    CONFIG_ORDER_0 holds 95:64 bits of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR0/MONO when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_0 are enabled with TRUE value.
    XSK_EFUSEPL_USER_KEY_128BIT_3

    _CONFIG_ORDER_0
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_3_

    CONFIG_ORDER_0 holds 127:96 bits of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR0/MONO when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_0 are enabled with TRUE value.
    XSK_EFUSEPL_USER_KEY_128BIT_0

    _CONFIG_ORDER_1
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_0_

    CONFIG_ORDER_1 holds 31:0 bits, of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR1 when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_1 are enabled with TRUE value.
    XSK_EFUSEPL_USER_KEY_128BIT_1

    _CONFIG_ORDER_1
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_1_

    CONFIG_ORDER_1 holds 63:32 bits, of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR1 when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_1 are enabled with TRUE value.
    XSK_EFUSEPL_USER_KEY_128BIT_2

    _CONFIG_ORDER_1
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_2_

    CONFIG_ORDER_1 holds 95:64 bits of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR1 when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_1 are enabled with TRUE value.
    XSK_EFUSEPL_USER_KEY_128BIT_3

    _CONFIG_ORDER_1
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_3_

    CONFIG_ORDER_1 holds 127:96 bits of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR1 when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_1 are enabled with TRUE value.
    XSK_EFUSEPL_USER_KEY_128BIT_0

    _CONFIG_ORDER_2
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_0_

    CONFIG_ORDER_2 holds 31:0 bits, of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR2 when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_2 are enabled with TRUE value.
    XSK_EFUSEPL_USER_KEY_128BIT_1

    _CONFIG_ORDER_2
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_1_

    CONFIG_ORDER_2 holds 63:32 bits, of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR2 when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_2 are enabled with TRUE value.
    XSK_EFUSEPL_USER_KEY_128BIT_2

    _CONFIG_ORDER_2
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_2_

    CONFIG_ORDER_2 holds 95:64 bits of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR2 when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_2 are enabled with TRUE value.
    XSK_EFUSEPL_USER_KEY_128BIT_3

    _CONFIG_ORDER_2
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_3_

    CONFIG_ORDER_2 holds 127:96 bits of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR2 when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_2 are enabled with TRUE value.
    XSK_EFUSEPL_USER_KEY_128BIT_0

    _CONFIG_ORDER_3
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_0_

    CONFIG_ORDER_3 holds 31:0 bits, of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR3 when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_3 are enabled with TRUE value.
    XSK_EFUSEPL_USER_KEY_128BIT_1

    _CONFIG_ORDER_3
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_1_

    CONFIG_ORDER_3 holds 63:32 bits, of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR3 when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_3 are enabled with TRUE value.
    XSK_EFUSEPL_USER_KEY_128BIT_2

    _CONFIG_ORDER_3
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_2_

    CONFIG_ORDER_3 holds 95:64 bits of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR3 when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_3 are enabled with TRUE value.
    XSK_EFUSEPL_USER_KEY_128BIT_3

    _CONFIG_ORDER_3
    Default = 00000000

    Provides 128-bit User key for XSK_EFUSEPL_USER_KEY_128BIT_3_

    CONFIG_ORDER_3 holds 127:96 bits of whole 128 bit User key. The value mentioned in this will be converted to hex buffer and written into the PL eFUSE array of SLR3 when write API used. This value should be the User Key given in string format. It should be 8 characters long, valid characters are 0-9,a-f,A-F. Any other character is considered as invalid string and will not burn User Key.
    Note: For writing the User Key, make sure XSK_EFUSEPL_PROGRAM_USER_

    KEY_128BIT and XSK_EFUSEPL_PGM_SLR_CONFIG_

    ORDER_3 are enabled with TRUE value.
    CAUTION:
    If you want to program USER key for SLR 1 and AES key for SLR2 then this should be done separately. For this you need to enable the XSK_EFUSEPL_PGM_SLR1, XSK_EFUSEPL_PGM_SLR2, XSK_EFUSEPL_PROGRAM_USER_KEY, and XSK_EFUSEPL_PROGRAM_AES_KEY parameters with the TRUE value. If you do all the settings in one single go and provide the USER key in XSK_EFUSEPL_USER_KEY and AES key in XSK_EFUSEPL_AES_KEY_SLR2 then:

Enabling XSK_EFUSEPL_PROGRAM_USER_KEY will enable programming of USER key for both SLR1 And SLR2 as programming is enabled for both the SLR.

  • Enabling XSK_EFUSEPL_PROGRAM_AES_KEY will enable programming of AES key for both SLR1 And SLR2 as programming is enabled for both the SLR.
  • If you want to program USER key only for SLR1, then provided USER key will be programmed for SLR1 and Default key (all zeroes) will be programmed for SLR2.
  • If you want to program AES key only for SLR2, then provided AES key will be programmed for SLR2 and Default key will be programmed for SLR1.

    To avoid all the above mentioned scenarios, if programming is required for different key on different SLR, separate runs should be done.