Commit Graph

278 Commits

Author SHA1 Message Date
Mahavir Jain
c8dbdc6aa6
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:56 +05:30
radek.tandler
27f432eb05 fix(nvs): Adopted CMakeLists for nvs_host_test of IDF v5.0 2024-03-12 13:28:02 +01:00
radek.tandler
5ae6eade3d 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-08 13:05:48 +01:00
radek.tandler
56cb47be79 fix(nvs): Improved lockig mechanism for initialization phase 2024-02-28 12:43:51 +01:00
radek.tandler
12d8abde53 fix(nvs): eraseMultiPageBlob to robustly delete all related BLOB_DATA records and respect VER_ANY 2024-02-28 12:43:51 +01:00
radek.tandler
6cd48e0e91 fix(nvs): corrected findItem to return BLOB_DATA when chunkIndex = CHUNK_ANY 2024-02-28 12:43:51 +01:00
radek.tandler
4b16c95883 fix(nvs): added check and erase of mismatched BLOB_DATA on init 2024-02-28 12:43:51 +01:00
Ivan Grokhotkov
2321decd98 fix(nvs): prevent out of bounds write if blob data is inconsistent 2024-02-28 12:43:50 +01:00
Jakob Hasse
0eddee63e8 bugfix(nvs_flash): fixed potential memory leak in nvs::Storage::init() 2023-03-08 14:13:11 +08:00
Jakob Hasse
28c325b291 refactor(nvs): custom allocator for all objects allocated in NVS 2023-03-02 10:49:53 +08:00
Jakob Hasse
1a98df0c93 bugfix(nvs_flash): fixed wrong error check after open_nvs_handle
Closes https://github.com/espressif/esp-idf/issues/10240
2023-02-20 14:20:18 +08:00
Martin Vychodil
af81bd1b0a 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:49:08 +01:00
Jakob Hasse
615bc28836 doc (nvs): added note about maximum possible namespaces 2022-09-06 10:00:23 +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
Shubham Kulkarni
3689035b7c tests: Fix CI build failures 2022-08-03 05:18:37 +00:00
Angus Gratton
bb141956df nvs_partition_gen: Allow up to 4000 byte strings with NVS V2
As documented, the limit for NVS format v2 is 4000 bytes for a string.
2022-07-22 15:43:19 +10:00
intern
4866e91398 docs: update nvs encryption cn trans 2022-07-18 14:40:56 +08:00
Fu Hanxi
c0568611dd docs: changes docs supported targets tables 2022-07-14 08:26:32 +08:00
Djordje Nedic
0331d0aa63 tools: Introduce support for blank lines in config and value files for mfg utility
Some users have requested this feature.

In order to avoid complete refactoring or introducing more code complexity, a design choice to create temporary files without blank lines is made.

Additionally, an extension check is added and there are multiple smaller code style and structure improvements.

Closes https://github.com/espressif/esp-idf/issues/8421
2022-07-08 13:22:35 +00:00
Cao Sen Miao
a690a87829 spi_flash: Remove legacy spi_flash drivers 2022-07-01 11:01:34 +08:00
Cao Sen Miao
64147c3794 CXX: Make spi_flash related part works 2022-07-01 10:59:34 +08:00
Ivan Grokhotkov
87180907f7 Merge branch 'bugfix/nvs_part_ptr_wrong_init' into 'master'
bugfix (nvs_flash): Fix nvs_flash_init_partition_ptr

Closes IDFGH-7503 and IDFGH-7152

See merge request espressif/esp-idf!18503
2022-06-23 21:23:39 +08:00
Djordje Nedic
bbc3add0e3 tools: overhaul csv handling for mfg_gen and nvs_partition_gen
This fixes the issue where multiline strings and strings with delimiters inside the nvs input csv file were incorrectly parsed, and adds back the ability to add comment lines anywhere in the CSV file.

The issue stems from the move away from the python built in csv module to manual parsing, which was made after moving away from using the csv module to parse mfg data.

This reverts back to using the csv module for parsing and writing csv data in both mfg_gen and nvs_partition_gen, fixes the original issue in mfg_gen and improves code quality which makes the code more readable and maintainable.

Closes https://github.com/espressif/esp-idf/issues/7175
2022-06-15 12:31:49 +00:00
ioio
a759e00958 bugfix (nvs_flash): Fix nvs_flash_init_partition_ptr
Added unit test case.

Closes https://github.com/espressif/esp-idf/pull/8755

Signed-off-by: Jakob Hasse <jakob.hasse@espressif.com>
2022-06-15 10:38:56 +08:00
Djordje Nedic
facab8c5a7 tools: Increase the minimal supported CMake version to 3.16
This updates the minimal supported version of CMake to 3.16, which in turn enables us to use more CMake features and have a cleaner build system.
This is the version that provides most new features and also the one we use in our latest docker image for CI.
2022-06-01 06:35:02 +00:00
Anton Maklakov
25cee26784 Merge branch 'bugfix/storage-warnings' into 'master'
nvs: minor warning fixes

See merge request espressif/esp-idf!18313
2022-05-31 13:46:13 +08:00
Jakob Hasse
97c149f73d Merge branch 'refactor/nvs_iterator_api' into 'master'
NVS: New interface for iterator functions

Closes IDFGH-6149

See merge request espressif/esp-idf!18081
2022-05-31 07:47:26 +08:00
Ivan Grokhotkov
87ec752bda Merge branch 'docs/fix_nvs_encryption_docs' into 'master'
doc (nvs_flash): improved NVS partition flash documentation

Closes IDFGH-6549

