| | |
| | | .dma_in_ch = DMA_CH2, |
| | | .dma_out_ch = DMA_CH3, |
| | | .config = |
| | | { |
| | | .key = {0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf}, |
| | | .int_en = false, |
| | | .dma_en = true, |
| | | .din_burst_size = 1, |
| | | .dout_burst_size = 1, |
| | | }, |
| | | { |
| | | .key = {0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf}, |
| | | .int_en = false, |
| | | .dma_en = true, |
| | | .din_burst_size = 1, |
| | | .dout_burst_size = 1, |
| | | }, |
| | | }, |
| | | }; |
| | | |
| | |
| | | // update state |
| | | switch (aes_handle[id].state) |
| | | { |
| | | case AES_STATE_READY: |
| | | aes_handle[id].state = AES_STATE_BUSY; |
| | | break; |
| | | case AES_STATE_BUSY: |
| | | int_unlock(lock); |
| | | return DRV_BUSY; |
| | | case AES_STATE_BREAK: |
| | | case AES_STATE_CONFLICT: |
| | | case AES_STATE_RESET: |
| | | case AES_STATE_TIMEOUT: |
| | | case AES_STATE_ERROR: |
| | | int_unlock(lock); |
| | | return DRV_ERROR; |
| | | case AES_STATE_READY: |
| | | aes_handle[id].state = AES_STATE_BUSY; |
| | | break; |
| | | case AES_STATE_BUSY: |
| | | int_unlock(lock); |
| | | return DRV_BUSY; |
| | | case AES_STATE_BREAK: |
| | | case AES_STATE_CONFLICT: |
| | | case AES_STATE_RESET: |
| | | case AES_STATE_TIMEOUT: |
| | | case AES_STATE_ERROR: |
| | | int_unlock(lock); |
| | | return DRV_ERROR; |
| | | } |
| | | |
| | | aes_handle[id].input = input; |
| | |
| | | #if 0 |
| | | switch (ret) |
| | | { |
| | | case MK_AES_CCM_ERROR_MAC_SIZE: |
| | | LOG_INFO(TRACE_MODULE_DRIVER, "MAC size ERR\r\n"); |
| | | break; |
| | | case MK_AES_CCM_ERROR_NONCE_SIZE: |
| | | LOG_INFO(TRACE_MODULE_DRIVER, "Nonce size ERR\r\n"); |
| | | break; |
| | | case MK_AES_CCM_ERROR_INPUT_BUF_NOT_ENOUGH: |
| | | LOG_INFO(TRACE_MODULE_DRIVER, "Insufficient input buffer space ERR\r\n"); |
| | | break; |
| | | case MK_AES_CCM_ERROR_OUTPUT_BUF_NOT_ENOUGH: |
| | | LOG_INFO(TRACE_MODULE_DRIVER, "Insufficient output buffer space ERR\r\n"); |
| | | break; |
| | | case MK_AES_CCM_ERROR_ADATA_LEN_NOT_SUPPORT: |
| | | LOG_INFO(TRACE_MODULE_DRIVER, "Length of authentication data shall be limited to 65517 bytes\r\n"); |
| | | break; |
| | | case MK_AES_CCM_ERROR_MAC_SIZE: |
| | | LOG_INFO(TRACE_MODULE_DRIVER, "MAC size ERR\r\n"); |
| | | break; |
| | | case MK_AES_CCM_ERROR_NONCE_SIZE: |
| | | LOG_INFO(TRACE_MODULE_DRIVER, "Nonce size ERR\r\n"); |
| | | break; |
| | | case MK_AES_CCM_ERROR_INPUT_BUF_NOT_ENOUGH: |
| | | LOG_INFO(TRACE_MODULE_DRIVER, "Insufficient input buffer space ERR\r\n"); |
| | | break; |
| | | case MK_AES_CCM_ERROR_OUTPUT_BUF_NOT_ENOUGH: |
| | | LOG_INFO(TRACE_MODULE_DRIVER, "Insufficient output buffer space ERR\r\n"); |
| | | break; |
| | | case MK_AES_CCM_ERROR_ADATA_LEN_NOT_SUPPORT: |
| | | LOG_INFO(TRACE_MODULE_DRIVER, "Length of authentication data shall be limited to 65517 bytes\r\n"); |
| | | break; |
| | | } |
| | | #else |
| | | if (ret) |