Commit Graph

62 Commits

Author SHA1 Message Date
armando
73900c2d96 test(sdmmc): fixed sdmmc concurrent test issue 2025-03-27 11:50:35 +08:00
Ivan Grokhotkov
f7b977b405 test(sdmmc): add test for high-prio task busy while writing
Related to https://github.com/espressif/esp-idf/issues/13934
2025-03-11 10:51:06 +08:00
Ivan Grokhotkov
335027b731 fix(sdmmc): move DMA descriptor refilling into the ISR
Previously, as DMA descriptors were processed, the task performing
SDMMC transfer would get woken up and would refill the descriptors.
This design didn't work correctly when higher priority tasks occupied
the CPU for too long, resulting in SDMMC transfer timing out.

This change moves DMA descriptor refilling into SDMMC ISR. Now the
"DMA done" interrupt is delivered back to task context only when
the entire transfer is completed.

Closes https://github.com/espressif/esp-idf/issues/13934
2025-03-11 10:51:06 +08:00
igor.udot
daf2d31008 test: format all test scripts 2025-03-05 12:08:48 +08:00
Song Ruo Jing
53d8b70e8b fix(gpio): fix IO output enable control
oen_sel and oen_inv_sel fields from func_out_sel_cfg register
2025-02-20 19:49:28 +08:00
Wan Lei
76133bc373 Merge branch 'fix/remove_gpio_hal_iomux_func_sel' into 'master'
fix(driver_gpio): remove gpio_hal_iomux_func_sel

See merge request espressif/esp-idf!33928
2025-02-20 18:52:35 +08:00
wanckl
222b1ddbab fix(driver_gpio): remove gpio_hal_iomux_func_sel 2025-02-19 17:17:51 +08:00
Ivan Grokhotkov
6f49122b74 fix(sdmmc): fix missed deinitialization of CD and WP pins in f8f40ad
Related to https://github.com/espressif/esp-idf/issues/15330
2025-02-17 16:21:30 +01:00
Ivan Grokhotkov
f8f40ad94f fix(sdmmc): fix reset of pins above slot width
Closes https://github.com/espressif/esp-idf/issues/15328
2025-02-04 12:01:04 +01:00
Adam Múdry
30196f9430 fix(sdmmc): SDMMC concurrency change active slot only after the slot is initialized
Fixes counting of initialized slots
2025-01-27 03:41:01 +01:00
Armando
e8ad9b05aa refactor(sd): replace esp_dma_ with heap_caps_ 2025-01-20 10:54:59 +08:00
Armando
5e8c07a702 fix(sdmmc): fixed wrong emmc test (should be sdmmc) 2024-12-12 15:51:14 +08:00
Alexey Lapshin
888b5f7e8d feat(newlib): add picolibc support 2024-12-02 21:35:56 +07:00
Armando
7e7c8932b5 test(emmc): disabled emmc tests on p4 2024-11-26 09:52:49 +08:00
Armando
5c93ad2b7c ci(sd): use uart0 as usj always serial noise on ci on p4 2024-11-26 09:52:49 +08:00
Armando
072bf3a8ee test(sd): no uhs1 runner 2024-11-26 09:52:49 +08:00
Armando
7c384facd7 change(sdmmc): simplify cmd11 enable code 2024-11-15 15:22:02 +08:00
Armando
9e3b7e4558 feat(sdmmc): supported UHS-I SDR50 (100Mhz) and DDR50 mode 2024-11-13 09:47:45 +08:00
Ivan Grokhotkov
c41cead036 change(sdmmc): enable UHS-1 support in test_app, swap slots on P4 EV board 2024-11-12 15:39:42 +08:00
Ivan Grokhotkov
f5f46ab74c change(sdmmc): adapt host state machine for CMD11, commit reg/struct files 2024-11-12 15:39:42 +08:00
Ivan Grokhotkov
98f1dd969a change(sdmmc): disable the logic related to D3 line, it needs to be connected for CMD11 to work 2024-11-12 15:39:41 +08:00
Ivan Grokhotkov
2b29de78bb change(sdmmc): allow speciying pins for IOMUX slots as well 2024-11-12 15:39:41 +08:00
Ivan Grokhotkov
3107f0abe7 change(sdmmc): make sdmmc_host_clock_update_command compatible with CMD11 2024-11-12 15:39:41 +08:00
Adam Múdry
6bf2d91c4d test(sdmmc): Add test_apps test for sdmmc component 2024-11-05 02:36:43 +01:00
wuzhenghui
13e42707a0 feat(esp_hw_support): add clk tree source gate management api 2024-09-11 10:53:01 +08:00
Armando
a1da4f8a01 feat(sdmmc): sdmmc full ll layer 2024-09-03 17:03:42 +08:00
Adam Múdry
347800bcda Merge branch 'fix/sdmmc_host_init_slot_possible_bad_shift_op' into 'master'
fix(sdmmc): Fix possible bad bit shift operation

Closes IDF-10759

