Commit graph zephyr/modules
Author SHA1 Message Date
Michiba Toryu
c23f1c1112 modules: openthread: support platform-allocated crypto contexts
OpenThread can leave crypto operation contexts to the platform
(OPENTHREAD_CONFIG_CRYPTO_PLATFORM_ALLOCS_CONTEXT) instead of embedding
them in the core. Add OPENTHREAD_CRYPTO_PLATFORM_ALLOCS_CONTEXT, off by
default. When it is set, each operation type is drawn from its own
memory slab, with a Kconfig count, so the number of live contexts is
fixed and unrelated heap use cannot displace one.

An empty slab calls k_panic(). OpenThread core does not reliably check
otPlatCrypto*Init(), and a NULL context would leave crypto output
buffers unwritten.

The option depends on OPENTHREAD_CRYPTO_PSA.
Move the existing radio tests under tests/subsys/openthread/radio so the
crypto test can sit beside them. The radio test contents are unchanged.

Assisted-by: Cursor:grok-4.7
Signed-off-by: Michiba Toryu <Michiba.Toryu@silabs.com>
2026-10-30 10:13:03 -04:00
Albort Xue
e653f685e3 memc: add NXP SEMC controller and SDRAM drivers
Add memc drivers for the NXP Smart External Memory Controller (SEMC)
and for SDRAM devices attached to it. The controller driver provides
reconfigure/soft-reset and SDRAM/SRAM/NOR/NAND configuration entry
points, while the SDRAM device driver is configured from devicetree
timing properties and implements the generic memc API
(get_mem_base/get_size; read/write default to a memcpy).

Switch the imxrt SoC dtsi files to the new nxp,semc compatible and
keep the SEMC node disabled by default, since the ROM boot code may
already initialize external memory that the kernel runs from.

Signed-off-by: Albort Xue <yao.xue@nxp.com>
2026-10-30 10:11:31 -04:00
Jakub Zymelka
864d8c2645 modules: hal_nordic: nrfx: add WDT stop-at-init option
Expose CONFIG_NRFX_WDT_CONFIG_STOP_AT_INIT and enable it by default
when nrfx WDT support is selected.

Map the option to an explicit nrfx configuration value. Document the
temporary loss of watchdog supervision and the failure behavior when
the inherited WDT configuration prohibits stopping.

Signed-off-by: Jakub Zymelka <jakub.zymelka@nordicsemi.no>
2026-10-29 19:45:15 -04:00
Michał Stasiak
87e9c3eea6 drivers: audio: dmic_nrfx_pdm: use PCLK16M symbol
Using new symbol if available to select proper clock
source. Reqires nrfx API version bump to 4.7.0.

Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>
2026-10-29 19:45:15 -04:00
Zhaoxiang Jin
e9de5d9917 drivers: opamp: mcux_opamp_fast: drop the fsl_opamp.h dependency
fsl_opamp.h's OPAMP_Init()/OPAMP_Deinit() manage the instance's clock
themselves, calling CLOCK_EnableClock()/CLOCK_DisableClock() through a
per-instance lookup table rather than through clock_control. This
driver calls neither function, and the only things it does use from
the header -- OPAMP_Enable(), OPAMP_SetBiasCurrent() and
OPAMP_SetCompensationCapcitor() -- are each a one-line OPAMP_CTRL
read-modify-write using masks that live in the device's own CMSIS
register header, not in fsl_opamp.h.

Inline all three as the same read-modify-write on OPAMP_CTRL. Retype
bias_current from the HAL's opamp_bias_current_t to uint8_t: it was
only ever assigned a DT_INST_ENUM_IDX() index and passed to a uint8_t
parameter, never used as an enum.

Drop the #include entirely: OPAMP_Type and the register masks come
from the device's own CMSIS header, which the SoC's fsl_common.h
already makes available to every driver, so no explicit include is
needed here.

CONFIG_MCUX_COMPONENT_driver.opamp_fast only ever gated the MCUX
HAL's own fsl_opamp.c/.h; with that dependency gone, drop the
drivers.cmake line that turned it on for this driver's Kconfig
symbol.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-10-29 19:43:50 -04:00
Zhaoxiang Jin
3c3c49903e drivers: opamp: mcux_opamp: drop the fsl_opamp.h dependency
The HAL's OPAMP_Init()/OPAMP_Deinit() manage the instance's clock
themselves, calling CLOCK_EnableClock()/CLOCK_DisableClock() through a
per-instance lookup table rather than through clock_control. This
driver calls neither function.

