Commit Graph
57 Commits
Author SHA1 Message Date
radek.tandler e96ef9aee4 fix(nvs_flash): Fixed overwrite of V1 BLOB when legacy compatibility mode is in place 2025-10-17 09:48:55 +02:00
radek.tandler c23c21f3c0 refactor(nvs_flash): Improved Blob performance
The findItem method was improved to use a hash list in RAM when searching for BLOB data chunks

The findItem method was extended with a parameter that returns the position of an item on the page,
if it is found

The algorithm for matching existing variable-length data (such as strings and BLOBs) with
new values was enhanced by comparing the CRC32 of the data chunks before reading the data from flash
2025-06-02 16:01:40 +02:00
radek.tandler c3239ce836 fix(vfs): Fixed include for target linux failing on MacOs 2025-05-15 12:28:11 +02:00
Radek Tandler 0b8f661c08 Merge branch 'bugfix/storage_nvs_key_overwrite' into 'master'
fix(nvs): fixed erasing of old values if new data type is not the same

Closes IDFGH-14832

See merge request espressif/esp-idf!37888
2025-04-10 20:01:35 +08:00
radek.tandler d9bc77e422 fix(nvs): fixed erasing of old values if new data type is not the same
Closes https://github.com/espressif/esp-idf/issues/15559
2025-04-10 10:55:51 +02:00
Radek Tandler 5b15320600 Merge branch 'bugfix/storage_generic_pytests' into 'master'
fix(ci): Removed storage related entries in known generate test child pipeline warnings

See merge request espressif/esp-idf!35738
2024-12-25 18:37:14 +08:00
radek.tandler 91b231adf6 fix(storage/nvs): Fixed failing test cases in example folder 2024-12-20 19:41:01 +01:00
radek.tandler 1c03391414 fix(storage/vfs): Fixed failing test cases in test_apps 2024-12-20 19:41:01 +01:00
radek.tandler df31bc6fdd fix(ci): Removed storage related ignore warnings 2024-12-20 19:40:33 +01:00
Radek Tandler 8255ba29a6 Merge branch 'feature/storage_nvs_bootloader' into 'master'
feat(storage/nvs): NVS bootloader support

See merge request espressif/esp-idf!31753
2024-11-15 00:12:18 +08:00
radek.tandler c445ec134b feat(nvs_flash): Implemented basic nvs_flash support for bootloader 2024-11-14 11:56:45 +01:00
Radek Tandler ac6c54c997 Merge branch 'feature/storage_remove_nvs_test_host' into 'master'
remove(nvs_flash/test_nvs_host): Old make based host tests removed after complete migration

See merge request espressif/esp-idf!27853
2024-10-01 23:33:55 +08:00
radek.tandler 6a23790608 remove(nvs_flash/test_nvs_host): Old make based host tests removed after complete migration 2024-10-01 15:25:27 +02:00
Radek Tandler 928addee19 Merge branch 'feature/storage_nvs_doc_update' into 'master'
docs: Improved API Guides - File system considerations for NVS

See merge request espressif/esp-idf!33465
2024-09-13 17:54:21 +08:00
radek.tandler 65df4d6e34 fix(storage/nvs): improved documentation section in file system considerations
fix(storage/nvs): improved documentation section in file system considerations1
2024-09-11 16:10:10 +02:00
Radek Tandler f75db5caf4 Merge branch 'bugfix/nvs_entry_sanity_check' into 'master'
Bugfix/added nvs entry header sanity checks

See merge request espressif/esp-idf!32529
2024-08-20 20:46:27 +08:00
radek.tandler b937cb7549 fix(storage/nvs): Fixed hadling of inconsistent values in NVS entry header
feat(storage/nvs): Added test cases for damaged entries with correct CRC
2024-08-20 10:57:24 +02:00
radek.tandler 68df525394 feat(examples/security): Extend flash_encryption example with fatfs encryption
Updated the flash_encryption example to demonstrate the usage of fatfs encryption.
Updated existing test case to ensure accurate and reliable testing.
Documentation of storage section extended by security relarted summary.