See merge request espressif/esp-idf!32885
2024-08-30 23:55:14 +08:00
Adam Múdry
24c1f084d0 fix(sdmmc): Fix possible bad bit shift operation and check if GPIO pins are valid 2024-08-30 15:01:10 +02:00
Armando
29bf116021 fix(sdspi): fixed sdspi on p4 2024-08-29 09:06:02 +08:00
Armando
c13f35a7cf feat(sdspi): support sdspi on c5 2024-08-29 09:06:02 +08:00
Adam Múdry
b263b9dff9 fix(sdmmc): Fix SDMMC slot switch timing related issue on ESP32-P4 2024-08-20 19:17:08 +08:00
Ivan Grokhotkov
8a9d3076d7 fix(sdmmc): don't disable SDIO interrupts when switching slots 2024-08-12 14:18:29 +02:00
Adam Múdry
d1571c144b Merge branch 'feat/sdmmc_support_concurrent_use' into 'master'
feat(sdmmc): Concurrent use of SDMMC peripheral

Closes IDF-9152

See merge request espressif/esp-idf!31150
2024-08-09 01:08:16 +08:00
Adam Múdry
014dddad1f feat(sdmmc): Concurrent use of SDMMC peripheral
Host and device (card, etc.) initialization is not thread-safe.
After initialization transactions are serialized and guarded by mutex.
Changed `SDMMC_HOST_DEFAULT()` default deinit function to `sdmmc_host_deinit_slot`
which has a slot number as argument.
2024-08-06 10:34:13 +02:00
Ivan Grokhotkov
ec66ecb176 ci(sdmmc): switch to usb_serial_jtag in the test app for P4
New CI runners use usb_serial_jtag, update configuration to match this.
2024-07-31 15:37:11 +02:00
Adam Múdry
caa4f7fd20 refactor(sdmmc): Allow sdmmc_host_init to be called multiple times
Along with slight refactor for sdmmc_host.c
2024-07-23 12:35:19 +02:00
Ivan Grokhotkov
6ed7e93676 fix(sdmmc): fix invalid data when reading/writing PSRAM buffers
Previous commit has enabled buffers in PSRAM for ESP32-P4. But this
also caused a regression for ESP32-S3, where PSRAM is not DMA capable.
This commit re-introduces the check for esp_ptr_external_ram in case
SOC_SDMMC_PSRAM_DMA_CAPABLE is not set.
2024-06-05 13:12:03 +02:00
Frantisek Hrbata
fbe8bf89ee fix: properly resolve component dependencies
There is currently a bug in the __build_resolve_and_add_req function in
tools/cmake/build.cmake where the check for registered component
requirements is incorrectly applied to the component itself rather than
its dependencies. This issue likely originated from a typo, using
component_target instead of _component_target. To prevent further
confusion, _component_target has been renamed to _req_target.

Fixing this revealed multiple incorrect dependencies for the Linux
target, which have now been resolved by explicitly specifying the
dependencies for the Linux target.

Closes https://github.com/espressif/esp-idf/issues/13447

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-05-30 22:01:55 +08:00
Ivan Grokhotkov
5b1fd0efe9 ci(sdmmc): enable tests for ESP32-P4 2024-05-24 15:05:35 +02:00
Ivan Grokhotkov
3f663ec789 ci(sdmmc): add test config for p4 2024-04-17 12:49:23 +02:00
Ivan Grokhotkov
ad6cce5e3a fix(sdmmc): correct unused pin number for P4 EV board 2024-04-17 12:49:23 +02:00
Ivan Grokhotkov
3546c81e32 ci(sdmmc): re-enable CD/WP tests 2024-04-17 12:49:22 +02:00
Ivan Grokhotkov
b08ddfb25b fix(sdmmc): don't fail in clock update commands when no card detected
Clock update commands don't actually require the card to be present,
so it's not necessary to fail at this stage.
2024-04-17 12:49:22 +02:00
Ivan Grokhotkov
96074470ec fix(sdmmc): correct power init in CD/WP tests for P4 2024-04-17 12:49:22 +02:00
Ivan Grokhotkov
ad51d0d1ca ci(sdmmc): clean up stdout to avoid false positive memory leaks 2024-04-17 12:49:22 +02:00
Ivan Grokhotkov
49b4bc175e feat(sdmmc): add support for PSRAM DMA on ESP32-P4 2024-04-12 12:56:18 +02:00
Ivan Grokhotkov
344439dfaa change(sdmmc): move SD power control logic into sdmmc_test_sd_begin
This simplifies the code a bit,
- removing SOC_SDMMC_IO_POWER_EXTERNAL ifdefs from error paths
- moving the LDO code next to where sdmmc_test_board_card_power_set
  is called for the same purpose
2024-04-04 15:02:11 +02:00
Ivan Grokhotkov
2bd1a8706d feat(sdmmc): add test config for ESP32-P4 EV board 2024-04-04 14:59:28 +02:00
gaoxu
40f38bea6f feat(dma): refactor dma calloc function 2024-04-02 14:30:14 +08:00
morris
4c2569e2fc change(sdmmc): update ldo acquire driver to new API 2024-03-25 21:19:12 +08:00