46 #if (defined (__ADUCM4x50__) && (1 == ADI_CRYPTO_ENABLE_PKSTOR_SUPPORT)) 137 static uint32_t savedConfig;
138 static bool bEnableState =
false;
150 if (
true == bEnableState) {
151 return ADI_CRYPTO_PK_ALREADY_ENABLED;
153 savedConfig = hDevice->pDev->CFG;
154 hDevice->pDev->CFG = PK_CONFIG_BITS;
158 if (
true == bEnableState) {
159 hDevice->pDev->CFG = savedConfig;
160 bEnableState =
false;
162 return ADI_CRYPTO_PK_ALREADY_DISABLED;
201 uint32_t
volatile *pReg;
210 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
211 return ADI_CRYPTO_PK_NOT_ENABLED;
216 pReg = &hDevice->pDev->KUWVALSTR1;
218 for (uint32_t count = 0u; count < NUM_PKSTOR_VAL_STRING_WORDS; count++, pReg++) {
219 *pReg = u32FromU8p(pData8);
220 pData8 +=
sizeof(uint32_t);
246 uint32_t
volatile *pReg;
256 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
257 return ADI_CRYPTO_PK_NOT_ENABLED;
263 pReg = &hDevice->pDev->KUWVALSTR1;
264 for (uint32_t count = 0u; count < NUM_PKSTOR_VAL_STRING_WORDS; count++, pReg++) {
266 *pData8 = (uint8_t)((data32 & 0x000000ff) >> 0); pData8++;
267 *pData8 = (uint8_t)((data32 & 0x0000ff00) >> 8); pData8++;
268 *pData8 = (uint8_t)((data32 & 0x00ff0000) >> 16); pData8++;
269 *pData8 = (uint8_t)((data32 & 0xff000000) >> 24); pData8++;
309 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
310 return ADI_CRYPTO_PK_NOT_ENABLED;
313 if ((ADI_PK_KUW_LEN_128 != kuwDataLen) && (ADI_PK_KUW_LEN_256 != kuwDataLen) && (ADI_PK_KUW_LEN_512 != kuwDataLen)) {
314 return ADI_CRYPTO_PK_INVALID_KUWLEN;
319 CLR_BITS(hDevice->pDev->CFG, BITM_CRYPT_CFG_KUWKEYLEN);
320 SET_BITS(hDevice->pDev->CFG, (uint32_t)kuwDataLen);
348 uint32_t
volatile *pReg;
357 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
358 return ADI_CRYPTO_PK_NOT_ENABLED;
364 switch (hDevice->pDev->CFG & BITM_CRYPT_CFG_KUWKEYLEN) {
365 case ADI_PK_KUW_LEN_128:
368 case ADI_PK_KUW_LEN_256:
371 case ADI_PK_KUW_LEN_512:
376 return ADI_CRYPTO_PK_INVALID_KUWLEN;
384 pReg = &hDevice->pDev->KUW0;
386 for (count = 0u; count < num32; count++, pReg++) {
387 *pReg = u32FromU8p(pData8);
388 pData8 +=
sizeof(uint32_t);
392 for (; count < 16; count++, pReg++) {
450 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
451 return ADI_CRYPTO_PK_NOT_ENABLED;
456 return pkCmd(hDevice, ADI_PK_CMD_WRAP_KUW, 0);
513 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
514 return ADI_CRYPTO_PK_NOT_ENABLED;
519 return pkCmd(hDevice, ADI_PK_CMD_UNWRAP_KUW, 0);
549 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
550 return ADI_CRYPTO_PK_NOT_ENABLED;
555 return pkCmd(hDevice, ADI_PK_CMD_RESET_KUW, 0);
593 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
594 return ADI_CRYPTO_PK_NOT_ENABLED;
599 return pkCmd(hDevice, ADI_PK_CMD_USE_KEY, 0);
634 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
635 return ADI_CRYPTO_PK_NOT_ENABLED;
643 return pkCmd(hDevice, ADI_PK_CMD_USE_DEV_KEY, 0);
682 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
683 return ADI_CRYPTO_PK_NOT_ENABLED;
688 return pkCmd(hDevice, ADI_PK_CMD_RETRIEVE_KEY, index);
727 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
728 return ADI_CRYPTO_PK_NOT_ENABLED;
733 return pkCmd(hDevice, ADI_PK_CMD_STORE_KEY, index);
780 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
781 return ADI_CRYPTO_PK_NOT_ENABLED;
786 return pkCmd(hDevice, ADI_PK_CMD_ERASE_KEY, index);
822 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
823 return ADI_CRYPTO_PK_NOT_ENABLED;
828 return pkCmd(hDevice, ADI_PK_CMD_ERASE_PAGE, index);
838 volatile uint32_t status;
846 if (PK_CONFIG_BITS != (PK_CONFIG_BITS & hDevice->pDev->CFG)) {
847 return ADI_CRYPTO_PK_NOT_ENABLED;
849 if (~BITM_CRYPT_PRKSTORCFG_KEY_INDEX & index) {
850 return ADI_CRYPTO_PK_INVALID_KUWLEN;
855 hDevice->pDev->STAT = 0xffffffff;
858 hDevice->pDev->PRKSTORCFG = cmd | (index << BITP_CRYPT_PRKSTORCFG_KEY_INDEX);
862 status = hDevice->pDev->STAT;
863 if (status & BITM_CRYPT_STAT_PRKSTOR_CMD_DONE)
867 if (status & BITM_CRYPT_STAT_PRKSTOR_CMD_FAIL)
868 return ADI_CRYPTO_PK_CMD_FAULT;
870 if (status & BITM_CRYPT_STAT_PRKSTOR_RET_STATUS)
871 return ADI_CRYPTO_PK_CMD_ECC_FAULT;
struct __ADI_CRYPTO_DEV_DATA_TYPE * ADI_CRYPTO_HANDLE