Closes https://github.com/espressif/esp-idf/issues/11551
Closes https://github.com/espressif/esp-idf/issues/13668
2024-06-27 21:41:43 +08:00
Radek Tandler c21b5bbbf2 Merge branch 'feature/storage_nvs_psram' into 'master'
nvs_flash: Enable heap allocation in SPIRAM

See merge request espressif/esp-idf!27181
2024-06-06 19:51:12 +08:00
radek.tandler ffaf1d2968 feat(nvs_flash): Added Kconfig option contolling NVS heap allocation source
NVS configuration is extended with Kconfig option controlling RAM area for
NVS heap allocation. Either Internal RAM or SPIRAM can be chosen.
Tests were extended to check memory consumption from Internal and SPIRAM pool with respect
to the Kconfig option chosen.
Documentation was extended with notes related to NVS behavior in various situations.
2024-06-06 08:25:51 +02:00
radek.tandler 508d9a6a22 fix(nvs): Fixed Page::findItem performance degradation
Wrong condition gating the hash map use causing performance degradation was corrected

The condition enabling use of hash map when page is searched for Item was modified
to correct the bug introduced by commit addressing delete of any BLOB_INDEX Items.
This correction returns the performance of findItem to the state before previous change.
2024-03-07 19:47:33 +01:00
radek.tandler fc6951e193 fix(nvs): Improved lockig mechanism for initialization phase 2024-02-24 07:55:32 +01:00
radek.tandler 635e6b154e fix(nvs): eraseMultiPageBlob to robustly delete all related BLOB_DATA records and respect VER_ANY 2024-02-24 07:55:32 +01:00
radek.tandler cad09ea461 fix(nvs): corrected findItem to return BLOB_DATA when chunkIndex = CHUNK_ANY 2024-02-24 07:55:22 +01:00
radek.tandler d879ec5248 fix(nvs): added check and erase of mismatched BLOB_DATA on init 2024-02-22 15:15:10 +01:00
Radek Tandler cb66d6f6fa Merge branch 'feature/storage_nvs_find_key' into 'master'
feat(nvs_flash): Added function nvs_find_key

Closes IDFGH-10963

See merge request espressif/esp-idf!26498
2023-12-09 02:08:11 +08:00
radek.tandler 8740888967 feat(nvs_flash): Added function nvs_find_key
Closes https://github.com/espressif/esp-idf/issues/12155
2023-12-08 17:12:00 +01:00
Radek Tandler 12011d2057 Merge branch 'bugfix/fatfs_fatfsparse_relaxed' into 'master'
bugfix(fatfs): Fixed fatfsparse.py parses FAT boot sector too strictly

See merge request espressif/esp-idf!26888
2023-12-08 23:48:25 +08:00
radek.tandler a640626b76 fix(fatfs): Fixed fatfsparse.py parsing of FAT boot sector
The fatfsparse.py script was too strict in parsing the FAT boot sector, causing it to fail in
certain cases. This commit fixes the issue by making the parsing less strict and allowing for more
flexibility in the boot sector format.

This change improves the reliability and compatibility of the fatfsparse.py script, ensuring that it
can correctly parse a wider range of FAT boot sectors.

Docs updated
2023-12-06 08:31:50 +01:00
Radek Tandler 4c8c5debed Merge branch 'feature/storage_host_test_nvs_page' into 'master'
feature(nvs_flash): nvs_page host tests updated to use esp_partition for linux instead of CMock emulation of API

Closes IDF-6166

See merge request espressif/esp-idf!25978
2023-10-14 08:41:50 +08:00
radek.tandler d4aa9ccb0c change(nvs_flash): Host tests were migrated from CMock to esp_partition linux emulation 2023-10-13 13:17:28 +02:00
Radek Tandler 6c83e63371 Merge branch 'feature/nvs_tool_integrity_check_refactor' into 'master'
feat(nvs): NVS tool add key consistency check

Closes IDF-8146

See merge request espressif/esp-idf!25638
2023-10-11 16:33:39 +08:00
radek.tandler 4f659b70e1 fix(nvs_flash): fixed failing nvs_page test 2023-09-26 15:05:20 +00:00
radek.tandler e8992f500c fix(nvs_flash): nvs_set with same key and different data type
Function now always rewrites old value under same key
regardless existing data type. Users requiring old API behaviour
can enable it by kconfig option CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY
2023-09-26 15:05:20 +00:00
Radek Tandler 352e759d1d Merge branch 'contrib/github_pr_11118' into 'master'
nvs: support iteration over namespace by handle (GitHub PR)