Every register mask this file uses (OPAMP_OPAMP_CTR_*) is defined in
the device's own CMSIS register header, not in fsl_opamp.h; the only
things fsl_opamp.h was actually supplying were two one-line static
inline wrappers (OPAMP_DoNegGainConfig/OPAMP_DoPosGainConfig, both
just an OPAMP_CTR read-modify-write) and three enum constants used
only as fixed field encodings (kOPAMP_NegGainBufferMode,
kOPAMP_PosGainNonInvert1X, kOPAMP_PosRefVoltVrefh4). Inline the
wrappers as the same read-modify-write on OPAMP_CTR, and replace the
enum constants with local named constants carrying the same values.

Drop the #include entirely: OPAMP_Type and the register masks come
from the device's own CMSIS header, which the SoC's fsl_common.h
already makes available to every driver, so no explicit include is
needed here.

CONFIG_MCUX_COMPONENT_driver.opamp only ever gated the MCUX HAL's own
fsl_opamp.c/.h; with that dependency gone, drop the drivers.cmake line
that turned it on for this driver's Kconfig symbol.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-10-29 19:43:50 -04:00
Benjamin Cabé
75aa4d6233 arch: arm: select the CMSIS core that the CPU needs
Each Arm CPU selected HAS_CMSIS_CORE, which the cmsis and the cmsis_6
glue both define, so a build without the module for its CPU passed
Kconfig and failed in the compiler on cmsis_core.h. Select the CPU's
own HAS_CMSIS_CORE_M, HAS_CMSIS_CORE_A or HAS_CMSIS_CORE_R instead,
which only the glue of the module that provides it defines, so that
Kconfig stops on the missing module. Configurations that have the
modules are unchanged.

Assisted-by: Claude:opus-5.5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-10-29 19:43:27 -04:00
Niranjan M
4e24751245 modules: hal_infineon: Add MXCRYPTOLITE PDL source
Add USE_INFINEON_MXCRYPTOLITE_* Kconfig symbols and CMake rules to build
the PDL source for the MXCRYPTOLITE block: cy_cryptolite_aes.c,
cy_cryptolite_aes_ccm.c, cy_cryptolite_vu.c, cy_cryptolite_trng.c, and the
unified cy_cryptolite_sha.c (SHA-256/384/512).

Signed-off-by: Niranjan M <niranjan@aerlync.com>
2026-10-29 19:43:22 -04:00
Kapil Bhatt
4ff63ea5ae modules: hostap: Return error if driver set country fails
wpa_cli_cmd_v() discards the control interface reply, so a "FAIL"
from "SET country" (e.g. the driver rejecting the country code) was
reported as success.

Send the raw "SET country" command with a response buffer and return
-EINVAL unless the reply is "OK".

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2026-10-29 15:46:13 -04:00
Triveni Danda
a9a30698b8 modules: hostap: Avoid redundant scan after connect in STA mode
ENABLE_NETWORK and SELECT_NETWORK both schedule scans, causing
an extra scan immediately after connection. This can cause
packet loss during DHCP and initial data exchange, and trigger
unwanted roaming.

Remove ENABLE_NETWORK in STA mode, as SELECT_NETWORK already
enables the selected network. Retain it for SoftAP mode.

Signed-off-by: Triveni Danda <triveni.danda@nordicsemi.no>
2026-10-28 22:50:36 -04:00
sree sreerajatha
be274e6089 modules: openthread: Add link metrics condition to link OT utilities
Link the OT platform utilities when link metrics subject support
is enabled. link_metrics.cpp depends on the OpenThread core
library, so the utils archive has to come before those libraries
on the link line.

Signed-off-by: sree sreerajatha <sree.sreerajatha@silabs.com>
2026-10-28 22:49:47 -04:00
Laura Carlesso
0577dfc0ac soc: infineon: edge: Remove custom linker
A custom linker had been put in place to handle the assembly
file for cy_syslib_ext. That caused the custom linker to drift from
the original and miss important fixes. Rather than keeping the
copy in place and aligned, revisited the way the assembly file is
handled. Instead of hand-picking the one shipped with mtb-dsl
that matches the right toolchain, maintain a copy of it in Zephyr
(the linker changes often, the .S never does).

