1
1
/*
2
- * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
2
+ * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
3
3
*
4
4
* SPDX-License-Identifier: Apache-2.0
5
5
*/
@@ -76,14 +76,24 @@ TEST_CASE("GDMA channel allocation", "[GDMA]")
76
76
channel_config .sibling_chan = NULL ;
77
77
TEST_ESP_OK (gdma_new_ahb_channel (& channel_config , & rx_channels [0 ]));
78
78
79
- TEST_ESP_OK (gdma_connect (tx_channels [0 ], GDMA_MAKE_TRIGGER (GDMA_TRIG_PERIPH_UHCI , 0 )));
79
+ gdma_trigger_t fake_ahb_trigger1 = {
80
+ .periph = 1 ,
81
+ .bus_id = SOC_GDMA_BUS_AHB ,
82
+ .instance_id = 0 ,
83
+ };
84
+ gdma_trigger_t fake_ahb_trigger2 = {
85
+ .periph = 2 ,
86
+ .bus_id = SOC_GDMA_BUS_AHB ,
87
+ .instance_id = 1 ,
88
+ };
89
+ TEST_ESP_OK (gdma_connect (tx_channels [0 ], fake_ahb_trigger1 ));
80
90
// can't connect multiple channels to the same peripheral
81
- TEST_ESP_ERR (ESP_ERR_INVALID_STATE , gdma_connect (tx_channels [1 ], GDMA_MAKE_TRIGGER ( GDMA_TRIG_PERIPH_UHCI , 0 ) ));
82
- TEST_ESP_OK (gdma_connect (tx_channels [1 ], GDMA_MAKE_TRIGGER ( GDMA_TRIG_PERIPH_M2M , 0 ) ));
91
+ TEST_ESP_ERR (ESP_ERR_INVALID_STATE , gdma_connect (tx_channels [1 ], fake_ahb_trigger1 ));
92
+ TEST_ESP_OK (gdma_connect (tx_channels [1 ], fake_ahb_trigger2 ));
83
93
84
- TEST_ESP_OK (gdma_connect (rx_channels [0 ], GDMA_MAKE_TRIGGER (GDMA_TRIG_PERIPH_UHCI , 0 )));
85
94
// but rx and tx can connect to the same peripheral
86
- TEST_ESP_OK (gdma_connect (rx_channels [1 ], GDMA_MAKE_TRIGGER (GDMA_TRIG_PERIPH_M2M , 0 )));
95
+ TEST_ESP_OK (gdma_connect (rx_channels [0 ], fake_ahb_trigger1 ));
96
+ TEST_ESP_OK (gdma_connect (rx_channels [1 ], fake_ahb_trigger2 ));
87
97
for (int i = 0 ; i < 2 ; i ++ ) {
88
98
TEST_ESP_OK (gdma_disconnect (tx_channels [i ]));
89
99
TEST_ESP_OK (gdma_disconnect (rx_channels [i ]));
@@ -135,14 +145,24 @@ TEST_CASE("GDMA channel allocation", "[GDMA]")
135
145
channel_config .sibling_chan = NULL ;
136
146
TEST_ESP_OK (gdma_new_axi_channel (& channel_config , & rx_channels [0 ]));
137
147
138
- TEST_ESP_OK (gdma_connect (tx_channels [0 ], GDMA_MAKE_TRIGGER (GDMA_TRIG_PERIPH_SPI , 2 )));
148
+ gdma_trigger_t fake_axi_trigger1 = {
149
+ .periph = 1 ,
150
+ .bus_id = SOC_GDMA_BUS_AXI ,
151
+ .instance_id = 0 ,
152
+ };
153
+ gdma_trigger_t fake_axi_trigger2 = {
154
+ .periph = 2 ,
155
+ .bus_id = SOC_GDMA_BUS_AXI ,
156
+ .instance_id = 1 ,
157
+ };
158
+ TEST_ESP_OK (gdma_connect (tx_channels [0 ], fake_axi_trigger1 ));
139
159
// can't connect multiple channels to the same peripheral
140
- TEST_ESP_ERR (ESP_ERR_INVALID_STATE , gdma_connect (tx_channels [1 ], GDMA_MAKE_TRIGGER ( GDMA_TRIG_PERIPH_SPI , 2 ) ));
141
- TEST_ESP_OK (gdma_connect (tx_channels [1 ], GDMA_MAKE_TRIGGER ( GDMA_TRIG_PERIPH_M2M , 0 ) ));
160
+ TEST_ESP_ERR (ESP_ERR_INVALID_STATE , gdma_connect (tx_channels [1 ], fake_axi_trigger1 ));
161
+ TEST_ESP_OK (gdma_connect (tx_channels [1 ], fake_axi_trigger2 ));
142
162
143
- TEST_ESP_OK (gdma_connect (rx_channels [0 ], GDMA_MAKE_TRIGGER (GDMA_TRIG_PERIPH_SPI , 2 )));
144
163
// but rx and tx can connect to the same peripheral
145
- TEST_ESP_OK (gdma_connect (rx_channels [1 ], GDMA_MAKE_TRIGGER (GDMA_TRIG_PERIPH_M2M , 0 )));
164
+ TEST_ESP_OK (gdma_connect (rx_channels [0 ], fake_axi_trigger1 ));
165
+ TEST_ESP_OK (gdma_connect (rx_channels [1 ], fake_axi_trigger2 ));
146
166
for (int i = 0 ; i < 2 ; i ++ ) {
147
167
TEST_ESP_OK (gdma_disconnect (tx_channels [i ]));
148
168
TEST_ESP_OK (gdma_disconnect (rx_channels [i ]));
@@ -153,7 +173,7 @@ TEST_CASE("GDMA channel allocation", "[GDMA]")
153
173
}
154
174
155
175
static void test_gdma_config_link_list (gdma_channel_handle_t tx_chan , gdma_channel_handle_t rx_chan ,
156
- gdma_link_list_handle_t * tx_link_list , gdma_link_list_handle_t * rx_link_list , size_t sram_alignment , bool dma_link_in_ext_mem )
176
+ gdma_link_list_handle_t * tx_link_list , gdma_link_list_handle_t * rx_link_list , size_t sram_alignment , bool dma_link_in_ext_mem )
157
177
{
158
178
159
179
gdma_strategy_config_t strategy = {
@@ -366,7 +386,7 @@ static void test_gdma_m2m_mode(bool trig_retention_backup)
366
386
TEST_CASE ("GDMA M2M Mode" , "[GDMA][M2M]" )
367
387
{
368
388
test_gdma_m2m_mode (false);
369
- #if SOC_GDMA_SUPPORT_SLEEP_RETENTION
389
+ #if CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP && SOC_GDMA_SUPPORT_SLEEP_RETENTION
370
390
// test again with retention
371
391
test_gdma_m2m_mode (true);
372
392
#endif
@@ -384,7 +404,7 @@ static bool test_gdma_m2m_unalgined_rx_eof_callback(gdma_channel_handle_t dma_ch
384
404
BaseType_t task_woken = pdFALSE ;
385
405
test_gdma_context_t * user_ctx = (test_gdma_context_t * )user_data ;
386
406
for (int i = 0 ; i < 3 ; i ++ ) {
387
- if (user_ctx -> align_array -> aligned_buffer [i ].aligned_buffer && user_ctx -> need_invalidate ) {
407
+ if (user_ctx -> align_array -> aligned_buffer [i ].aligned_buffer && user_ctx -> need_invalidate ) {
388
408
TEST_ESP_OK (esp_cache_msync (user_ctx -> align_array -> aligned_buffer [i ].aligned_buffer , ALIGN_UP (user_ctx -> align_array -> aligned_buffer [i ].length , user_ctx -> split_alignment ), ESP_CACHE_MSYNC_FLAG_DIR_M2C ));
389
409
}
390
410
}
@@ -471,7 +491,7 @@ static void test_gdma_m2m_unalgined_buffer_test(uint8_t *dst_data, uint8_t *src_
471
491
472
492
// validate the destination data
473
493
for (int i = 0 ; i < data_length ; i ++ ) {
474
- TEST_ASSERT_EQUAL (i % 256 , dst_data [i + offset_len ]);
494
+ TEST_ASSERT_EQUAL (i % 256 , dst_data [i + offset_len ]);
475
495
}
476
496
477
497
free (stash_buffer );
0 commit comments