Commit Graph

339 Commits

Author SHA1 Message Date
Adam Múdry
25714837cf fix(storage): FATFS WL function formatting wrong partition
Closes https://github.com/espressif/esp-idf/issues/12542

Co-authored-by: Tony Stuart <anthonyfstuart@gmail.com>
2023-11-23 13:54:00 +01:00
Martin Vychodil
bd91c7b510 Merge branch 'contrib/github_pr_12567' into 'master'
Add option to configure FATFS_USE_LABEL boolean (GitHub PR)

Closes IDFGH-11429

See merge request espressif/esp-idf!27100
2023-11-22 17:57:23 +08:00
Armando
c50e364a97 refactor(sdspi): place sdspi driver into a new component 2023-11-20 12:30:03 +08:00
Armando
5b8d904a9b refactor(sdmmc): dependency inversion to sdmmc component 2023-11-16 15:37:32 +08:00
Steven Burnett
0a79d13a2d Add option to configure FATFS_USE_LABEL in menuconfig 2023-11-11 23:00:08 +00:00
Song Ruo Jing
9461993ec5 refactor(gpio): make gpio driver as component, and fix astyle 2023-11-03 15:42:23 +08:00
Tomáš Rohlínek
3f4698ac47
fix(storage/fatfs): add missing lock release introduced by IMMEDIATE_FSYNC 2023-10-30 10:22:08 +01:00
sonika.rathi
91eada4acc fix(fatfs): free allocated memory for base path before unmounting the card 2023-10-25 09:33:42 +02:00
Adam Múdry
0024867c3b Merge branch 'feature/add_optional_immediate_fsync' into 'master'
fatfs: add optional immediate fsync

See merge request espressif/esp-idf!26097
2023-10-16 17:37:22 +08:00
Adam Múdry
ab1eb37fe8 feat(partition_table): Add read-only partition flag and functionality 2023-10-11 00:01:05 +02:00
Tomáš Rohlínek
525776f748
feat(vfs/fatfs): Add option for automatic immediate fsync 2023-10-02 07:06:05 +02:00
Chen Yudong
2e11919f70 fix(ci): change build-test-rules files folder 2023-09-20 19:17:06 +08:00
Adam Múdry
f75bc09cee Merge branch 'fix/fatfs_ff_volumes_warning' into 'master'
fix(fatfs): Fix a warning when FF_VOLUMES is set to 1

Closes IDFGH-10887

See merge request espressif/esp-idf!25422
2023-08-28 18:20:38 +08:00
Armando
7dbd3f6909 feat(ci): Enable p4 example, test_apps and unit tests CI build 2023-08-24 12:51:19 +08:00
Adam Múdry
466ed3565d fix(fatfs): Fix a warning when FF_VOLUMES is set to 1
Closes https://github.com/espressif/esp-idf/issues/12089
2023-08-17 21:24:32 +02:00
Michal Jenikovsky
bcda40fcf2 fatfs: raw diskio: Fixed handling read-only filesystem
ff_ routines incorrectly reported disk state and caused whole fatfs
to lock-up when trying to write to read-only device.

Signed-off-by: Michal Jenikovsky <jendo@jmsystems.sk>
2023-08-11 12:37:33 +02:00
Adam Múdry
ebde53bbb9 docs(fatfs): Move mentioned APIs to a separate API reference section 2023-08-04 23:47:44 +00:00
KonstantinKondrashov
e72061695e all: Removes unnecessary newline character in logs
Closes https://github.com/espressif/esp-idf/issues/11465
2023-06-09 03:31:21 +08:00
Adam Múdry
976644acf6 CI: fix sdcard fatfs test_apps format timeout 2023-05-25 08:52:59 +00:00
Martin Vychodil
61e694d2f3 Merge branch 'fix/cd_input_sd_mode_fails' into 'master'
CI: sdcard tests fail fix

Closes IDFCI-1700

