Commit Graph
27 Commits
Author SHA1 Message Date
Martin Vychodil 671dc31a32 fix(security): Fixed ESP32S2 memory protection check for Peri1 RTCSLOW interrupt
- fixes the issue found in https://github.com/espressif/esp-idf/issues/15359
- extends debug printouts in the related tests
2025-02-19 19:26:21 +01:00
Martin Vychodil 65bc1ed055 System: remove digital-system reset within OS restart when Memprot on 2023-06-26 20:22:59 +02:00
Martin Vychodil 0e350d49ad fix(Storage/Wear Levelling): Fixed too few arguments in ESP_LOGV macro (WL_Flash::config)
- Added missing argument for wl_page_size in ESP_LOGV macro in WL_Flash::config function.
2023-06-26 17:40:44 +02:00
Martin Vychodil 0d1fd8ce44 idocs: updated Storage API reference documents for ESP32H2 2023-04-12 08:18:05 +02:00
Martin Vychodil 0477353b4a docs: updated Storage API reference documents for ESP32C6 2023-04-12 07:38:15 +02:00
Martin Vychodil 744742cb3d host_test:
[fatfs, wl]: partition.c interim update to work around non-Linux target
 [partition_api_test]: cleanup, new function for tmp filename generation
2023-03-08 05:06:30 +00:00
Martin Vychodil a2b4b27b62 esp_partition: Fixed use-after-free issue (coverity) 2023-03-08 05:06:30 +00:00
Martin Vychodil abc4d67a9d Storage: Fixed formatting of esp_partition Linux code 2023-03-03 23:57:34 +00:00
Martin Vychodil 537aca747b esp_partition: fixed esp_partition_get_sha256() test for big partitions
esp_partition_get_sha256() test for big partitions has been improved in allocation of MMU pages
2022-11-28 10:46: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
Martin Vychodil 0c87ae2a91 System/Security: Memprot API unified (ESP32S3)
Added missing features and improvements
2022-07-09 22:57:51 +02:00
Martin Vychodil ee9aa9a302 System/Security: fix missing checks for CPU-count sensitive Memprot APIs (ESP32S3)
Some of the Memory Protection (internal) API functions dealing with per-CPU operations were missing appropriate handling of the CPU count actually configured by CONFIG_FREERTOS_UNICORE. The flaw was fixed across all the places found in the code as the issue was of general type
2022-07-02 20:12:56 +00:00
Martin Vychodil 339fcbf14d System/Security: Memprot API unified (ESP32S3)
Unified Memory protection API for all PMS-aware chips - ESP32S3 port
2022-06-20 02:36:44 +00:00
Martin Vychodil 9a5f39ec2c spi_flash: Linux target emulation of Partition API
Emulator of Partition API layer for Linux OS
2022-03-04 14:36:46 +00:00
Martin Vychodil 0e52b9d230 System: Memory section .rtc.dummy removed
ESP32H2 doesn't support access to RTC memory through various buses, thus .rtc.dummy section
makes no sense here. The section is used for blind padding in LD script - to provide proper section offsets)
2022-02-22 13:52:46 +01:00
Martin Vychodil 16891e7a6c System: fix RTCFAST section alignment
This bugfix contains 3 fixes:
1. .rtc_dummy section is removed (not needed for C3)
2. .rtc_text section is padded with 16B for possible CPU prefetch
3. .rtc_text section is aligned to 4B boundary to comply with PMS Memprot requirements
2021-12-23 19:58:39 +08:00
Martin Vychodil dd938eb952 System/Security: Memprot API unified (ESP32C3)
Unified Memory protection API for all PMS-aware chips (ESP32C3)

Closes JIRA IDF-3849
2021-12-21 01:50:36 +01:00
Martin Vychodil dffb92e45f System/Security: wrong check of the Memprot feature in esp_restart()/panic_restart()
esp_restart()/panic_restart() never resets the Digital system (so far required only by the Memprot feature) as there's a typo in the corresponding #define:
it checks CONFIG_ESP_SYSTEM_CONFIG_MEMPROT_FEATURE instead of CONFIG_ESP_SYSTEM_MEMPROT_FEATURE.
Issue fixed.

IDF-4094
2021-10-29 16:28:28 +08:00
Martin Vychodil 5344de34c3 System/Memprot: fixed voltage glitching detection logic
When the application is being debugged it should check the call result (esp_cpu_in_ocd_debug_mode())
is not given volt.glitch attack - so the result is triple-checked by ESP_FAULT_ASSERT macro. In case
the check fails, the system is reset immediately

IDF-4014
2021-10-04 09:21:07 +02:00
Martin Vychodil 58aed7df98 ESP32S2: No assert()/abort() in Memprot API, use esp_err_t instead
JIRA IDF-3634
2021-08-26 09:20:00 +02:00
Martin Vychodil a866779070 Examples/Storage: sufficient timeout for SD formatting
Too short timeouts often cause useless failures on large-capacity SDs (16GB+)
Fixed by adding 60 sec timeout on new "Filesystem mounted" checkpoint

JIRA IDF-3741
2021-08-23 06:13:41 +02:00
Martin Vychodil ce28af2dd4 System/memprot: ESP32C3 IRAM section alignment fix (LD)
IRAM section didn't contain sufficient padding for possible CPU instruction prefetch,
ie instruction fetch could happen in DRAM section which is prohibited by the Memprot module.
This is fixed by adding 16B to the end of IRAM section in LD script (C3 CPU prefetch buffer depth is 4 words)

Closes IDF-3554

* fix
2021-07-23 17:11:12 +02:00
Martin Vychodil 1e58eb6928 system/security: Memprot bypassing mitigation
Check Memprot lock bit(s) during the system startup, abort/reset on any Memprot parts found locked during this phase.
There is no legal reason to disallow the Memprot configuration by the system, so it's either a critical bug in the
application or an malicious attempt to bypass the system security.
Error message is printed before digital system reset.

Closes IDF-2700
2021-06-01 00:07:09 +02:00
Martin Vychodil 99aa037793 * SD card example split (SDMMC/SDSPI)
JIRA IDF-1456
2021-04-29 10:38:55 +02:00
Martin Vychodil f27c9c5139 esp32c3: memprot API upgrade and test application
Closes IDF-2641
2021-04-12 13:44:11 +10:00
Martin Vychodil 7bbe2a235f * fixed generation of .gdbinit file (esp32c3 dbg issue) 2021-03-15 15:52:07 +01:00
Martin Vychodil 69096ddce5 Security: ESP32C3 memory protection feature (IRAM0/DRAM0)
Software support for PMS module.
Allows controlled memory access to IRAM (R/W/X) and DRAM0 (R/W)
On/locked by default, configurable in Kconfig (esp_system)

Closes https://jira.espressif.com:8443/browse/IDF-2092
2021-01-27 08:44:03 +01:00