From f2b640df49ccd6ab4f06dd65b29d23f314d4953a Mon Sep 17 00:00:00 2001 From: Laukik Hase Date: Tue, 10 Mar 2026 19:38:34 +0530 Subject: [PATCH] feat(esp_tee): Enable GDMA burst mode for AES/SHA operations - Co-authored-by: Harshal Patil --- .../mbedtls/esp_tee/esp_tee_crypto_shared_gdma.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/components/mbedtls/esp_tee/esp_tee_crypto_shared_gdma.c b/components/mbedtls/esp_tee/esp_tee_crypto_shared_gdma.c index 29b55762e5..4a99952282 100644 --- a/components/mbedtls/esp_tee/esp_tee_crypto_shared_gdma.c +++ b/components/mbedtls/esp_tee/esp_tee_crypto_shared_gdma.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -53,6 +53,10 @@ #define dma_ll_rx_stop DMA_LL_FUNC(rx_stop) #define dma_ll_tx_set_priority DMA_LL_FUNC(tx_set_priority) #define dma_ll_rx_set_priority DMA_LL_FUNC(rx_set_priority) +#if SOC_AHB_GDMA_VERSION == 2 +#define dma_ll_tx_set_burst_size DMA_LL_FUNC(tx_set_burst_size) +#define dma_ll_rx_set_burst_size DMA_LL_FUNC(rx_set_burst_size) +#endif /* * NOTE: [ESP-TEE] This is a low-level (LL), non-OS version of @@ -70,10 +74,16 @@ static void crypto_shared_gdma_init(void) dma_ll_force_enable_reg_clock(&DMA_DEV, true); // setting the transfer ability +#if SOC_AHB_GDMA_VERSION == 2 + dma_ll_rx_enable_data_burst(&DMA_DEV, TEE_CRYPTO_GDMA_CH, true); + dma_ll_rx_set_burst_size(&DMA_DEV, TEE_CRYPTO_GDMA_CH, 16); + dma_ll_tx_set_burst_size(&DMA_DEV, TEE_CRYPTO_GDMA_CH, 16); +#else + dma_ll_rx_enable_data_burst(&DMA_DEV, TEE_CRYPTO_GDMA_CH, false); +#endif dma_ll_tx_enable_data_burst(&DMA_DEV, TEE_CRYPTO_GDMA_CH, true); dma_ll_tx_enable_descriptor_burst(&DMA_DEV, TEE_CRYPTO_GDMA_CH, true); - dma_ll_rx_enable_data_burst(&DMA_DEV, TEE_CRYPTO_GDMA_CH, false); dma_ll_rx_enable_descriptor_burst(&DMA_DEV, TEE_CRYPTO_GDMA_CH, true); dma_ll_tx_reset_channel(&DMA_DEV, TEE_CRYPTO_GDMA_CH);