See merge request espressif/esp-idf!23505
2023-05-15 17:37:29 +08:00
Adam Múdry
fa16ed3898 CI: sdcard tests fail fix 2023-05-10 16:48:03 +02:00
Marius Vikhammer
d17248ecdf build-system: replace ADDITIONAL_MAKE_CLEAN_FILES with ADDITIONAL_CLEAN_FILES
ADDITIONAL_MAKE_CLEAN_FILES is deprecated and only worked with make.
Replaced with the new ADDITIONAL_CLEAN_FILES (CMake 3.15) which also works with ninja.
2023-05-08 15:51:48 +08:00
Radek Tandler
d8f2c0e715 Merge branch 'feature/storage_host_test_ffs' into 'master'
fatfs: host test migrated to CMake and esp_partition emulation for linux

See merge request espressif/esp-idf!23265
2023-04-25 15:30:09 +08:00
radek.tandler
13a305656d host_test: cleanup of make based obsolete code in wl, fatfs and spi_flash 2023-04-21 10:45:17 +02:00
radek.tandler
0078025d7b fatfs: host test migrated to CMake and esp_partition emulation for linux 2023-04-21 10:45:07 +02:00
Sonika Rathi
b31b68fc68 bugfix: fix for fatfs "open("xx",O_CREAT|O_WRONLY,0666)" call failure
fatfs 'open' with only O_CREAT flag fails to creat new file

Closes https://github.com/espressif/esp-idf/issues/1817
2023-04-18 09:57:44 +05:30
Sonika Rathi
248dadc8c8 Merge branch 'docs/descrive-approach-fatfstools' into 'master'
docs: Describe the approach of fatfsgen.py and fatfsparse.py

Closes IDF-4755

See merge request espressif/esp-idf!19978
2023-04-13 18:48:51 +08:00
Adam Múdry
381d0fe032 sdmmc: add vTaskDelay to loops to prevent potential WDT trigger
Also change timeout to 120 seconds in fatfs sdcard pytest to prevent failing during formatting.
2023-04-11 11:06:56 +00:00
Chip Weinberger
74d6215b7f [SDMMC] add reasonable timeouts to all while loops
Closes: https://github.com/espressif/esp-idf/pull/10532
2023-04-11 11:06:56 +00:00
Martin Gaňo
024b58604a docs: Describe the approach of fatfsgen.py and fatfsparse.py 2023-04-11 09:41:06 +05:30
Adam Múdry
16915556a3 fatfs: fstat - enable setting a custom preferred block size
Enables setting a custom st_blksize in fatfs vfs fstat function.
Directly affects file buffer size for fatfs.
Increasing the value helps with fread and fgets speeds, however increases heap usage.
Added info to docs about improving I/O performance.
2023-03-08 09:09:47 +01:00
Martin Vychodil
25e438d94b Merge branch 'feature/sdspi_host_h2' into 'master'
sdspi: h2 support

Closes IDF-6244

