feat(security): Add support for the ESP32-P4 Permission Control (PMS) peripheral
Closes IDF-9997, IDF-13529, IDF-13737, and IDF-14381
See merge request espressif/esp-idf!44205
fix(storage): mark storage pytest apps flaky in CI
Closes IDFCI-10775, IDFCI-7196, IDFCI-7223, IDFCI-11420, IDFCI-6170, IDFCI-6496, IDFCI-8805, IDFCI-11350, and IDFCI-8716
See merge request espressif/esp-idf!48216
Cancel any active SDP search during disabling and mark the BTA SDP
callbacks inactive so late search completions are not propagated
after deinit. Guard BTC side SDP completion handling after cleanup
to avoid null references.
The CMakeLists injects CONFIG_ESP_REV_MIN_FULL and CONFIG_XTAL_FREQ on
the command line because those symbols live in esp_common's Kconfig,
which is outside the G0 closure and is not loaded during a restricted
COMPONENTS build. When every discovered component's Kconfig is processed
(IDF_BUILD_V2) the symbols are already defined via their Kconfig
defaults, and the additional -D would conflict with the existing
definition.
Gate the injection so it only runs when the Kconfig is not processed.
g1_components forces VFS_SUPPORT_IO=n in sdkconfig.defaults to keep
vfs and its transitive deps out of the closure. When the restricted
COMPONENTS list does not load components/vfs/Kconfig, the symbol is
unknown at config time and kconfgen emits an "unknown kconfig symbol"
warning that idf-build-apps treats as a build failure.
Add an ignore pattern so the warning does not gate the build.
g1_components builds a minimal COMPONENTS list. When every component's
Kconfig is processed, components/vfs/Kconfig sets VFS_SUPPORT_IO=y by
default, and the conditional requires in esp_stdio and esp_libc pull
vfs, esp_driver_uart, and their transitive deps into the closure.
Add an sdkconfig.defaults that forces the symbol off so the dependency
graph stays restricted to the components actually under test.
expected_dep_violations only listed the edges visible when
idf_component_optional_requires was a no-op for the dependency graph.
Under build system v2's DEFERRED mode the call propagates the resolved
dependency back into PRIV_REQUIRES, and the graph also captures
esp_common -> {efuse, bootloader_support, app_update} and esp_system ->
esp_app_format.
Add those entries so the script does not flag them when IDF_BUILD_V2
is set.
libcoexist.a directly references phy_coex_force_rx_ant and
phy_coex_dismiss_rx_ant from libphy.a (esp_phy component) but never
declared this dependency. It only worked because esp_common privately
linked esp_wifi (which transitively brings esp_phy) with
LINK_INTERFACE_MULTIPLICITY 4, causing libphy.a to repeat in the link
line. An upcoming esp_common change removes that mechanism, exposing
this missing dependency.
Add a generic derived-PLL clock engine to esp_clk_tree_common that
handles acquire/release, mux selection, and divider programming for
target-defined derived clocks. Per-target descriptors (ESP32-P4,
ESP32-S31) plug into the engine via
esp_clk_tree_get_derived_clk_desc().