Assisted-by: Claude:claude-opus4.8
Signed-off-by: Laura Carlesso <laura.carlesso@infineon.com>
2026-10-28 22:42:21 -04:00
William Markezana
894a7bb323 soc: bflb: bl808: add WiFi platform support
Add the SoC glue for the BL808 wifi4 firmware blob on the wifi4 driver:
MAC clock ungate, PHY power tables from devicetree, the firmware task
running the blob's own wifi_main(), the WIFI_RAM sections, and the IPC
glue for the BL808 shared environment, whose TX path queues descriptors
on list_ongoing and recycles them from list_cfm. Data frames use all
four descriptors; only EAPOL frames wait for their confirmation, as the
PTK is installed once handshake message 4 has left.

blob_printf() moves from the BLE OS shim to bflb_rf.c, shared by the
BLE controller, the WiFi firmware and the PHY library, and is quiet
outside WiFi debug builds as both blobs trace every scanned channel.

The first RF calibration, run at bring-up, executes with interrupts
locked: preempting it hangs the SoC. Unlike the BL602 one, the BL808
firmware also recalibrates periodically while it tracks a BSS
(mm_sta_tbtt -> rfc_channel_ops -> rf_init). Those calibrations keep
interrupts enabled, as locking them stalls the MAC for the whole
calibration: firmware timers run late and auth/assoc responses are
missed (join status 11/14).

Provide link stubs for the firmware symbols the driver and SoC glue
reference, for CONFIG_BUILD_ONLY_NO_BLOBS builds.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-10-28 22:36:48 -04:00
William Markezana
9f6254e45c soc: bflb: bl60x: build the RF glue on BFLB_PHYRF
Build bflb_rf.c and link the PHY library whenever a driver selects
CONFIG_BFLB_PHYRF, instead of listing the BLE and WiFi drivers.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-10-28 22:36:48 -04:00
William Markezana
baec55c3ba manifest: hal_bouffalolab: update revision for BL808 WiFi
Point the hal_bouffalolab module at the revision that moves the wifi4
firmware host interface headers to include/bouffalolab/common/wifi4,
shared by BL60x and BL808, and the BL808 WiFi blobs.

Update the BL60x include path accordingly and drop the lmac_types.h
includes, as the shared headers use the standard integer types.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-10-28 22:36:48 -04:00
Michal Frankiewicz
f7aa64dedb samples: Replace divider set API with set rate API in clock users
Replaced nrfx_clock_hfclk_divider_set with clock_control_set_rate API.

Signed-off-by: Michal Frankiewicz <michal.frankiewicz@nordicsemi.no>
2026-10-28 22:29:28 -04:00
Adam Kondraciuk
b8a9ea30b0 modules: hal_nordic: Fix NRFX configuration for GRTC
The default NRFX configuration comes from
`hal/nordic/nrfx/bsp/stable/templates` directory and needs
to be overwritten for Zephyr purposes.

Signed-off-by: Adam Kondraciuk <adam.kondraciuk@nordicsemi.no>
2026-10-28 22:26:55 -04:00
Alexpandi Muniyandi
1640eb1e29 modules: hal_infineon: gate cy_sar2.c on USE_INFINEON_SAR2_ADC
Add a dedicated USE_INFINEON_SAR2_ADC symbol and build cy_sar2.c
from it instead of the generic USE_INFINEON_ADC, so the SAR2 PDL
source is only compiled for the SAR-v2 driver, not for every
Infineon ADC.

Signed-off-by: Alexpandi Muniyandi <alexpandi@linumiz.com>
2026-10-28 22:26:30 -04:00
André Costa
688d4e3126 modules: hal_nxp: build pxp driver with LV_Z_DRAW_PXP
When LV_Z_DRAW_PXP is enabled, the build requires the PXP driver
sources. Add it to the build.

Additionally, ensure `MCUX_PXP` is not enabled at the same time as
the PXP IRQ is required by both LVGL and the DMA driver resulting
in conflicts.