See merge request espressif/esp-idf!22504
2023-02-28 16:32:36 +08:00
Armando
0a472225cc fatfs: fix deadcode issue 2023-02-27 11:25:29 +00:00
Armando
83d0181a2c sdspi: h2 support 2023-02-27 14:39:06 +08:00
Armando
d59fd3e529 fatfs: deprecate esp_vfs_fat_sdmmc_unmount
This API was deprecated before, but without deprecation warning and
migration doc. This commit added deprecation warning and migration doc
to it.
2023-02-16 14:17:51 +08:00
Armando
90a6018e67 fatfs: added an API to format FAT on sdcard 2023-02-16 14:17:51 +08:00
Armando
4150bfb403 fatfs: added an API to format FAT on spiflash 2023-02-16 12:19:35 +08:00
Armando
1bd8018a59 vfs_fat_spiflash: use esp_check 2023-02-14 09:22:17 +00:00
Adam Múdry
e6fcaa4f9f fatfs: Update to version 0.15
Updated FATFS to 0.15 from 0.14b and patched for ESP devices
2023-01-30 13:14:54 +00:00
Cao Sen Miao
94120b82c2 esp32h2: add build test 2023-01-17 10:29:04 +08:00
Armando
2b14a4e93e sdspi: bringup sdspi on c6 2022-12-19 16:33:50 +08:00
Martin Vychodil
c9c7573f71 Storage: Partition APIs moved to the new component 'esp_partition'
All the partition handling API functions and data-types were moved from the 'spi_flash' component to the new one named 'esp_partition'. See Storage 5.x migration guide for more details
2022-11-02 21:54:45 +01:00
Song Ruo Jing
2557e24a28 ci: Enable esp32c6 example, test_apps, and unit tests CI build stage 2022-11-01 11:23:21 +08:00
Ivan Grokhotkov
11ec9d392d Merge branch 'bugfix/storage_wformat' into 'master'
storage: fix and re-enable -Wformat warnings

See merge request espressif/esp-idf!20486
2022-10-18 20:21:53 +08:00
Ivan Grokhotkov
c4be293e23 Merge branch 'test/fatfs_test_app_readme' into 'master'
fatfs: add missing readme file for the test apps

See merge request espressif/esp-idf!20522
2022-10-13 17:53:11 +08:00
Roland Dobai
ac315adc2c Merge branch 'bugfix/remove-fatfsgen-kconfig-option' into 'master'
fatfsgen.py: removed unused options in Kconfig

Closes IDF-6038

See merge request espressif/esp-idf!20418
2022-10-12 17:28:03 +08:00
Roland Dobai
95c4749a5f Merge branch 'feature/fatfs-support-detection-minimal-partition-size' into 'master'
fatfsgen.py: Support for detection of minimal partition size

Closes IDF-4122

See merge request espressif/esp-idf!20178
2022-10-12 15:21:25 +08:00
Ivan Grokhotkov
6a86614d74
fatfs: add missing readme file for the test apps 2022-10-10 12:15:56 +02:00
Ivan Grokhotkov
23e1ae1bc2
storage: fix and re-enable -Wformat warnings 2022-10-06 16:16:32 +02:00
Ivan Grokhotkov
ac830e04ac
fatfs: migrate unit tests to component test app, re-enable test for C2 2022-10-04 17:39:38 +02:00
Martin Gaňo
21408698e1 fatfsgen.py: Support for detection of minimal partition size 2022-09-30 15:20:49 +02:00
Martin Gaňo
1206d05d36 fatfsgen.py: removed unused options in Kconfig 2022-09-30 14:49:20 +02:00
Roland Dobai
a38c63b211 Merge branch 'feature/enable-variable-partition-size-fatfs' into 'master'
fatfs: enabled reading sector size and sectors count from boot sector in rawflash

Closes IDF-4130

See merge request espressif/esp-idf!20412
2022-09-30 15:24:26 +08:00
Martin Vychodil
dd3cf2513d Merge branch 'bugfix/fatfsgen-omit-cluster-for-empty-files' into 'master'
fatfsgen.py: omit cluster allocation when the file is empty

Closes IDF-6037

See merge request espressif/esp-idf!20441
2022-09-30 14:42:52 +08:00
Martin Vychodil
27601eed24 Merge branch 'feature/ut-fatfs-not-ignore-leading-spaces' into 'master'
fatfs/unittest: fatfs ignores leading spaces

Closes IDF-5896

See merge request espressif/esp-idf!20152
2022-09-30 14:38:56 +08:00
Martin Gaňo
7fb62d41d5 fatfsgen.py: omit cluster allocation when the file is empty 2022-09-29 16:18:56 +02:00
Martin Gaňo
41742c2369 fatfs: enabled reading sector size and sectors count from boot sector in rawflash 2022-09-29 16:16:36 +02:00
Martin Vychodil
e82adaaaf7 Merge branch 'feature/add-test-coverage-with-review' into 'master'
fatfs: add test coverage and comments to the fatfsgen.py related code

