Commit Graph

315 Commits

Author SHA1 Message Date
radek.tandler
13cc380dbf fix(nvs_flash): Fixed overwrite of V1 BLOB when legacy compatibility mode is in place 2025-09-11 12:55:16 +02:00
radek.tandler
dbd0bc3f4a fix(nvs_flash): Host test adopted to the actual release 5.1
- added 2 configurations in order host tests to be executed in CI
- removed test cases not supported by the actual linux partition emulation
2025-09-11 12:55:16 +02:00
radek.tandler
7027c06b0a fix(nvs_flash): Host test adopted to the new clang initializer rules 2025-09-11 12:54:46 +02:00
Ivan Grokhotkov
95e169b5f2 ci(nvs_flash): upgrade to Catch2 as a component, fix warnings 2025-09-10 19:02:59 +02:00
radek.tandler
683212f41e 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-09-10 19:02:59 +02:00
radek.tandler
521463503f 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
2025-09-10 19:02:25 +02:00
radek.tandler
79b93d1db7 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-11-14 12:48:22 +01:00
Mahavir Jain
bc82323e3f fix(tests): correct the flash write length for NVS encrypted test
Write only till the embedded file size in the NVS partition. Earlier
the length was kept as the whole partition size and it could result
in accessing embedded rodata beyond the MMU mapped range.
2024-05-02 16:54:13 +05:30
radek.tandler
c3f335817b fix(nvs): Fixed Page::findItem performance degradation caused by wrong condition before hash map use
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-12 16:27:36 +01:00
radek.tandler
2acac6b848 fix(nvs): Adopted CMakeLists for host test if IDF v5.1 2024-03-12 16:27:36 +01:00
radek.tandler
0d3bbed981 fix(nvs): Improved lockig mechanism for initialization phase 2024-03-12 16:27:36 +01:00
radek.tandler
a1750801f6 fix(nvs): eraseMultiPageBlob to robustly delete all related BLOB_DATA records and respect VER_ANY 2024-03-12 16:27:36 +01:00
radek.tandler
66b2a50066 fix(nvs): corrected findItem to return BLOB_DATA when chunkIndex = CHUNK_ANY 2024-03-12 16:27:36 +01:00
radek.tandler
9a9ef9d843 fix(nvs): added check and erase of mismatched BLOB_DATA on init 2024-03-12 16:27:36 +01:00
Ivan Grokhotkov
ee836d236f fix(nvs): prevent out of bounds write if blob data is inconsistent 2024-03-12 16:27:36 +01:00
Fu Hanxi
7df8574119 ci: fix missing linux related .build-test-rules.yml 2023-11-30 09:07:36 +01:00
Adam Múdry
f84139451a NVS: nvs_tool.py entry.data None check fix 2023-06-29 11:07:03 +02:00
Jakob Hasse
bed81f450d ci(nvs_flash): Increase timeout of nvs_page_test
* nvs_page_test runs into timeout in CI. According to log,
  test ran run around halfway, so increasing from 10 to 90 seconds.

* Also increased timeout of nvs_host_test, just to be sure
2023-02-13 12:35:52 +08:00
Martin Vychodil
a2b0068478 Merge branch 'bugfix/linux_build_errors' into 'master'
fix(linux): fix build errors without --skip-setting-flags

See merge request espressif/esp-idf!22063
2023-01-20 14:46:36 +08:00
Ivan Grokhotkov
cef0744299 Merge branch 'bugfix/linux_target_gen_partition_table' into 'master'
multiple fixes for linux target

Closes IDF-6641

See merge request espressif/esp-idf!21993
2023-01-18 11:57:08 +08:00
Jakob Hasse
9991862a10 fix(linux): fix build errors and warnings, remove ignore file 2023-01-18 09:24:28 +08:00
Fu Hanxi
b02687a6c4 test: migrate linux target host test jobs into pytest-embedded 2023-01-16 10:25:55 +08:00
Ivan Grokhotkov
e7540dbe0e docs: remove the outdated "IDF monitor doesn't work on linux" notes 2023-01-13 08:14:56 +01:00
Ivan Grokhotkov
ec8f38c9da build system: generate the partition table by default for linux target
This fixes the issue that "idf.py partition-table" had to be run
manually in order for the partition table to be generated, when
building for linux target.
2023-01-13 08:14:56 +01:00
Marius Vikhammer
7f0aa7b534 docs: updated path to nvs_tool.py in chinese doc. 2023-01-06 11:00:17 +08:00
Ivan Grokhotkov
61c5fc21e1 docs: fix nvs-related docs build issue 2023-01-05 09:28:57 +01:00
Adam Múdry
40d1eff2bd Merge branch 'feature/nvs_tool_refinement' into 'master'
nvs: Partition tool refinement

Closes IDF-6061

