Commit Graph

367 Commits

Author SHA1 Message Date
Alexey Lapshin
ed6e497c6f feat(build): add COMPILER_STATIC_ANALYZER option 2024-06-18 14:25:37 +08:00
Konstantin Kondrashov
391aabf73f Merge branch 'feature/linux_esp_err_support' into 'master'
feat(esp_common): Support ESP_ERROR_CHECK_ macros on Linux

Closes IDFGH-12933

See merge request espressif/esp-idf!31320
2024-06-06 22:17:28 +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
Konstantin Kondrashov
023d112cbf feat(esp_common): Support ESP_ERROR_CHECK_ macros on Linux
Closes https://github.com/espressif/esp-idf/issues/13893
2024-06-05 09:00:51 +03: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
Konstantin Kondrashov
712005c451 Merge branch 'feature/log_level_check_refactoring' into 'master'
feat(log): Refactoring tag level check APIs

Closes IDF-9083, IDF-7919, and IDFGH-6947

See merge request espressif/esp-idf!29331
2024-05-17 22:36:27 +08:00
Adam Múdry
7b32f27e81 Merge branch 'fix/nvs_tool_entry_unknown_type_crash' into 'master'
fix(nvs): Fix nvs_tool accepting an unknown entry type

See merge request espressif/esp-idf!30503
2024-05-17 21:05:22 +08:00
Adam Múdry
9eedd57a18 fix(nvs): Fix nvs_tool accepting an unknown entry type 2024-05-17 13:18:52 +02:00
Konstantin Kondrashov
c3b0418a4e feat(log): Refactoring tag level check APIs 2024-05-16 09:26:08 +03:00
harshal.patil
3eb6487bb5
fix(bootloader_support): Make esp_flash_encrypt.h independent of spi_flash_mmap.h header 2024-05-13 16:54:45 +05:30
Mahavir Jain
0d36eb3342
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 13:24:45 +05:30
Mahavir Jain
c032a8b04a
fix(tests): remove unused partition NVS bin file 2024-05-02 13:23:35 +05:30
Aditya Patwardhan
1366949c8a
feat(docs): Add workflow for externally enabling NVS Encryption
Fix documentation for host based workflows for flash encryption and
    secure boot v2
2024-04-19 11:29:21 +05:30
Adam Múdry
8e43afef3b fix(nvs): Fix possible collision with app trace sysview defines
Global.h defines U8, I8, U16, etc. symbols, which are also used in NVS
as a part of custom enum class and this can cause a compilation error
during macro expansion, when sysview is enabled and FreeRTOS.h is included in NVS
2024-04-12 13:46:51 +02:00
laokaiyao
65b1fd33d3 ci(esp32c5mp): disable the unsupported tests 2024-04-07 12:13:29 +08:00
Ivan Grokhotkov
10cc15b150
fix(storage): applied spelling fixes by codespell pre-commit hook 2024-03-28 13:00:54 +01:00
Jakob Hasse
f482a9153a Merge branch 'fix/add_libbsd_string_h' into 'master'
refactor(linux): Unified libbsd handling

See merge request espressif/esp-idf!29457
2024-03-21 10:11:25 +08:00
Jakob Hasse
4d629be602 refactor(linux): Unified libbsd handling
* Users can now use libbsd string.h and sys/cdefs.h functionality
  (e.g., strlcpy, containerof) on Linux by just including
  string.h or sys/cdefs.h. In other words, the includes are the same
  on the Linux target as well as on chips targets (ESP32, etc.).
* libbsd linking is done by the linux component (belongs to common
  components) now instead of handling it separately in each component
2024-03-08 12:26:54 +08: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
Ivan Grokhotkov
5b53fb07fb fix(nvs): prevent out of bounds write if blob data is inconsistent 2024-02-22 15:15:10 +01:00
Martin Vychodil
20f80a2d05 Merge branch 'feature/nvs_flash_add_test_apps_dependecies' into 'master'
feat(storage): add dependencies to storage related test apps

Closes IDF-8398, IDF-8397, and IDF-8835

See merge request espressif/esp-idf!27439
2024-01-04 03:29:05 +08:00
Adam Múdry
c0ea99220a Merge branch 'fix/move_nvs_partition_generator_to_pypi_package' into 'master'
fix(tools): replace nvs_partition_gen.py with new esp-idf-nvs-partition-gen package

Closes IDF-8147 and IDF-1958