Closes IDF-5864

See merge request espressif/esp-idf!19986
2022-09-29 19:17:17 +08:00
Martin Gaňo
f995584a6d fatfs: unittest fatfs ignores leading spaces 2022-09-29 12:22:53 +02:00
Martin Gaňo
943f96422b fatfs: add test coverage and comments to the fatfsgen.py related code 2022-09-27 12:14:32 +02:00
Martin Gaňo
2a0ea8703d fatfsgen.py: enabled 512 sized sectors 2022-09-27 10:18:52 +02:00
Martin Gaňo
567f5f963c fatfsgen.py: use lfn record when forbidden character detected in the file name
The file name is recorded as a LFN when it doesn't fit 8.3 pattern or if it contains characters prohibited in SFN
2022-09-21 15:22:51 +00:00
Martin Gaňo
b187fad076 fatfsgen.py: Increase number of files in directory
By starting the ID at the value 1, instead of ord('1') we increase the possible number of files by 49.
2022-09-21 13:30:05 +00:00
Martin Gaňo
53c2ea2d08 fatfsgen.py: enable multiple dots in the long file name 2022-09-16 13:50:12 +02:00
Martin Gaňo
26f7f105c3 fatfsparse.py: Fixed ignoring first file in directory
Closes IDF-5968
2022-09-15 19:38:39 +02:00
Martin Vychodil
1146b83bf1 Merge branch 'feature/detect-wl-automatically' into 'master'
fatfsparse.py: enable automatic WL detection

Closes IDF-5903

See merge request espressif/esp-idf!20076
2022-09-16 00:23:50 +08:00
Martin Gaňo
30dd0fbf30 fatfsparse.py: enable automatic WL detection 2022-09-15 10:51:48 +00:00
Martin Gaňo
131b28314e fatfsgen.py: fixed missing NULL terminator 2022-09-14 16:55:13 +02:00
Martin Gaňo
37178dfa74 fatfsparse.py: limit the file content size to correct number 2022-09-12 14:13:03 +00:00
Martin Gaňo
72acbeb921 fatfsparse.py: enable automatic detection of lfn 2022-09-08 10:53:04 +02:00
Ivan Grokhotkov
401c10ecfb build system: re-add -Wno-format as private flag for some components 2022-08-03 16:42:47 +04:00
Martin Gaňo
2d173c0777 fatfsgen.py: enabled extension of the FAT table
Closes IDF-5688
2022-08-01 20:29:02 +02:00
Martin Gaňo
d56e692f2f fatfsgen.py: Speedup FAT cluster allocation in fatfsgen.py
Closes IDF-5243
2022-07-28 01:37:39 +02:00
Martin Gaňo
2ddcda29b3 fatfsparse.py: Add support for WL 2022-07-26 14:50:07 +02:00
Martin Vychodil
8def7b3e55 Merge branch 'contrib/github_pr_9361' into 'master'
Change placeholder in ESP_LOGD conditionally depending on FF_FS_EXFAT (GitHub PR)

Closes IDFGH-7832 and IDFGH-7735

See merge request espressif/esp-idf!19111
2022-07-24 16:49:22 +08:00
John
aaf35889b6 Change placeholder in ESP_LOGD conditionally depending on FF_FS_EXFAT
In case of using EXFAT by setting in ffconf.h:
the type FSIZE_t is changing from 4 to 8 bytes.

As a result,  ESP_LOGD() in vfs_fat_lseek() does not compile:
error: format '%d' expects argument of type 'int', but argument 8 has type 'FSIZE_t' {aka 'long long unsigned int'} [-Werror=format=]
     ESP_LOGD(TAG, "%s: offset=%ld, filesize:=%d", __func__, new_pos, f_size(file));