See merge request espressif/esp-idf!20683
2023-01-05 06:39:01 +08:00
mofeifei
0fc2fbe83f docs: update cn trans nvs_partition_tool/readme 2023-01-04 18:32:30 +01:00
Adam Múdry
87bdcc89d0 nvs: NVS tool refinement
add: JSON output
add: integrity check - correct number of free pages check
change: split to separate files
2023-01-04 12:44:22 +01:00
Jakob Hasse
e6ca481623 bugfix(nvs_flash): fixed potential memory leak in nvs::Storage::init() 2022-12-15 15:37:21 +08:00
Martin Vychodil
00f721f746 Merge branch 'refactor/nvs_allocatable_objects' into 'master'
refactor(nvs): custom allocator for all objects allocated in NVS

Closes IDF-6308

See merge request espressif/esp-idf!21239
2022-12-14 17:35:13 +08:00
Jakob Hasse
91f04aa877 refactor(nvs): custom allocator for all objects allocated in NVS 2022-12-05 18:59:33 +01:00
Jakob Hasse
ec986651db bugfix(nvs_flash): fixed wrong error check after open_nvs_handle
Closes https://github.com/espressif/esp-idf/issues/10240
2022-12-01 18:05:56 +01: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
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
Jakob Hasse
674fa9377f refactor(nvs): using define for namespace len instead of magic number
Closes https://github.com/espressif/esp-idf/issues/9671
2022-10-21 18:12:24 +02:00
Martin Vychodil
4799cc1439 Merge branch 'feature/nvs_partition_parse_tool' into 'master'
tools: NVS partition parser

Closes IDF-4049

See merge request espressif/esp-idf!18107
2022-09-21 22:16:13 +08:00
Mo Fei Fei
ec680a2a82 Docs: Add CN translation for nvs_partition_parser/README.rst 2022-09-20 14:02:23 +00:00
Matus Fabo
1c6edff560 add: data classes for parsing NVS binary data
add: functions to print formatted NVS data
add: color support via ANSI escape sequences
add: documentation
2022-09-20 14:02:23 +00:00
Ivan Grokhotkov
c392c06216 cmake: remove -D prefix from COMPILE_DEFINITIONS property
Unlike COMPILE_OPTIONS, COMPILE_DEFINITIONS CMake property assumes
values without the -D prefix, such as NAME or NAME=VAL.
Previously, IDF build system was passing COMPILE_DEFINITIONS build
property to CMake COMPILE_OPTIONS property, so -D prefix was not
a problem.
Now that COMPILE_DEFINITIONS CMake property is used, -D prefix has
to be removed.

(Note that this doesn't affect 'target_compile_definitions' function,
which strips -D prefix before adding the definition to the property.)
2022-09-20 11:08:02 +02:00
Jakob Hasse
1ab3e64cee doc (nvs): added note about maximum possible namespaces 2022-08-24 15:42:27 +02:00
Jakob Hasse
d6f3666875 Merge branch 'bugfix/nvs_flash_linux_target_cleanups' into 'master'
nvs_flash: cleanups related to linux target

See merge request espressif/esp-idf!19570
2022-08-19 21:07:48 +08:00
Ivan Grokhotkov
c6e9a0c350 esp_common: make esp_err_to_name and ESP_ERROR_CHECK usable on Linux 2022-08-18 18:16:45 +02:00
Ivan Grokhotkov
4e0fa26e64 nvs_flash: link the host test against libbsd when building on Linux
...and clean up the linking rule
2022-08-17 12:20:37 +02:00
Ivan Grokhotkov
7a1e19edf1 nvs_flash: replace strncpy + manual null termination with strlcpy
Since libbsd is now a build dependency on Linux, strncpy can be
replaced with the safer and less verbose strlcpy.
2022-08-17 12:20:36 +02:00
Ivan Grokhotkov
bee241b0e2 nvs_flash: remove leftover ESP_ERROR_CHECKS
Similar to the asserts, these are replaced by error checks.
2022-08-17 12:20:36 +02:00
Ivan Grokhotkov
02661081be nvs_flash: make nvs_flash_init usable for Linux target
Since the partition API is now supported for Linux target builds,
this function can now be used.
2022-08-17 12:20:36 +02:00
Ivan Grokhotkov
bfb6f31872 nvs_flash: remove unnecessary check that the data pointer is in DROM
spi_flash driver knows how to write data from cache (DROM or PSRAM)
into flash, so the extra check in nvs_flash is unnecessary.
Besides, the hardcoded address limit (0x3ff00000) is wrong for some
of the newer chips.
2022-08-17 12:20:36 +02:00
Ivan Grokhotkov
08e41973f0 nvs_flash: update intrusive_list for compatibility with C++17
std::iterator is deprecated since C++17, the code produces a warning
when compiled with clang and libc++.
2022-08-17 12:20:36 +02:00
simon.chupin
35dda59209 tools: remove the dependency on the future package 2022-08-09 16:46:58 +02:00