Signed-off-by: André Costa <andre_miguel_costa@hotmail.com>
2026-10-22 18:24:31 +02:00
Baptiste Coffin
024d951578 modules: openthread: mdns: initialize pollfd array to -1
The mDNS platform socket module declares a static array of
`zsock_pollfd` entries sized by
CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_MAX_MDNS_SERVICES (2 when both
IPv6 and IPv4 are enabled), but never initializes it. Being a static
array it is zero-initialized, so every unused entry ends up with
`fd == 0` instead of the `-1` used to denote an unused slot.

`mdns_socket_init_v6()` only fills index 0 and then registers the whole
array with `net_socket_service_register(..., ARRAY_SIZE(sockfd_udp), ...)`,
so a bogus `{ .fd = 0, .events = 0 }` entry is registered as well. When
another module legitimately owns fd 0, the socket service steals its
events: `find_svc_and_event()` matches on the file descriptor alone and
returns the first service in linker order, then `trigger_work()` sees a
mismatch on `events` and permanently disarms the descriptor in the global
poll array. The real owner stops receiving data, with no handler ever
invoked and no error reported.

Initialize the array to -1 in `mdns_plat_socket_init()`, which runs
before any `otPlatMdnsSetListeningEnabled()` call, mirroring what
`udp_plat_init_sockfd()`, `infra_if_init()` and `dhcpv6_pd_client_init()`
already do for their own pollfd arrays.

Signed-off-by: Baptiste Coffin <baptiste.coffin_1@nxp.com>
2026-10-22 18:20:03 +02:00
Sylvio Alves
ec0c86faf4 modules: hostap: reserve heap for enterprise credential copies
The station and access point glue now keep their own copies of
the enterprise certificates and keys until the credentials are
replaced. With the build-time test certificates these used to
stay in read-only memory, so the heap now carries an extra load
of up to about 12 KB for the station and 6 KB for the access
point.

Reserve that memory in the system heap when the supplicant uses
it, and raise the dedicated supplicant heap defaults by the same
amount for each enterprise combination.

Assisted-by: Claude:opus-5
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-10-22 18:17:21 +02:00
Sylvio Alves
06b00e1e82 modules: hostap: do not keep caller pointers in conn params
supplicant_connect() saved a shallow copy of the connect request
for NET_REQUEST_WIFI_CONN_PARAMS. Its string members point to the
caller's buffers, such as the shell arguments or a stack frame,
which are no longer valid once the request returns, and include
the passphrase and other secrets.

Build the saved parameters from an allowlist of scalar settings
on a zeroed struct, with an own copy of the SSID, so a pointer
member added later is not exposed. Document what the request
returns and note the change in the release notes.

Assisted-by: Claude:opus-5
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-10-22 18:17:21 +02:00
Sylvio Alves
d8d53da68c modules: hostap: copy access point enterprise credentials
hostapd_add_enterprise_creds() kept a shallow copy of the
caller's credentials, and AP enable handed those raw pointers to
the hostapd configuration blobs. The Wi-Fi certificate library
frees the buffers when the AP is disabled or the credentials are
replaced, so a later AP enable parsed freed memory, also when it
failed before setting the blobs again or used PSK, since
eap_server stays enabled.

Keep copies owned by the hostapd glue, wipe them when they are
replaced, and clear the configuration blobs that point to them
first. Refuse the replacement while the interface is enabled.

Assisted-by: Claude:opus-5
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-10-22 18:17:21 +02:00
Sylvio Alves
78a5bd2f58 modules: hostap: copy station enterprise credentials
supplicant_add_enterprise_creds() kept a shallow copy of the
caller's credentials, so the certificate and key pointers were
only read at the next connect. The Wi-Fi certificate library
frees those buffers on disconnect and when the credentials are
replaced, so a later connect that does not set them again first
copied freed memory into the supplicant blobs.

Keep copies owned by the supplicant glue, made under the
supplicant mutex, and wipe them when they are replaced.

Assisted-by: Claude:opus-5
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-10-22 18:17:21 +02:00
Fin Maaß
9643f9bd8c openthread: platform: use net_if_get_config()
The members of struct net_if are internal to the network subsystem.
Get the interface configuration through net_if_get_config() instead of
accessing the config member directly.