To solve the problem we need to change %d with %lld conditionally, depending on FF_FS_EXFAT.

Closes https://github.com/espressif/esp-idf/pull/9361
2022-07-22 16:52:14 +01:00
Darian Leung
781d06af73 esp_hw_support: Remove compare_set.h API
This function removes the following legacy atomic CAS functions:

From compare_set.h (file removed):
- compare_and_set_native()
- compare_and_set_extram()

From portmacro.h
- uxPortCompareSet()
- uxPortCompareSetExtram()

Users should call esp_cpu_compare_and_set() instead as this function hides the details
of atomic CAS on internal and external RAM addresses.

Due to the removal of compare_set.h, some missing header includes are also fixed in this commit.
2022-07-22 00:06:06 +08:00
David Cermak
5c383d7b73 esp_netif/lwip: Fix deps cycles to "lwip -> esp_netif -> phy-drivers"
Fix dependency tree so that lwip doesn't depend on any specific network
interface component.
Network interface drivers shall depend on esp_netif.
esp_netif shall depend on lwip (but not on any specific interface
driver) -- it optionally depends on vfs and esp_eth (need ethernet
header for L2/bridge mode)
2022-07-20 14:59:07 +02:00
Jakob Hasse
daacc19149 Merge branch 'bugfix/fatfs_spiffs_vfs_dep' into 'master'
fatfs, spiffs: add missing dependency on vfs

See merge request espressif/esp-idf!18613
2022-07-01 18:13:51 +08:00
Cao Sen Miao
a690a87829 spi_flash: Remove legacy spi_flash drivers 2022-07-01 11:01:34 +08:00
Adam Múdry
0fac7d1c02 fatfs: Fix undefined ssize member of FATFS struct 2022-06-27 08:57:58 +00:00
Ivan Grokhotkov
88d2a221f1
fatfs, spiffs: add missing dependency on vfs
Since vfs is no longer a common component, the dependency needs to be
added explicitly.
2022-06-21 17:16:49 +02:00
Martin Vychodil
7f884dc966 Merge branch 'fix/ff_sdmmc_status_check_optional' into 'master'
fatfs: Add option to mock ff_sdmmc_status output to increase IO speed

Closes IDF-4788

See merge request espressif/esp-idf!18300
2022-06-13 14:42:12 +08:00
Matus Fabo
384d61f156 remove: sdspi_host deprecated api
add: migration guide documentation
2022-06-12 20:07:27 +00:00
Martin Vychodil
aa2cf79e13 Merge branch 'bugfix/fatfs_mtime_dst' into 'master'
fatfs: fix incorrect mtime returned for files created during DST

Closes IDFGH-7467

See merge request espressif/esp-idf!18333
2022-06-10 17:18:01 +08:00
Roland Dobai
724b4121b9 Merge branch 'feature/enable-lfn-for-fatfsparse' into 'master'
fatfs: enable long file names for fatfsparse.py

Closes IDF-4992

See merge request espressif/esp-idf!18212
2022-06-10 16:22:45 +08:00
Martin Vychodil
16a4ee7c36 Merge branch 'bugfix/spi_mode_status_check' into 'master'
sdmmc, sdspi: fixes related to status checks, R1b response support, erase fix for SPI mode, fix for erase timeout calculation

Closes IDF-4728

See merge request espressif/esp-idf!17727
2022-06-10 13:15:47 +08:00
Adam Múdry
8af790da45 fatfs: Add mock option to ff_sdmmc_status function to increase IO speed
Adds `disk_status_check_enable` field to `esp_vfs_fat_mount_config_t` struct to control if ff_sdmmc_status is mocked or not.
2022-06-09 20:09:32 +00:00
Ivan Grokhotkov
39238f51ce fatfs: fix incorrect mtime returned for files created during DST
mktime function uses tm_isdst member as an indicator whether the time
stamp is expected to be in daylight saving time (1) or not (0).
FAT filesystem uses local time as mtime, so no information about DST
is available from the filesystem.