See merge request espressif/esp-idf!18004
2022-05-30 16:13:12 +08:00
Anton Maklakov
b3a6c3bcb5 nvs: suppress -Wstringop-truncation warning 2022-05-30 13:11:25 +07:00
Jakob Hasse
ad184e979a refactor (nvs)!: New interface for iterator functions
Closes https://github.com/espressif/esp-idf/issues/7826

* nvs_entry_find(), nvs_entry_next() and nvs_entry_info()
  return error codes now
* nvs_entry_find() and nvs_entry_next() access/modify iterator via
  parameters, instead of returning an new iterator.

Added appropriate documentation in Chinese and English
2022-05-30 09:28:42 +08:00
Matus Fabo
58cca07104 add: Kconfig assert or errorcode option
add: private include header
add: macro encapsulation for assertion or error check
add: ESP_FAIL return code documentation in public headers
change: replaced all assertions by NVS_ASSERT_OR_RETURN macro
change: few internal function return values from void to esp_err_t
change: ESP_ERR_NVS_VALUE_TOO_LONG macro comment
2022-05-28 20:29:05 +02:00
Jakob Hasse
dd3c5c3cbb doc (nvs_flash): improved NVS partition flash documentation
Closes https://github.com/espressif/esp-idf/issues/8196
2022-05-16 14:13:43 +08:00
Jakob Hasse
e899edd793 Merge branch 'bugfix/nvs_coverity_issues' into 'master'
bugfix (nvs): Fixed issues found by Coverity

Closes IDF-4391

See merge request espressif/esp-idf!16951
2022-01-29 21:52:18 +00:00
Jakob Hasse
4c8c2a8079 bugfix (nvs): Fixed issues found by Coverity
*  Fixed potential memory leak
*  Fixed wrong strncpy usage
*  Fixed potential out of bounds access
2022-01-27 19:30:58 +08:00
Jakob Hasse
1d4061d3f2 refactor (nvs_flash)!: removed mbedtls as default dependency
mbedtls is only required in NVS if NVS encryption is enabled.
Hence the mbedtls dependency is now only added if encryption
is enabled, otherwise it is not added.

BREAKING CHANGE: Removed mbedtls as default dependency
2022-01-26 17:32:23 +08:00
Michael (XIAO Xufeng)
43643716a2 bugfix (nvs): fixed wrong pointer check 2021-12-13 10:42:45 +08:00
morris
2e008825a9 Merge branch 'feat/rm_makefiles' into 'master'
Build & config: Remove leftover files from the unsupported make build system

Closes IDF-4273 and IDF-2827

See merge request espressif/esp-idf!15829
2021-11-16 03:44:41 +00:00
Roland Dobai
766aa57084 Build & config: Remove leftover files from the unsupported "make" build system 2021-11-11 15:32:36 +01:00
Mahavir Jain
e67128dd0a nvs: add config to ignore "encrypted" flag of nvs partitions
This is to allow having pre IDF v4.3 behavior where "encrypted"
flag was not being checked for NVS partitions.

It is recommended to enable this new config only if you have
production devices where NVS partition was being set with "encrypted"
flag by mistake.

Please see commit aca9ec28b3 which
introduced check to not allow NVS partitions with "encrypted" flag set.

More discussion on this at:
https://github.com/espressif/esp-idf/issues/5747#issuecomment-956223024
https://github.com/espressif/esp-idf/issues/7839#issuecomment-961477667

Closes https://github.com/espressif/esp-idf/issues/7839
Closes IDFGH-6162
2021-11-11 15:20:57 +05:30
Shivani Tipnis
d8b1c3d44a nvs_tool: Update Readme with supports of multiline strings and comments in the CSV file
Closes https://github.com/espressif/esp-idf/issues/7175
2021-09-16 11:11:19 +05:30
Jakob Hasse
46e59e7194 [mocks]: moved already added spi_flash mocks
[nvs]: page test works with new overriden mock

[spi_flash]: Removed mocking code from CMake

* Renamed nvs test to be consistent with other
  host test
2021-08-18 11:05:51 +08:00
Jakob Hasse
7029f0537e [build system]: Fixed common requirement for Linux 2021-08-13 16:50:29 +08:00
Jakob Hasse
84d184bdb0 Merge branch 'bugfix/nvs_corrupted_storage_crashes_app' into 'master'
[NVS]: fix crashes from entry state 1

See merge request espressif/esp-idf!14548
2021-08-06 09:14:21 +00:00
Jakob Hasse
0b86f81847 [nvs]: use real esp_common on host tests 2021-08-03 19:47:17 +08:00
Jakob Hasse
4dd88329c1 [esp_rom]: Partially buildable for linux
The following files have been ported:
* esp_rom_crc.h
* esp_rom_sys.h
* esp_rom_efuse.h (mostly no-ops)
* esp_rom_md5.h

Integrated Linux-based rom implementation into log
and NVS component.

Added brief host tests for ROM to ensure basic
consistency on Linux.

Added ROM printf host unit tests.

Temporarily added reset reason for Linux in ROM.
2021-08-03 12:03:24 +08:00
Jakob Hasse
de6b54de66 [nvs_flash]: Entries with state == 1 don't crash 2021-07-30 18:33:27 +08:00
morris
4c0ddd34b4 ci: added script to check api violations 2021-06-22 11:28:01 +08:00
Anton Maklakov
e5faf4f924 ci: fix test_build_system* fails 2021-06-07 18:48:38 +07:00
Jakob Hasse
68393c41c4 doc: linux host test documentation 2021-04-23 09:27:35 +08:00
Jakob Hasse
2fb5b42eb1 [nvs] add nvs page host test to CI
Closes IDF-2425
2021-04-20 14:40:16 +08:00