Assisted-by: Claude:claude-opus-5.5
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-10-21 12:04:57 +02:00
Zayne Stites
4f2d6567be modules: hal_infineon: build PRA driver for PSoC 64
Adding missing PRA driver for PSoC6_64.  This series calls
PRA functions unconditionally and failed to build.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Zayne Stites <Zayne.Stites@infineon.com>
2026-10-20 17:36:21 +02:00
Tomi Fontanilles
5c09ad7d95 modules: mbedtls: mark EXTERNAL_RNG_ALLOW_NON_CSPRNG as NOT_SECURE
To make it more visible when this insecure option is enabled.

Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
2026-10-19 10:23:29 +02:00
Robert Lubos
b4efa996df modules: openthread: enable usec timer for RCP and raw link on 1.2+
OpenThread requires OPENTHREAD_CONFIG_PLATFORM_USEC_TIMER_ENABLE
whenever timed reception is compiled into the sub-MAC. Besides the
CSL receiver and the wake-up listener, that is the case for radio-only
and raw link builds with software RX timing, which the Zephyr core
config enables for Thread 1.2 and newer.

OPENTHREAD_PLATFORM_USEC_TIMER has no prompt and defaulted to y for
the CSL receiver and the Wake-up End Device only, so an RCP or a raw
link build with Thread 1.2 or newer failed to compile. Default it to y
for those configurations as well.

Assisted-by: Claude:claude-fable-5.1
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2026-10-12 23:32:38 +02:00
Jamie McCrae
99a49cec2d modules: mcuboot: kconfig: Fix invalid name/condition Kconfig
Fixes an issue with a Kconfig which is improperly named and depends
on to indicate it only applies to direct-xip with revert, when it
actually applies to RAM load with revert also

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2026-10-09 17:02:23 +02:00
Martin Meyer
4e4caba48a mgmt: mcumgr: select MCUboot bootutil library
Enable the MCUboot bootutil library when the MCUmgr image management
server or client is enabled.

Add a Zephyr-side Kconfig option for linking applications with the
MCUboot bootutil headers and select the bootutil library from the
MCUmgr image management Kconfig symbols.

This ensures the required bootutil dependency is enabled automatically
for MCUmgr image management functionality.

Signed-off-by: Martin Meyer <meyer.m90@gmail.com>
2026-10-09 16:56:09 +02:00
Camille BAUD
4d56629aa8 modules: openthread: Do not enforce MbedTLS Heap
There is no reason to enforce this and
it blocks customization when required.
Use imply to not change behavior otherwise.

Signed-off-by: Camille BAUD <mail@massdriver.space>
2026-10-08 15:05:04 +02:00
Michiba Toryu
89b459de37 openthread: platform: fix MAC key install depending on aKeyIdMode
otPlatRadioSetMacKey() requires the platform to ignore aKeyIdMode
and treat the configured keys as Key ID Mode 1. The previous code
used aKeyIdMode to decide whether to install the keys, so a value
other than 1 left the driver with no MAC key.

Always pass key id mode 1 to the IEEE 802.15.4 driver. Install the
previous, current, and next keys when aKeyId is non-zero. aKeyId 0
still clears the keys.

Signed-off-by: Michiba Toryu <Michiba.Toryu@silabs.com>
2026-10-08 10:46:12 +02:00
Tim Pambor
24bb057056 modules: tf-m: expand variables in the encryption key file path
CONFIG_TFM_MCUBOOT_ENCRYPTION_KEY_FILE is passed verbatim to the TF-M
build and to imgtool, whereas CONFIG_TFM_KEY_FILE_S and
CONFIG_TFM_KEY_FILE_NS go through string(CONFIGURE) first. A value set
in a .conf file that references a CMake variable, such as
"${ZEPHYR_MCUBOOT_MODULE_DIR}/enc-rsa2048-priv.pem", therefore reaches
TF-M unexpanded. The variable is undefined there and the build fails:

  ninja: error: '/enc-rsa2048-priv.pem', needed by
  'bl2/ext/mcuboot/keys_enc_generated.c', missing and no known rule to
  make it

Expand the value the same way as the signing key paths. The default is
not affected, Kconfig already resolves $(ZEPHYR_MCUBOOT_MODULE_DIR) in
it to an absolute path.

Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2026-10-08 10:45:16 +02:00
Fabian Blatz
9b872ecbe2 modules: lvgl: Only add display rounder cb if enabled
Changes the display setup code to not pass NULL as a value while setting up
the rounder callback, as this might raises asserts in future LVGL versions.

Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
2026-10-08 09:07:05 +02:00
André Costa
85c1870c8e manifest: Update LVGL to 9.6.0
Update LVGL to 9.6.0