According to mktime documentation, tm_isdst can be set to -1, in which
case the C library will try to determine if DST was or wasn't in
effect at that time, and will set UTC time accordingly.

Note that the conversion from UTC to local time and then back to UTC
(time_t -> localtime_r -> FAT timestamp -> mktime -> time_t) does not
always recover the same UTC time. In particular, the local time in the
hour before DST comes into effect can be interpreted as "before DST"
or "after DST", which would correspond to different UTC values. In
this case which option the C library chooses is undefined.

Closes https://github.com/espressif/esp-idf/issues/9039
Originally reported in https://github.com/espressif/arduino-esp32/issues/6786
2022-06-09 19:50:00 +00:00
Martin Gaňo
0f160c8f11 fatfs: enable long file names for fatfsparse.py 2022-06-09 15:51:03 +02:00
Cao Sen Miao
6589daabb9 MMU: Add configurable mmu page size support on ESP32C2 2022-06-08 19:34:31 +08:00
Michael (XIAO Xufeng)
6a8aed12ee ci: partially enable ut tests for esp32c2
Disabled test cases are tracked in:

 IDF-4465, IDF-5045, IDF-5057, IDF-5058, IDF-5059, IDF-5060, IDF-5061, IDF-5131

- test_fatfs: IDF-5136

- test_pm: IDF-5053

- test_cache_mmu: IDF-5138

- test_partitions: IDF-5137

- test_vfs: IDF-5139

- test_freertos: IDF-5140

- test_wpa_supplicant: IDF-5046

- test_mbedtls: IDF-5141

- test_pthread: IDF-5142

- test_protocomm: IDF-5143

- test_lightsleep: IDF-5053

- test_taskwdt: IDF-5055

- test_tcp_transport: IDF-5144

- test_app_update: IDF-5145

- test_timer: IDF-5052

- test_spi: IDF-5146

- test_rtc_clk: IDF-5060

- test_heap: IDF-5167

ci: fixed issues for tests of libgcc, ets_timer, newlib

test_pm: support on C2
2022-06-02 14:23:35 +08:00
Ivan Grokhotkov
a28828a6f4
fatfs: re-enable TRIM support for SPI mode
Previously this didn't work because MMC_ERASE implementation for SPI
didn't wait for the busy status indication.
2022-05-30 15:39:01 +02:00
Martin Vychodil
9bd819c78f Merge branch 'fix/fatfs_remove_utf16_support' into 'master'
FatFS: Disable UTF 16 filename encoding

Closes IDF-4795

See merge request espressif/esp-idf!18192
2022-05-30 20:59:53 +08:00
Martin Gano
8ef66536ed fatfsparse.py: add cluster chaining support to enable reading longer-than-sector files
Closes IDF-4975
2022-05-25 15:49:24 +02:00
Adam Múdry
b388321e3b fatfs: Disable UTF-16 filename encoding
UTF-16 is not supported in VFS and not covered by unit tests
2022-05-20 15:15:01 +02:00
Adam Múdry
2565acbc28 fatfs: Fix possible integer overflow in esp_vfs_fat_info() 2022-05-20 14:51:11 +02:00
Martin Gaňo
005af75da3 Added FATFS partition parser 2022-05-16 14:32:17 +02:00
morris
f670c2a963 Merge branch 'contrib/github_pr_8888' into 'master'
utils.py: fix assert range with hour (GitHub PR)

Closes IDFGH-7300

See merge request espressif/esp-idf!18011
2022-05-09 10:11:26 +08:00
Junzhuo
0172e97151
utils.py: fix assert range with hour
`hour=23` (23 P.M.) will out of the `range(0, 23)`, which should be `range(0, 24)`.
2022-05-04 00:43:27 +08:00