Closes IDFGH-9782

See merge request espressif/esp-idf!23175
2023-08-31 20:59:19 +08:00
radek.tandler f693b78f93 feature(nvs_flash) : added support iteration over namespace by index - review changes 2023-08-29 16:05:02 +02:00
radek.tandler 28f82d8de7 refactor(nvs_flash): Host test migrated to esp_partition emulation for linux 2023-08-09 14:14:21 +02:00
radek.tandler 1da6a4f5fa fix(spiffs): Corrected buffer size and allocation in host test 2023-08-09 14:14:20 +02:00
radek.tandler 4c13bf53ea change(esp_partition): Improved granularity of power-off emulation for Linux 2023-08-09 14:14:14 +02:00
Radek Tandler db4308888d Merge branch 'feature/storage_nvs_stat' into 'master'
nvs_flash: nvs_get_stats extended by available_entries, API documentation updated

See merge request espressif/esp-idf!24523
2023-08-09 15:40:35 +08:00
radek.tandler 3ffb8f8ffd nvs: nvs_get_stats fixed test, improved comment 2023-08-08 08:43:19 +02:00
radek.tandler ac6c03fad1 change(nvs_flash): nvs_get_stats extended, API documentation improved 2023-08-08 08:43:19 +02:00
Radek Tandler c48c6d2e6c Merge branch 'bugfix/macos_build_error' into 'master'
build: fixed missing condition preventing linking libgcc when building using clang for linux target

See merge request espressif/esp-idf!24250
2023-06-22 00:03:03 +08:00
radek.tandler 58d6216956 build: fixed unwanted libgcc when building using clang for linux target 2023-06-15 14:37:00 +02: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
Radek Tandler d8b8ab5d43 Merge branch 'feature/wl_host_test_cmake' into 'master'
Storage: Migrate WL host test to CMake

See merge request espressif/esp-idf!23015
2023-04-13 13:16:57 +08:00
radek.tandler 0402874d3c host_test: wl migrated to Cmake and linux emulation of esp_partition
- build system changed to CMake
 - host tests changed to use partition api on linux instead of mocked code
 - extended wl flash host tests to cover power off recovery code
2023-04-11 16:16:53 +02:00
radek.tandler 0f842a2ca2 wear_levelling: fixed reinitialization of wl status blocks after power off event 2023-04-11 16:05:22 +02:00
radek.tandler e9e388a085 Storage: ESP Partition extended options for the SPI Flash emulation
Various extensions and fixes to improve Linux target SPI Flash emulation. Used by the host tests
2023-03-03 23:57:34 +00:00
radek.tandler 9e191bad52 esp_partition/linux target: Add functions supporting host tests
Added statistics and wear simulation functions to support migration of
remaining storage related host tests from fixture to linux implementation
of esp_partition.
2023-01-10 14:10:14 +01:00
Radek Tandler aad600c9ca Merge branch 'feature/storage_host_test_nvs' into 'master'
nvs_flash: Migrate host tests to CMake build system, use Linux partition API

Closes IDF-4697

See merge request espressif/esp-idf!20671
2022-11-17 02:05:35 +08:00
radek.tandler ca7f073e7b nvs_flash/host_test: migrated to the CMake build system and nvs flash Linux implementation
Host tests of nvs_flash eligible to run in Linux implementation of nvs flash were migrated. Remaining test cases
were left in original folder. Migrated test cases use CMake instead of make.
2022-11-16 14:15:23 +01:00
Radek Tandler d6d8324ad9 Merge branch 'feature/storage_host_test' into 'master'
spiffs: convert host tests from Make to CMake

See merge request espressif/esp-idf!19786
2022-09-13 00:20:09 +08:00
radek.tandler 723adae0ec spiffs: convert host tests from Make to CMake 2022-09-12 14:14:09 +00:00
radek.tandler 3271088428 storage examples migrated to pytest 2022-07-22 10:23:53 +02:00