The LVGL module now sources a zephyr/Kconfig.defaults before the
LVGL Kconfig.

The Zephyr tree no longer re-declares or references symbols of the
LVGL module Kconfig. Boards, shields and SoCs set Zephyr owned LV_Z_*
options instead, and Kconfig.defaults in the LVGL module turns them
into defaults of the matching LVGL options.

LVGL 9.6 replaces the color depth option with the
LV_COLOR_FORMAT_DEFAULT choice. The LV_Z_COLOR_FORMAT choice provides
its SoC, board and shield default, with a no default option that
keeps the LVGL default. LV_Z_DPI_DEF and LV_Z_DRAW_BUF_ALIGN have no
prompt and default to 0, which also keeps the LVGL default.
LV_ATTRIBUTE_MEM_ALIGN_SIZE has no LVGL counterpart and becomes
LV_Z_ATTRIBUTE_MEM_ALIGN_SIZE. LV_USE_GPU_NXP_PXP is used by hal_nxp
and keeps its name.

The render buffers are sized from the bits per pixel of
LV_COLOR_FORMAT_DEFAULT unless LV_Z_BITS_PER_PIXEL is set,
and the monochrome buffer layout follows CONFIG_LV_COLOR_FORMAT_I1,
so both follow a color format set by the application.

Logging and the system monitor stay with the LVGL module. The glue
logs through its own log module using the log level template, and
samples using the system monitor enable CPU_LOAD themselves.

Co-authored-by: Fabian Blatz <fabianblatz@gmail.com>
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
Signed-off-by: André Costa <andre_miguel_costa@hotmail.com>
2026-10-08 09:07:05 +02:00
Fabian Blatz
7489efa34e modules: lvgl: move Kconfig based settings to a separate header
Move the LVGL configuration macros derived from Zephyr Kconfig options
from lv_conf.h into the new lvgl_zephyr_kconfig.h, which lv_conf.h
includes. The header becomes the single place mapping the Zephyr LVGL
Kconfig options to the LVGL configuration macros, similar to
nrfx_kconfig.h for nrfx.

lv_conf_internal.h includes lv_conf.h before it evaluates the options of
the LVGL module Kconfig, so the macros defined there take precedence.

Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
2026-10-08 09:07:05 +02:00
Benjamin Cabé
acef611033 hardening: tfm: add TF-M rules
Add hardening rules for Trusted Firmware-M exception information
dumps and SPM debug logging.

- CONFIG_TFM_EXCEPTION_INFO_DUMP: n (strict)
- CONFIG_TFM_SPM_LOG_LEVEL_DEBUG: n (strict)

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-10-08 08:01:53 +02:00
Pisit Sawangvonganan
8cdb220166 modules: {nrf_wifi, openthread}: fix typo
Utilize a code spell-checking tool to scan for and correct spelling errors
in all files within:
- `modules/nrf_wifi`
- `modules/openthread`

Assisted-by: Claude:claude-sonnet-5-5 codespell
Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
2026-10-06 22:40:01 +02:00
Pisit Sawangvonganan
77e2241dc6 modules: {fatfs, hal_nordic, hal_nxp, hal_realtek, hostap}: fix typo
Utilize a code spell-checking tool to scan for and correct spelling errors
in all files within:
- `modules/fatfs`
- `modules/hal_nordic`
- `modules/hal_nxp`
- `modules/hal_realtek`
- `modules/hostap`

Assisted-by: Claude:claude-sonnet-5-5 codespell
Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
2026-10-06 22:40:01 +02:00
Pavel Vasilyev
f6dc6439c9 modules: hostap: zero-initialize the signal poll response
supplicant_status() passes an uninitialized struct signal_poll_resp to
z_wpa_ctrl_signal_poll(). If parsing the SIGNAL_POLL reply does not fill
both fields, rssi and current_phy_tx_rate are reported from stack
garbage.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
Assisted-by: Claude:claude-opus-5
2026-10-06 10:05:24 +02:00
Benjamin Cabé
50e3900213 hardening: wifi: add Wi-Fi supplicant rules
Add hardening rules for the hostap-based Wi-Fi supplicant:
constant-time SAE password element derivation and key material
logging.