See merge request espressif/esp-idf!26758
2023-12-18 09:13:38 +08:00
Tomáš Rohlínek
c276c36dfe
feat(storage/nvs_flash): add dependencies to nvs_flash test apps 2023-12-11 13:10:54 +01: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
Laukik Hase
ea51f4e2f7
fix(nvs_flash): Remove the forceful selection of NVS_ENCRYPTION with flash encryption
- This change will introduce a breaking change for SoCs with the HMAC
  peripheral. Turning on flash encryption will no longer enable NVS
  encryption automatically.

Closes https://github.com/espressif/esp-idf/issues/12549
2023-12-04 16:18:01 +05:30
Ivan Grokhotkov
88e77ba1ed
ci(nvs_flash): upgrade to Catch2 as a component, fix warnings 2023-11-29 12:38:47 +01:00
Adam Múdry
7464f5e3ea fix(tools): replace nvs_partition_gen.py with new esp-idf-nvs-partition-gen package 2023-11-23 23:58:20 +01:00
harshal.patil
5e1335aae4
fix(nvs_flash): Fix the memory leak in the nvs_flash test app
The leak is now reduced by allocating the AES interrupt and
loading the partitions in the test setup instead of in the tests itself.
2023-11-22 16:23:18 +05:30
Mo Fei Fei
a82b6f5c0b Merge branch 'docs/update_cn_trans_nvs_part_gen_readme' into 'master'
Docs: Update CN trans for components/nvs_flash/nvs_partition_generator/README.rst

Closes DOC-6449

See merge request espressif/esp-idf!26589
2023-10-26 12:19:26 +08:00
Mo Fei Fei
4f24d3a39c Docs: Update CN trans for components/nvs_flash/nvs_partition_generator/README.rst 2023-10-26 12:19:25 +08:00
Adam Múdry
e151184da7 refactor: Remove -Wno-format from storage related components 2023-10-22 17:56:41 +00:00
Adam Múdry
6154f22ab3 docs: nvs_open* add ESP_ERR_INVALID_ARG to return description
ESP_ERR_INVALID_ARG is returned from underlying functions but this was not easily evident
2023-10-19 14:36:10 +02: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
Martin Vychodil
64befdca3a Merge branch 'feature/partition_readonly_flag' into 'master'
feat(partition_table): Add read-only partition flag and functionality

Closes IDF-6421

See merge request espressif/esp-idf!24855
2023-10-13 11:11:07 +08:00
Laukik Hase
239bc3b96f Merge branch 'fix/nvs_part_gen_docs' into 'master'
fix(docs/nvs_part_gen): Show the NVS HMAC encryption scheme-specific commands only for supported SOCs

See merge request espressif/esp-idf!26332
2023-10-11 20:56:54 +08:00
Adam Múdry
ab1eb37fe8 feat(partition_table): Add read-only partition flag and functionality 2023-10-11 00:01:05 +02:00
Adam Múdry
d42bde0378 feat(nvs): NVS tool add key consistency check 2023-10-09 15:58:48 +02:00
Adam Múdry
c276e2ca05 refactor: NVS tool move integrity check from logger to another file 2023-10-09 15:58:48 +02:00
Laukik Hase
6c9a343e1b
fix(docs/nvs_part_gen): Show the HMAC scheme-specific commands only for supported SOCs 2023-10-06 11:33:12 +05:30
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
f693b78f93 feature(nvs_flash) : added support iteration over namespace by index - review changes 2023-08-29 16:05:02 +02:00
Ivan Grokhotkov
92ff04ebea nvs: use 'handle' argument name for consistency 2023-08-29 13:59:34 +02:00
Cody P Schafer
f2af1c5305 nvs: support iteration over namespace by index
Users of the nvs API are likely to have `nvs_handle_t` in all cases, but
not all of them carry around the partition name and namespace name (as
they aren't needed after creating an `nvs_handle_t`).

Allow this common case to use nvs iteration without them tracking
additional data by using the `nvs_handle_t` to locate the namespace
index and the partition name by introducing an alterate to
`nvs_entry_find` called `nvs_entry_find_in_handle`, which operates
similarly except that it is given a `nvs_handle_t` instead of partition
and namespace strings.

This is somewhat more limited than the `nvs_entry_find` API as one
cannot examine all keys in a given partition.
2023-08-29 13:59:34 +02:00
Martin Vychodil
e44d4260ad Merge branch 'feature/storage_host_test_nvs_flash2' into 'master'
nvs_flash: finished migration of host tests to the linux emulator of esp_partition

See merge request espressif/esp-idf!23926
2023-08-28 20:20:16 +08:00