14 #if (defined (__ADUCM4x50__) && (1 == ADI_CRYPTO_ENABLE_PKSTOR_SUPPORT)) 105 static uint32_t savedConfig;
106 static bool bEnableState =
false;
118 if (
true == bEnableState) {
119 return ADI_CRYPTO_PK_ALREADY_ENABLED;
121 savedConfig = hDevice->pDev->CFG;
122 hDevice->pDev->CFG = PK_CONFIG_BITS;
126 if (
true == bEnableState) {
127 hDevice->pDev->CFG = savedConfig;
128 bEnableState =
false;
130 return ADI_CRYPTO_PK_ALREADY_DISABLED;
169 uint32_t
volatile *pReg;
178 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
179 return ADI_CRYPTO_PK_NOT_ENABLED;
184 pReg = &hDevice->pDev->KUWVALSTR1;
186 for (uint32_t count = 0u; count < NUM_PKSTOR_VAL_STRING_WORDS; count++, pReg++) {
187 *pReg = u32FromU8p(pData8);
188 pData8 +=
sizeof(uint32_t);
214 uint32_t
volatile *pReg;
224 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
225 return ADI_CRYPTO_PK_NOT_ENABLED;
231 pReg = &hDevice->pDev->KUWVALSTR1;
232 for (uint32_t count = 0u; count < NUM_PKSTOR_VAL_STRING_WORDS; count++, pReg++) {
234 *pData8 = (uint8_t)((data32 & 0x000000ff) >> 0); pData8++;
235 *pData8 = (uint8_t)((data32 & 0x0000ff00) >> 8); pData8++;
236 *pData8 = (uint8_t)((data32 & 0x00ff0000) >> 16); pData8++;
237 *pData8 = (uint8_t)((data32 & 0xff000000) >> 24); pData8++;
277 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
278 return ADI_CRYPTO_PK_NOT_ENABLED;
281 if ((ADI_PK_KUW_LEN_128 != kuwDataLen) && (ADI_PK_KUW_LEN_256 != kuwDataLen) && (ADI_PK_KUW_LEN_512 != kuwDataLen)) {
282 return ADI_CRYPTO_PK_INVALID_KUWLEN;
287 CLR_BITS(hDevice->pDev->CFG, BITM_CRYPT_CFG_KUWKEYLEN);
288 SET_BITS(hDevice->pDev->CFG, (uint32_t)kuwDataLen);
316 uint32_t
volatile *pReg;
325 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
326 return ADI_CRYPTO_PK_NOT_ENABLED;
332 switch (hDevice->pDev->CFG & BITM_CRYPT_CFG_KUWKEYLEN) {
333 case ADI_PK_KUW_LEN_128:
336 case ADI_PK_KUW_LEN_256:
339 case ADI_PK_KUW_LEN_512:
344 return ADI_CRYPTO_PK_INVALID_KUWLEN;
352 pReg = &hDevice->pDev->KUW0;
354 for (count = 0u; count < num32; count++, pReg++) {
355 *pReg = u32FromU8p(pData8);
356 pData8 +=
sizeof(uint32_t);
360 for (; count < 16; count++, pReg++) {
418 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
419 return ADI_CRYPTO_PK_NOT_ENABLED;
424 return pkCmd(hDevice, ADI_PK_CMD_WRAP_KUW, 0);
481 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
482 return ADI_CRYPTO_PK_NOT_ENABLED;
487 return pkCmd(hDevice, ADI_PK_CMD_UNWRAP_KUW, 0);
517 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
518 return ADI_CRYPTO_PK_NOT_ENABLED;
523 return pkCmd(hDevice, ADI_PK_CMD_RESET_KUW, 0);
561 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
562 return ADI_CRYPTO_PK_NOT_ENABLED;
567 return pkCmd(hDevice, ADI_PK_CMD_USE_KEY, 0);
602 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
603 return ADI_CRYPTO_PK_NOT_ENABLED;
611 return pkCmd(hDevice, ADI_PK_CMD_USE_DEV_KEY, 0);
650 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
651 return ADI_CRYPTO_PK_NOT_ENABLED;
656 return pkCmd(hDevice, ADI_PK_CMD_RETRIEVE_KEY, index);
695 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
696 return ADI_CRYPTO_PK_NOT_ENABLED;
701 return pkCmd(hDevice, ADI_PK_CMD_STORE_KEY, index);
748 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
749 return ADI_CRYPTO_PK_NOT_ENABLED;
754 return pkCmd(hDevice, ADI_PK_CMD_ERASE_KEY, index);
790 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
791 return ADI_CRYPTO_PK_NOT_ENABLED;
796 return pkCmd(hDevice, ADI_PK_CMD_ERASE_PAGE, index);
806 volatile uint32_t status;
814 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
815 return ADI_CRYPTO_PK_NOT_ENABLED;
817 if (~BITM_CRYPT_PRKSTORCFG_KEY_INDEX & index) {
818 return ADI_CRYPTO_PK_INVALID_KUWLEN;
823 hDevice->pDev->STAT = 0xffffffff;
826 hDevice->pDev->PRKSTORCFG = cmd | (index << BITP_CRYPT_PRKSTORCFG_KEY_INDEX);
830 status = hDevice->pDev->STAT;
831 if (status & BITM_CRYPT_STAT_PRKSTOR_CMD_DONE)
835 if (status & BITM_CRYPT_STAT_PRKSTOR_CMD_FAIL)
836 return ADI_CRYPTO_PK_CMD_FAULT;
838 if (status & BITM_CRYPT_STAT_PRKSTOR_RET_STATUS)
839 return ADI_CRYPTO_PK_CMD_ECC_FAULT;
struct __ADI_CRYPTO_DEV_DATA_TYPE * ADI_CRYPTO_HANDLE