mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-09 20:41:14 +00:00
feat(gdma): set burst size and return alignment constraint
burst size can affect the buffer alignment
This commit is contained in:
@@ -73,12 +73,6 @@ static esp_err_t crypto_shared_gdma_init(void)
|
||||
.direction = GDMA_CHANNEL_DIRECTION_RX,
|
||||
};
|
||||
|
||||
gdma_transfer_ability_t transfer_ability = {
|
||||
.sram_trans_align = 1,
|
||||
.psram_trans_align = 16,
|
||||
};
|
||||
|
||||
|
||||
ret = crypto_shared_gdma_new_channel(&channel_config_tx, &tx_channel);
|
||||
if (ret != ESP_OK) {
|
||||
goto err;
|
||||
@@ -90,9 +84,13 @@ static esp_err_t crypto_shared_gdma_init(void)
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
||||
gdma_set_transfer_ability(tx_channel, &transfer_ability);
|
||||
gdma_set_transfer_ability(rx_channel, &transfer_ability);
|
||||
gdma_transfer_config_t transfer_cfg = {
|
||||
.max_data_burst_size = 16,
|
||||
.access_ext_mem = true, // crypto peripheral may want to access PSRAM
|
||||
};
|
||||
gdma_config_transfer(tx_channel, &transfer_cfg);
|
||||
transfer_cfg.max_data_burst_size = 0;
|
||||
gdma_config_transfer(rx_channel, &transfer_cfg);
|
||||
|
||||
gdma_connect(rx_channel, GDMA_MAKE_TRIGGER(GDMA_TRIG_PERIPH_AES, 0));
|
||||
gdma_connect(tx_channel, GDMA_MAKE_TRIGGER(GDMA_TRIG_PERIPH_AES, 0));
|
||||
@@ -223,7 +221,7 @@ bool esp_crypto_shared_gdma_done(void)
|
||||
{
|
||||
int rx_ch_id = 0;
|
||||
gdma_get_channel_id(rx_channel, &rx_ch_id);
|
||||
while(1) {
|
||||
while (1) {
|
||||
if ((axi_dma_ll_rx_get_interrupt_status(&AXI_DMA, rx_ch_id, true) & 1)) {
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user