- CONFIG_SAE_PWE_EARLY_EXIT: n (base)
- CONFIG_WIFI_NM_WPA_SUPPLICANT_DEBUG_SHOW_KEYS: n (base)

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-10-06 07:28:12 +02:00
Benjamin Cabé
eb5ec9f8fb hardening: crypto: add Mbed TLS rules
Add hardening rules for Mbed TLS: debug output, the PSA RNG fallback to
a non-cryptographic source, TLS 1.3 early data, the TLS 1.2
Encrypt-then-MAC and Extended Master Secret extensions, and the set of
enabled PSA algorithms.

- CONFIG_MBEDTLS_DEBUG_C: n (base)
- CONFIG_MBEDTLS_MEMORY_DEBUG: n (strict)
- CONFIG_MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG_ALLOW_NON_CSPRNG: n (base)
- CONFIG_MBEDTLS_SSL_EARLY_DATA: n (base)
- CONFIG_MBEDTLS_SSL_ENCRYPT_THEN_MAC: y (base)
- CONFIG_MBEDTLS_SSL_EXTENDED_MASTER_SECRET: y (base)
- CONFIG_PSA_CRYPTO_ENABLE_ALL: n (base)

Assisted-by: Claude:fable-5
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-10-06 07:27:48 +02:00
Fabian Blatz
68b1d7f99f modules: hal_nxp: remove LV_USE_GPU_NXP_PXP option
The option only enabled the driver.pxp HAL component, which
CONFIG_MCUX_PXP already enables, defaulting to y when the
nxp,pxp devicetree node is enabled. Remove the option and its
set_variable_ifdef so the component is driven solely by
MCUX_PXP.

Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
2026-10-06 07:25:24 +02:00
William Markezana
91af2a37ce drivers: wifi: bflb: wifi4: install the IGTK through the IGTK API
The generic firmware key API derives the cipher from the key length and
stores a group key in slot vif * 4 + key_idx. The IGTK (key_idx 4) thus
went in as a CCMP key over the pairwise key of station 0 whenever the
link used interface 1, as the first connection after boot always does:
the link came up but no unicast frame decrypted and DHCP never completed.
Install it with bl_wifi_set_igtk_internal() instead.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-10-02 22:00:48 -05:00
William Markezana
c80eadbd5b drivers: wifi: bflb: wifi4: clear the firmware scan cache after a scan
The firmware caches only a handful of BSSes seen while scanning, and
drops every frame from a BSS it cannot cache. A scan leaves that cache
full and a join scan does not clear it, so joining an AP the scan did
not happen to cache failed with status 14, typically on the first
connect after a scan. Clear the cache once a scan completes.

Add scanu_cached_scanresult_clear() to the BL60x no-blobs link stubs,
along with the sm_env the driver already referenced, whose absence
broke CONFIG_BUILD_ONLY_NO_BLOBS builds on BL60x.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-10-02 22:00:48 -05:00
Benjamin Cabé
bc2dd0ecbc modules: hal_infineon: psc3m6: skip the MTB warmboot code
The MTB startup file's warmboot path in system_psc3_x6.c overrides the
PDL's weak Cy_SysPm_StoreDSContext_Wfi() and references
__s_vector_table_rw and __STACK_LIMIT, which come from the MTB startup
file and linker script that Zephyr replaces. Define
CYBSP_SKIP_PM_REGISTRATION for the HAL library to leave it out.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Assisted-by: Claude:opus-5
2026-10-02 08:11:35 -05:00
Michele Sardo
b3cd8c8dd0 modules: openthread: restrict SECURE_STORAGE implication for RCP mode
Do not imply SECURE_STORAGE when OPENTHREAD_COPROCESSOR_RCP is enabled.
Radio Co-processor (RCP) mode delegates network state and cryptographic
storage to the host architecture, making local secure storage unnecessary.

Signed-off-by: Michele Sardo <msmttchr@gmail.com>
2026-09-30 12:53:48 +02:00
Massimiliano Cialdi
06591609e4 soc: nxp: imxrt: add i.MX RT1175 SoC support
The RT1175 is the dual-core (Cortex-M7 + M4) RT1176 without the whole
DISPLAY power domain (GPU2D, PXP, CSI, eLCDIF, LCDIFv2, MIPI CSI, MIPI
DSI): LCDIFv2 has no row in the datasheet's ordering table either, and
is removed with the rest of the domain per the reference manual's
power domain list.

Add SOC_MIMXRT1175(_CM4/_CM7) and its six part numbers, mirroring RT1176
in Kconfig, clock_init() and the sysbuild second-core launcher default,
plus a devicetree deleting the six DISPLAY domain nodes (csi, lcdif,
lcdifv2, pxp, mipi_dsi, mipi_csi2rx). The part numbers select nothing,
as for RT1166/RT1176: the board selects the CM4/CM7 symbol instead.

modules/hal_nxp's cache driver selection hardcodes which imxrt11xx
SoCs use the LMEM cache driver on their M4 core instead of testing
HAS_MCUX_LMEM_CACHE generically; add RT1175, or its M4 build links
against the wrong cache driver and fails to build.

SYS_CLOCK_HW_CYCLES_PER_SEC for SOC_MIMXRT1175_CM7/_CM4 is derived
from devicetree instead of a literal, per review. Add clock-frequency
to cpu0/cpu1 in the RT1175 core dtsi, matching RT1176's existing
values (996MHz/400MHz).

Built samples/hello_world for both cores and all six part numbers on
an out-of-tree board, confirming SYS_CLOCK_HW_CYCLES_PER_SEC resolves
to 996000000/400000000; enabling any deleted node from an overlay
fails with an undefined node label error. mimxrt1170_evk and
vmu_rt1170 (both cores) produce identical binaries before and after.

Assisted-by: Claude:claude-sonnet-5
Signed-off-by: Massimiliano Cialdi <cialdi@gmail.com>
2026-09-30 12:52:00 +02:00
Clark Jarvis
bb32155d0a drivers: misc: ethos_u: fix PSE84 default NPU config to U55-128
modules/hal_ethos_u/Kconfig defaults ETHOS_U_NPU_CONFIG to
ETHOS_U55_256 for SOC_SERIES_PSE84. The Ethos-U55 integrated in
PSE84 is a U55-128 part, confirmed three independent ways: the
NPU's own configuration register reports macs_per_cc=7 (2^7 = 128
MACs/cycle, 24 KiB SHRAM), a second, independent ID register field
agrees, and the datasheet throughput figure of 51.2 GOPS at 400 MHz
works out to 128 ops/cycle rather than 256.

Because this default only affects which Vela accelerator config an
integrator's build assumes, and not anything checked at build time,
a model compiled against the wrong default builds, links and boots
without any diagnostic, then fails at the first Invoke() with an
NPU config mismatch:

    I: Optimizer config. macs_per_cc=8, shram_size=48
    I: Ethos-U config.   macs_per_cc=7, shram_size=24
    E: ethosu_device_u55_u65.c:358: NPU config mismatch.
             npu.macs_per_cc=7, optimizer.macs_per_cc=8

Set the PSE84 default to ETHOS_U55_128 to match the silicon.
Re-running Vela at --accelerator-config ethos-u55-128 against an
existing model gives identical operator coverage, so this is a
correctness fix with no capability change for existing PSE84 users
who already override the default correctly.

Assisted-by: Copilot:claude-sonnet-5
Signed-off-by: Clark Jarvis <Clark.Jarvis@infineon.com>
2026-09-30 12:48:47 +02:00
Ryan McClelland
a619c3f6f7 modules: cmsis-nn: update to v8.0.0
Update cmsis-nn to v8.0.0 on the zephyr-v8.0.0 branch of the Zephyr
fork.

v8.0.0 adds experimental float16 and float32 kernels, which upstream
only builds when ARM_NN_ENABLE_F16 or ARM_NN_ENABLE_F32 is set. The
BasicMath, Concatenation and Reshape globs matched every source in
their directory and would pick up the new *_f16.c and *_f32.c files,
so restrict them to the integer sources. The set of integer sources
is unchanged from v7.0.0.

Tested with twister: libraries.cmsis_nn passes on mps2/an521/cpu0,
mps2/an385 and qemu_cortex_m3, and builds for frdm_k64f,
sam_e70_xplained/same70q21, mps3/corstone300/fvp and
mps4/corstone315/fvp.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2026-09-30 12:47:50 +02:00