Skip to content

Conversation

@krish2718
Copy link
Contributor

This extends the PSA crypto support to WPA3, now all personal security can use PSA.

Copilot AI review requested due to automatic review settings November 23, 2025 19:40
@krish2718 krish2718 requested review from a team and jukkar as code owners November 23, 2025 19:40
@NordicBuilder NordicBuilder added manifest changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. labels Nov 23, 2025
@NordicBuilder
Copy link
Contributor

NordicBuilder commented Nov 23, 2025

The following west manifest projects have changed revision in this Pull Request:

Name Old Revision New Revision Diff
zephyr nrfconnect/sdk-zephyr@8116dbc (main) nrfconnect/sdk-zephyr#3525 nrfconnect/sdk-zephyr#3525/files

DNM label due to: 1 project with PR revision

Note: This message is automatically posted and updated by the Manifest GitHub Action.

Copilot finished reviewing on behalf of krish2718 November 23, 2025 19:42
@NordicBuilder
Copy link
Contributor

NordicBuilder commented Nov 23, 2025

CI Information

To view the history of this post, click the 'edited' button above
Build number: 2

Inputs:

Sources:

sdk-nrf: PR head: 06857104c3bf0b68ba5fa0ec4003fbf0b9328518
hostap: PR head: 51698b0f5fdac2778484f565d4591fcb1dd92bc4
zephyr: PR head: 3ccacaca53ccd67fdd65f0546a79d0dafdbe629c

more details

sdk-nrf:

PR head: 06857104c3bf0b68ba5fa0ec4003fbf0b9328518
merge base: 270cebc0718dd035605dfb9ae2ec809c46c83fec
target head (main): 270cebc0718dd035605dfb9ae2ec809c46c83fec
Diff

hostap:

PR head: 51698b0f5fdac2778484f565d4591fcb1dd92bc4
merge base: 5abcff1c0ecff65f0f81e0cc086b7f766e5101bf
Diff

zephyr:

PR head: 3ccacaca53ccd67fdd65f0546a79d0dafdbe629c
merge base: 911b3da1394dc6846c706868b1d407495701926f
target head (main): 8116dbcc6173ae9a1d6c526ec39f6c9b8c09de8d
Diff

Github labels

Enabled Name Description
ci-disabled Disable the ci execution
ci-all-test Run all of ci, no test spec filtering will be done
ci-force-downstream Force execution of downstream even if twister fails
ci-run-twister Force run twister
ci-run-zephyr-twister Force run zephyr twister
List of changed files detected by CI (857)
modules
│  ├── lib
│  │  ├── hostap
│  │  │  ├── hostapd
│  │  │  │  ├── hostapd_cli_zephyr.c
│  │  │  │  │ hostapd_cli_zephyr.h
│  │  │  ├── src
│  │  │  │  ├── ap
│  │  │  │  │  │ hostapd.h
│  │  │  │  ├── common
│  │  │  │  │  │ wpa_ctrl.h
│  │  │  │  ├── crypto
│  │  │  │  │  ├── crypto_mbedtls_alt.c
│  │  │  │  │  │ tls_mbedtls_alt.c
│  │  │  │  ├── drivers
│  │  │  │  │  ├── driver_zephyr.c
│  │  │  │  │  │ driver_zephyr.h
│  │  │  │  ├── utils
│  │  │  │  │  ├── includes.h
│  │  │  │  │  │ os_zephyr.c
│  │  │  ├── wpa_supplicant
│  │  │  │  ├── wpa_cli.c
│  │  │  │  ├── wpa_cli_cmds.c
│  │  │  │  ├── wpa_cli_zephyr.c
│  │  │  │  ├── wpa_cli_zephyr.h
│  │  │  │  ├── wpa_supplicant.c
│  │  │  │  │ wpa_supplicant_i.h
subsys
│  ├── net
│  │  ├── lib
│  │  │  ├── hostap_crypto
│  │  │  │  ├── CMakeLists.txt
│  │  │  │  ├── Kconfig
│  │  │  │  │ wpa3_psa.c
west.yml
zephyr
│  ├── .github
│  │  ├── test-spec.yml
│  │  ├── workflows
│  │  │  ├── commit-tags.yml
│  │  │  ├── compliance.yml
│  │  │  │ manifest-PR.yml
│  ├── Jenkinsfile
│  ├── Kconfig.zephyr
│  ├── MAINTAINERS.yml
│  ├── arch
│  │  ├── arm
│  │  │  ├── core
│  │  │  │  ├── cortex_m
│  │  │  │  │  ├── pm_s2ram.c
│  │  │  │  │  │ reset.S
│  │  │  │  ├── mpu
│  │  │  │  │  │ arm_mpu_regions.c
│  │  ├── common
│  │  │  │ CMakeLists.txt
│  │  ├── riscv
│  │  │  ├── core
│  │  │  │  │ irq_manage.c
│  ├── boards
│  │  ├── ezurio
│  │  │  ├── bl54l15_dvk
│  │  │  │  ├── Kconfig.defconfig
│  │  │  │  ├── bl54l15_dvk_nrf54l10_cpuapp_ns_defconfig
│  │  │  │  │ bl54l15_dvk_nrf54l15_cpuapp_ns_defconfig
│  │  │  ├── bl54l15u_dvk
│  │  │  │  ├── Kconfig.defconfig
│  │  │  │  │ bl54l15u_dvk_nrf54l15_cpuapp_ns_defconfig
│  │  ├── index.rst
│  │  ├── nordic
│  │  │  ├── nrf54h20dk
│  │  │  │  ├── Kconfig.defconfig
│  │  │  │  ├── Kconfig.sysbuild
│  │  │  │  ├── board.yml
│  │  │  │  ├── nrf54h20dk_nrf54h20-memory_map.dtsi
│  │  │  │  ├── nrf54h20dk_nrf54h20-pinctrl.dtsi
│  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.dts
│  │  │  │  ├── nrf54h20dk_nrf54h20_cpuppr_0_9_0.yaml
│  │  │  │  ├── nrf54h20dk_nrf54h20_cpuppr_xip_0_9_0.yaml
│  │  │  │  ├── nrf54h20dk_nrf54h20_cpurad.dts
│  │  │  │  ├── support
│  │  │  │  │  ├── nrf54h20_cpuapp.JLinkScript
│  │  │  │  │  │ nrf54h20_cpurad.JLinkScript
│  │  │  ├── nrf54l15dk
│  │  │  │  ├── Kconfig.defconfig
│  │  │  │  ├── nrf54l15dk_nrf54l10_cpuapp_ns_defconfig
│  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp_ns_defconfig
│  │  │  │  │ nrf54l15dk_nrf54l15_cpuflpr.dts
│  │  │  ├── nrf54lm20dk
│  │  │  │  ├── Kconfig
│  │  │  │  ├── Kconfig.defconfig
│  │  │  │  ├── Kconfig.nrf54lm20dk
│  │  │  │  ├── board.cmake
│  │  │  │  ├── board.yml
│  │  │  │  ├── nrf54lm20a_cpuapp_common.dtsi
│  │  │  │  ├── nrf54lm20dk_nrf54lm20a_cpuapp.dts
│  │  │  │  ├── nrf54lm20dk_nrf54lm20a_cpuapp_ns.dts
│  │  │  │  ├── nrf54lm20dk_nrf54lm20a_cpuapp_ns.yaml
│  │  │  │  │ nrf54lm20dk_nrf54lm20a_cpuapp_ns_defconfig
│  │  │  ├── nrf7002dk
│  │  │  │  ├── CMakeLists.txt
│  │  │  │  ├── Kconfig
│  │  │  │  ├── Kconfig.defconfig
│  │  │  │  ├── Kconfig.nrf7002dk
│  │  │  │  ├── board.cmake
│  │  │  │  ├── board.yml
│  │  │  │  ├── nrf7002dk_nrf5340_cpuapp_nrf7001_ns.dts
│  │  │  │  ├── nrf7002dk_nrf5340_cpuapp_nrf7001_ns.yaml
│  │  │  │  ├── nrf7002dk_nrf5340_cpuapp_nrf7001_ns_defconfig
│  │  │  │  ├── nrf7002dk_nrf5340_cpuapp_ns.dts
│  │  │  │  ├── nrf7002dk_nrf5340_cpuapp_ns.yaml
│  │  │  │  │ nrf7002dk_nrf5340_cpuapp_ns_defconfig
│  │  │  ├── nrf9131ek
│  │  │  │  │ Kconfig.defconfig
│  │  │  ├── nrf9280pdk
│  │  │  │  ├── nrf9280pdk_nrf9280-memory_map_iron.dtsi
│  │  │  │  ├── nrf9280pdk_nrf9280_cpuapp.dts
│  │  │  │  ├── nrf9280pdk_nrf9280_cpuapp_iron_0_2_0.overlay
│  │  │  │  ├── nrf9280pdk_nrf9280_cpuppr_xip_0_2_0.overlay
│  │  │  │  │ nrf9280pdk_nrf9280_cpurad.dts
│  │  │  ├── thingy53
│  │  │  │  ├── Kconfig.defconfig
│  │  │  │  ├── Kconfig.sysbuild
│  │  │  │  ├── pm_static_thingy53_nrf5340_cpuapp.yml
│  │  │  │  ├── pm_static_thingy53_nrf5340_cpuapp_ns.yml
│  │  │  │  │ thingy53_nrf5340_common.dtsi
│  │  ├── panasonic
│  │  │  ├── panb611evb
│  │  │  │  ├── Kconfig.defconfig
│  │  │  │  │ panb611evb_nrf54l15_cpuapp_ns_defconfig
│  │  ├── raytac
│  │  │  ├── an54l15q_db
│  │  │  │  ├── Kconfig.defconfig
│  │  │  │  │ raytac_an54l15q_db_nrf54l15_cpuapp_ns_defconfig
│  │  ├── seeed
│  │  │  ├── xiao_ble
│  │  │  │  │ pm_static.yml
│  │  │  ├── xiao_nrf54l15
│  │  │  │  │ Kconfig.defconfig
│  │  ├── we
│  │  │  ├── ophelia4ev
│  │  │  │  ├── Kconfig.defconfig
│  │  │  │  ├── ophelia4ev_nrf54l15_cpuapp.dts
│  │  │  │  ├── ophelia4ev_nrf54l15_cpuapp_defconfig
│  │  │  │  │ ophelia4ev_nrf54l15_cpuflpr.yaml
│  ├── cmake
│  │  ├── linker
│  │  │  ├── arcmwdt
│  │  │  │  │ linker_flags.cmake
│  │  │  ├── armlink
│  │  │  │  │ linker_flags.cmake
│  │  │  ├── iar
│  │  │  │  │ linker_flags.cmake
│  │  │  ├── ld
│  │  │  │  ├── linker_flags.cmake
│  │  │  │  │ target.cmake
│  │  │  ├── lld
│  │  │  │  │ target.cmake
│  │  │  ├── xt-ld
│  │  │  │  │ linker_flags.cmake
│  │  ├── modules
│  │  │  ├── extensions.cmake
│  │  │  ├── kconfig.cmake
│  │  │  │ kernel.cmake
│  ├── doc
│  │  ├── _extensions
│  │  │  ├── zephyr
│  │  │  │  ├── kconfig
│  │  │  │  │  │ __init__.py
│  │  ├── build
│  │  │  ├── kconfig
│  │  │  │  │ setting.rst
│  │  ├── connectivity
│  │  │  ├── bluetooth
│  │  │  │  ├── api
│  │  │  │  │  │ hci.txt
│  │  │  ├── networking
│  │  │  │  ├── api
│  │  │  │  │  ├── mqtt.rst
│  │  │  │  │  │ wifi.rst
│  │  ├── develop
│  │  │  ├── application
│  │  │  │  │ index.rst
│  │  ├── hardware
│  │  │  ├── peripherals
│  │  │  │  │ mspi.rst
│  │  ├── kconfig.rst
│  │  ├── releases
│  │  │  ├── migration-guide-4.3.rst
│  │  │  │ release-notes-4.3.rst
│  │  ├── services
│  │  │  ├── logging
│  │  │  │  │ cs_stm.rst
│  ├── drivers
│  │  ├── adc
│  │  │  │ adc_nrfx_saadc.c
│  │  ├── audio
│  │  │  │ dmic_nrfx_pdm.c
│  │  ├── bluetooth
│  │  │  ├── Kconfig
│  │  │  ├── hci
│  │  │  │  ├── Kconfig
│  │  │  │  │ Kconfig.esp32
│  │  ├── can
│  │  │  │ can_nrf.c
│  │  ├── comparator
│  │  │  ├── comparator_nrf_comp.c
│  │  │  │ comparator_nrf_lpcomp.c
│  │  ├── counter
│  │  │  │ counter_nrfx_timer.c
│  │  ├── debug
│  │  │  ├── CMakeLists.txt
│  │  │  ├── Kconfig
│  │  │  ├── Kconfig.nrf
│  │  │  ├── coresight_arm.h
│  │  │  ├── debug_coresight_nrf.c
│  │  │  │ debug_nrf_etr.c
│  │  ├── disk
│  │  │  │ flashdisk.c
│  │  ├── entropy
│  │  │  │ Kconfig.psa_crypto
│  │  ├── flash
│  │  │  ├── Kconfig.nrf_rram
│  │  │  ├── flash_mspi_nor.c
│  │  │  ├── flash_mspi_nor.h
│  │  │  ├── soc_flash_nrf.c
│  │  │  │ soc_flash_nrf_rram.c
│  │  ├── gpio
│  │  │  │ gpio_nrfx.c
│  │  ├── i2c
│  │  │  ├── i2c_nrfx_twim.c
│  │  │  ├── i2c_nrfx_twim_common.h
│  │  │  ├── i2c_nrfx_twim_rtio.c
│  │  │  │ i2c_nrfx_twis.c
│  │  ├── i2s
│  │  │  │ i2s_nrf_tdm.c
│  │  ├── ieee802154
│  │  │  │ ieee802154_nrf5.c
│  │  ├── misc
│  │  │  ├── CMakeLists.txt
│  │  │  ├── Kconfig
│  │  │  ├── coresight
│  │  │  │  │ CMakeLists.txt
│  │  │  ├── nordic_vpr_launcher
│  │  │  │  │ Kconfig
│  │  ├── modem
│  │  │  ├── CMakeLists.txt
│  │  │  ├── Kconfig.at_shell
│  │  │  ├── modem_at_shell.c
│  │  │  ├── modem_at_user_pipe.c
│  │  │  │ modem_cellular.c
│  │  ├── mspi
│  │  │  ├── Kconfig
│  │  │  ├── Kconfig.dw
│  │  │  ├── mspi_dw.c
│  │  │  ├── mspi_dw.h
│  │  │  │ mspi_dw_vendor_specific.h
│  │  ├── pinctrl
│  │  │  │ pinctrl_nrf.c
│  │  ├── power_domain
│  │  │  ├── CMakeLists.txt
│  │  │  ├── Kconfig
│  │  │  ├── Kconfig.nrf_gpio_pad_group
│  │  │  ├── Kconfig.nrfs_gdpwr
│  │  │  ├── Kconfig.nrfs_swext
│  │  │  ├── Kconfig.silabs_siwx91x
│  │  │  ├── power_domain_nrf_gpio_pad_group.c
│  │  │  ├── power_domain_nrfs_swext.c
│  │  │  │ power_domain_silabs_siwx91x.c
│  │  ├── pwm
│  │  │  │ pwm_nrfx.c
│  │  ├── sensor
│  │  │  ├── nordic
│  │  │  │  ├── qdec_nrfx
│  │  │  │  │  │ qdec_nrfx.c
│  │  ├── serial
│  │  │  ├── Kconfig.nrfx
│  │  │  ├── Kconfig.nrfx_uart_instance
│  │  │  │ uart_nrfx_uarte.c
│  │  ├── spi
│  │  │  ├── spi_dw.c
│  │  │  ├── spi_nrfx_spim.c
│  │  │  │ spi_nrfx_spis.c
│  │  ├── timer
│  │  │  │ nrf_grtc_timer.c
│  │  ├── usb
│  │  │  ├── udc
│  │  │  │  ├── Kconfig.dwc2
│  │  │  │  ├── udc_dwc2.c
│  │  │  │  │ udc_dwc2_vendor_quirks.h
│  │  ├── wifi
│  │  │  ├── nrf_wifi
│  │  │  │  ├── Kconfig.nrfwifi
│  │  │  │  ├── inc
│  │  │  │  │  ├── fmac_main.h
│  │  │  │  │  │ wpa_supp_if.h
│  │  │  │  ├── off_raw_tx
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ off_raw_tx_api.c
│  │  │  │  ├── src
│  │  │  │  │  ├── debug_shell.c
│  │  │  │  │  ├── fmac_main.c
│  │  │  │  │  ├── fw_load.c
│  │  │  │  │  ├── net_if.c
│  │  │  │  │  ├── wifi_mgmt.c
│  │  │  │  │  ├── wifi_util.c
│  │  │  │  │  ├── wifi_util.h
│  │  │  │  │  │ wpa_supp_if.c
│  ├── dts
│  │  ├── arm
│  │  │  ├── nordic
│  │  │  │  ├── nrf51822.dtsi
│  │  │  │  ├── nrf51822_qfaa.dtsi
│  │  │  │  ├── nrf51822_qfab.dtsi
│  │  │  │  ├── nrf51822_qfac.dtsi
│  │  │  │  ├── nrf52805.dtsi
│  │  │  │  ├── nrf52805_caaa.dtsi
│  │  │  │  ├── nrf52810.dtsi
│  │  │  │  ├── nrf52810_qfaa.dtsi
│  │  │  │  ├── nrf52811.dtsi
│  │  │  │  ├── nrf52811_qfaa.dtsi
│  │  │  │  ├── nrf52820.dtsi
│  │  │  │  ├── nrf52820_qdaa.dtsi
│  │  │  │  ├── nrf52832.dtsi
│  │  │  │  ├── nrf52832_ciaa.dtsi
│  │  │  │  ├── nrf52832_qfaa.dtsi
│  │  │  │  ├── nrf52832_qfab.dtsi
│  │  │  │  ├── nrf52833.dtsi
│  │  │  │  ├── nrf52833_qdaa.dtsi
│  │  │  │  ├── nrf52833_qiaa.dtsi
│  │  │  │  ├── nrf52840.dtsi
│  │  │  │  ├── nrf52840_qfaa.dtsi
│  │  │  │  ├── nrf52840_qiaa.dtsi
│  │  │  │  ├── nrf5340_cpuapp.dtsi
│  │  │  │  ├── nrf5340_cpuapp_peripherals.dtsi
│  │  │  │  ├── nrf5340_cpuapp_qkaa.dtsi
│  │  │  │  ├── nrf5340_cpuappns_qkaa.dtsi
│  │  │  │  ├── nrf5340_cpunet.dtsi
│  │  │  │  ├── nrf5340_cpunet_qkaa.dtsi
│  │  │  │  ├── nrf54h20_cpuapp.dtsi
│  │  │  │  ├── nrf54h20_cpurad.dtsi
│  │  │  │  ├── nrf54l_05_10_15_cpuapp.dtsi
│  │  │  │  ├── nrf54lm20a_enga_cpuapp.dtsi
│  │  │  │  ├── nrf91.dtsi
│  │  │  │  ├── nrf9131_laca.dtsi
│  │  │  │  ├── nrf9131ns_laca.dtsi
│  │  │  │  ├── nrf9151_laca.dtsi
│  │  │  │  ├── nrf9151ns_laca.dtsi
│  │  │  │  ├── nrf9160_sica.dtsi
│  │  │  │  ├── nrf9160ns_sica.dtsi
│  │  │  │  ├── nrf9161_laca.dtsi
│  │  │  │  ├── nrf9161ns_laca.dtsi
│  │  │  │  ├── nrf91_peripherals.dtsi
│  │  │  │  ├── nrf9280_cpuapp.dtsi
│  │  │  │  │ nrf9280_cpurad.dtsi
│  │  │  ├── silabs
│  │  │  │  │ siwg917.dtsi
│  │  ├── bindings
│  │  │  ├── arm
│  │  │  │  │ nordic,nrf-tddconf.yaml
│  │  │  ├── comparator
│  │  │  │  ├── nordic,nrf-comp.yaml
│  │  │  │  │ nordic,nrf-lpcomp.yaml
│  │  │  ├── debug
│  │  │  │  ├── nordic,coresight-nrf.yaml
│  │  │  │  │ nordic,nrf-tbm.yaml
│  │  │  ├── gpio
│  │  │  │  │ nordic,nrf-gpio-pad-group.yaml
│  │  │  ├── modem
│  │  │  │  ├── nordic,nrf91-slm.yaml
│  │  │  │  ├── quectel,bg95.yaml
│  │  │  │  ├── quectel,bg9x.yaml
│  │  │  │  ├── quectel,eg25-g.yaml
│  │  │  │  ├── quectel,eg800q.yaml
│  │  │  │  ├── simcom,a76xx.yaml
│  │  │  │  ├── simcom,sim7080.yaml
│  │  │  │  ├── sqn,gm02s.yaml
│  │  │  │  ├── swir,hl7800.yaml
│  │  │  │  ├── telit,me310g1.yaml
│  │  │  │  ├── telit,me910g1.yaml
│  │  │  │  ├── u-blox,lara-r6.yaml
│  │  │  │  ├── u-blox,sara-r4.yaml
│  │  │  │  ├── u-blox,sara-r5.yaml
│  │  │  │  ├── wnc,m14a2a.yaml
│  │  │  │  │ zephyr,cellular-modem-device.yaml
│  │  │  ├── mspi
│  │  │  │  ├── mspi-controller.yaml
│  │  │  │  ├── nordic,nrf-exmif.yaml
│  │  │  │  ├── nordic,nrf-qspi-v2.yaml
│  │  │  │  │ snps,designware-ssi.yaml
│  │  │  ├── power-domain
│  │  │  │  ├── nordic,nrfs-swext.yaml
│  │  │  │  │ silabs,siwx91x-power-domain.yaml
│  │  │  ├── serial
│  │  │  │  │ nordic,nrf-uarte.yaml
│  │  │  ├── spi
│  │  │  │  │ nordic,nrf-exmif-spi.yaml
│  │  ├── vendor
│  │  │  ├── nordic
│  │  │  │  ├── nrf54h20.dtsi
│  │  │  │  ├── nrf54l20.dtsi
│  │  │  │  ├── nrf54l_05_10_15.dtsi
│  │  │  │  ├── nrf54lm20a.dtsi
│  │  │  │  ├── nrf54lm20a_ns_partition.dtsi
│  │  │  │  ├── nrf54lm20a_partition.dtsi
│  │  │  │  │ nrf9280.dtsi
│  ├── include
│  │  ├── zephyr
│  │  │  ├── arch
│  │  │  │  ├── arm
│  │  │  │  │  ├── cortex_m
│  │  │  │  │  │  ├── scripts
│  │  │  │  │  │  │  │ linker.ld
│  │  │  │  ├── common
│  │  │  │  │  │ pm_s2ram.h
│  │  │  │  ├── riscv
│  │  │  │  │  │ irq.h
│  │  │  ├── bluetooth
│  │  │  │  ├── bluetooth.h
│  │  │  │  │ hci_vs.h
│  │  │  ├── devicetree
│  │  │  │  │ fixed-partitions.h
│  │  │  ├── drivers
│  │  │  │  ├── clock_control
│  │  │  │  │  │ nrf_clock_control.h
│  │  │  │  ├── comparator
│  │  │  │  │  ├── nrf_comp.h
│  │  │  │  │  │ nrf_lpcomp.h
│  │  │  │  ├── debug
│  │  │  │  │  ├── debug_nrf_etr.h
│  │  │  │  │  │ stmesp.h
│  │  │  │  │ mspi.h
│  │  │  ├── dt-bindings
│  │  │  │  ├── comparator
│  │  │  │  │  │ nrf-comp.h
│  │  │  │  ├── misc
│  │  │  │  │  │ nordic-tddconf.h
│  │  │  │  ├── pinctrl
│  │  │  │  │  │ nrf-pinctrl.h
│  │  │  ├── fs
│  │  │  │  │ zms.h
│  │  │  ├── logging
│  │  │  │  │ log_frontend_stmesp.h
│  │  │  ├── modem
│  │  │  │  ├── at
│  │  │  │  │  │ user_pipe.h
│  │  │  │  ├── backend
│  │  │  │  │  ├── uart.h
│  │  │  │  │  │ uart_slm.h
│  │  │  │  ├── cmux.h
│  │  │  │  │ ppp.h
│  │  │  ├── net
│  │  │  │  ├── mqtt.h
│  │  │  │  ├── socket.h
│  │  │  │  ├── socket_ncs.h
│  │  │  │  │ wifi_mgmt.h
│  │  │  ├── platform
│  │  │  │  │ hooks.h
│  │  │  ├── storage
│  │  │  │  │ flash_map.h
│  │  │  ├── usb
│  │  │  │  ├── class
│  │  │  │  │  │ usbd_hid.h
│  ├── kernel
│  │  ├── Kconfig
│  │  ├── Kconfig.init
│  │  │ banner.c
│  ├── lib
│  │  ├── heap
│  │  │  │ Kconfig
│  │  ├── libc
│  │  │  ├── common
│  │  │  │  ├── source
│  │  │  │  │  ├── stdlib
│  │  │  │  │  │  │ malloc.c
│  │  ├── os
│  │  │  ├── clock.c
│  │  │  ├── zvfs
│  │  │  │  │ Kconfig
│  ├── modules
│  │  ├── hal_nordic
│  │  │  ├── CMakeLists.txt
│  │  │  ├── Kconfig
│  │  │  ├── nrf_802154
│  │  │  │  │ CMakeLists.txt
│  │  │  ├── nrfx
│  │  │  │  ├── CMakeLists.txt
│  │  │  │  ├── Kconfig
│  │  │  │  │ nrfx_config_reserved_resources_ncs.h
│  │  ├── hostap
│  │  │  ├── CMakeLists.txt
│  │  │  ├── Kconfig
│  │  │  ├── src
│  │  │  │  ├── supp_api.c
│  │  │  │  ├── supp_api.h
│  │  │  │  ├── supp_events.c
│  │  │  │  ├── supp_events.h
│  │  │  │  ├── supp_main.c
│  │  │  │  ├── supp_main.h
│  │  │  │  │ wpa_cli.c
│  │  ├── mbedtls
│  │  │  ├── CMakeLists.txt
│  │  │  ├── Kconfig
│  │  │  ├── Kconfig.mbedtls
│  │  │  ├── Kconfig.psa.auto
│  │  │  │ Kconfig.psa.logic
│  │  ├── openthread
│  │  │  │ Kconfig
│  │  ├── trusted-firmware-m
│  │  │  ├── Kconfig.tfm
│  │  │  ├── Kconfig.tfm.crypto_modules
│  │  │  ├── nordic
│  │  │  │  ├── nrf54lm20a_cpuapp
│  │  │  │  │  ├── CMakeLists.txt
│  │  │  │  │  ├── config.cmake
│  │  │  │  │  ├── cpuarch.cmake
│  │  │  │  │  ├── ns
│  │  │  │  │  │  │ cpuarch_ns.cmake
│  │  ├── uoscore-uedhoc
│  │  │  │ Kconfig
│  ├── samples
│  │  ├── basic
│  │  │  ├── blinky
│  │  │  │  ├── boards
│  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuppr.overlay
│  │  │  │  │  │ nrf54l15dk_nrf54l15_cpuapp_hpf_gpio.overlay
│  │  ├── bluetooth
│  │  │  ├── bap_broadcast_sink
│  │  │  │  ├── sample.yaml
│  │  │  │  │ sysbuild.cmake
│  │  │  ├── bap_broadcast_source
│  │  │  │  ├── sample.yaml
│  │  │  │  │ sysbuild.cmake
│  │  │  ├── bap_unicast_client
│  │  │  │  ├── sample.yaml
│  │  │  │  │ sysbuild.cmake
│  │  │  ├── bap_unicast_server
│  │  │  │  ├── sample.yaml
│  │  │  │  │ sysbuild.cmake
│  │  │  ├── beacon
│  │  │  │  │ sample.yaml
│  │  │  ├── cap_acceptor
│  │  │  │  ├── sample.yaml
│  │  │  │  │ sysbuild.cmake
│  │  │  ├── cap_initiator
│  │  │  │  ├── sample.yaml
│  │  │  │  │ sysbuild.cmake
│  │  │  ├── direction_finding_central
│  │  │  │  │ sample.yaml
│  │  │  ├── direction_finding_connectionless_rx
│  │  │  │  │ sample.yaml
│  │  │  ├── direction_finding_connectionless_tx
│  │  │  │  │ sample.yaml
│  │  │  ├── direction_finding_peripheral
│  │  │  │  │ sample.yaml
│  │  │  ├── hci_ipc
│  │  │  │  ├── boards
│  │  │  │  │  │ nrf54h20dk_nrf54h20_cpurad.conf
│  │  │  │  ├── nrf5340_cpunet_bis-bt_ll_sw_split.conf
│  │  │  │  ├── nrf5340_cpunet_bt_mesh-bt_ll_sw_split.conf
│  │  │  │  ├── nrf5340_cpunet_cis-bt_ll_sw_split.conf
│  │  │  │  ├── nrf5340_cpunet_df-bt_ll_sw_split.conf
│  │  │  │  ├── nrf5340_cpunet_iso-bt_ll_sw_split.conf
│  │  │  │  ├── nrf5340_cpunet_iso_broadcast-bt_ll_sw_split.conf
│  │  │  │  ├── nrf5340_cpunet_iso_central-bt_ll_sw_split.conf
│  │  │  │  ├── nrf5340_cpunet_iso_peripheral-bt_ll_sw_split.conf
│  │  │  │  ├── nrf5340_cpunet_iso_receive-bt_ll_sw_split.conf
│  │  │  │  ├── nrf54h20_cpurad-bt_ll_softdevice.conf
│  │  │  │  ├── sample.yaml
│  │  │  │  ├── src
│  │  │  │  │  │ main.c
│  │  │  ├── hci_pwr_ctrl
│  │  │  │  ├── sysbuild
│  │  │  │  │  │ hci_rpmsg.conf
│  │  │  ├── hci_uart
│  │  │  │  ├── overlay-all-bt_ll_sw_split.conf
│  │  │  │  │ sample.yaml
│  │  │  ├── hci_vs_scan_req
│  │  │  │  │ sample.yaml
│  │  │  ├── iso_central
│  │  │  │  │ sample.yaml
│  │  │  ├── mesh
│  │  │  │  ├── boards
│  │  │  │  │  │ qemu_x86.conf
│  │  │  │  │ prj.conf
│  │  │  ├── mesh_demo
│  │  │  │  ├── boards
│  │  │  │  │  │ qemu_x86.conf
│  │  │  │  │ prj.conf
│  │  │  ├── mesh_provisioner
│  │  │  │  ├── boards
│  │  │  │  │  │ qemu_x86.conf
│  │  │  │  │ prj.conf
│  │  │  ├── pbp_public_broadcast_sink
│  │  │  │  ├── sample.yaml
│  │  │  │  │ sysbuild.cmake
│  │  │  ├── pbp_public_broadcast_source
│  │  │  │  ├── sample.yaml
│  │  │  │  │ sysbuild.cmake
│  │  ├── boards
│  │  │  ├── nordic
│  │  │  │  ├── clock_control
│  │  │  │  │  ├── configs
│  │  │  │  │  │  ├── cpuapp_hsfll.overlay
│  │  │  │  │  │  ├── fll16m.overlay
│  │  │  │  │  │  ├── global_hsfll.overlay
│  │  │  │  │  │  ├── lfclk.overlay
│  │  │  │  │  │  │ uart135.overlay
│  │  │  │  ├── coresight_stm
│  │  │  │  │  ├── prj.conf
│  │  │  │  │  ├── pytest
│  │  │  │  │  │  │ test_stm.py
│  │  │  │  │  │ sample.yaml
│  │  │  │  ├── mesh
│  │  │  │  │  ├── onoff-app
│  │  │  │  │  │  │ prj.conf
│  │  │  │  │  ├── onoff_level_lighting_vnd_app
│  │  │  │  │  │  │ prj.conf
│  │  │  │  ├── nrf53_sync_rtc
│  │  │  │  │  │ sysbuild.conf
│  │  │  │  ├── nrf_ironside
│  │  │  │  │  ├── update
│  │  │  │  │  │  ├── src
│  │  │  │  │  │  │  │ main.c
│  │  │  │  ├── spis_wakeup
│  │  │  │  │  ├── boards
│  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  ├── prj.conf
│  │  │  │  │  ├── wakeup_trigger
│  │  │  │  │  │  │ prj.conf
│  │  │  │  ├── system_off
│  │  │  │  │  ├── boards
│  │  │  │  │  │  │ nrf54l15dk_nrf54l15_cpuapp_comparator.overlay
│  │  │  ├── st
│  │  │  │  ├── power_mgmt
│  │  │  │  │  ├── suspend_to_ram
│  │  │  │  │  │  │ prj.conf
│  │  ├── drivers
│  │  │  ├── adc
│  │  │  │  ├── adc_dt
│  │  │  │  │  │ sample.yaml
│  │  │  │  ├── adc_sequence
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_common.dtsi
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuppr.overlay
│  │  │  │  │  ├── sample.yaml
│  │  │  │  │  ├── sysbuild
│  │  │  │  │  │  ├── vpr_launcher
│  │  │  │  │  │  │  ├── boards
│  │  │  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  │  │  │ prj.conf
│  │  │  ├── i2c
│  │  │  │  ├── rtio_loopback
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuppr.conf
│  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuppr.overlay
│  │  │  │  │  ├── sample.yaml
│  │  │  │  │  ├── sysbuild
│  │  │  │  │  │  ├── vpr_launcher
│  │  │  │  │  │  │  ├── boards
│  │  │  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  │  │  │ prj.conf
│  │  │  ├── jesd216
│  │  │  │  │ sample.yaml
│  │  │  ├── mbox
│  │  │  │  │ sysbuild.conf
│  │  │  ├── spi_bitbang
│  │  │  │  ├── boards
│  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuppr.overlay
│  │  │  │  │ sample.yaml
│  │  │  ├── watchdog
│  │  │  │  │ sample.yaml
│  │  ├── net
│  │  │  ├── dns_resolve
│  │  │  │  │ Kconfig.sysbuild
│  │  │  ├── ipv4_autoconf
│  │  │  │  │ Kconfig.sysbuild
│  │  │  ├── lwm2m_client
│  │  │  │  ├── Kconfig.sysbuild
│  │  │  │  │ overlay-nrf91x.conf
│  │  │  ├── mdns_responder
│  │  │  │  │ Kconfig.sysbuild
│  │  │  ├── mqtt_publisher
│  │  │  │  │ Kconfig.sysbuild
│  │  │  ├── mqtt_sn_publisher
│  │  │  │  │ Kconfig.sysbuild
│  │  │  ├── sockets
│  │  │  │  ├── big_http_download
│  │  │  │  │  │ prj.conf
│  │  │  │  ├── coap_server
│  │  │  │  │  │ Kconfig.sysbuild
│  │  │  │  ├── echo_async
│  │  │  │  │  │ Kconfig.sysbuild
│  │  │  │  ├── echo_client
│  │  │  │  │  │ Kconfig.sysbuild
│  │  │  │  ├── echo_server
│  │  │  │  │  │ Kconfig.sysbuild
│  │  │  │  ├── http_get
│  │  │  │  │  │ Kconfig.sysbuild
│  │  │  │  ├── http_server
│  │  │  │  │  │ Kconfig
│  │  │  │  ├── sntp_client
│  │  │  │  │  │ Kconfig.sysbuild
│  │  │  ├── syslog_net
│  │  │  │  │ Kconfig.sysbuild
│  │  │  ├── telnet
│  │  │  │  │ Kconfig.sysbuild
│  │  │  ├── wifi
│  │  │  │  ├── Kconfig.sysbuild
│  │  │  │  ├── shell
│  │  │  │  │  │ sample.yaml
│  │  ├── subsys
│  │  │  ├── ipc
│  │  │  │  ├── ipc_service
│  │  │  │  │  ├── icmsg
│  │  │  │  │  │  │ sysbuild.conf
│  │  │  │  │  ├── multi_endpoint
│  │  │  │  │  │  │ sysbuild.conf
│  │  │  │  │  ├── static_vrings
│  │  │  │  │  │  │ sysbuild.conf
│  │  │  ├── logging
│  │  │  │  ├── multidomain
│  │  │  │  │  │ sysbuild.conf
│  │  │  ├── mgmt
│  │  │  │  ├── mcumgr
│  │  │  │  │  ├── smp_svr
│  │  │  │  │  │  ├── sysbuild
│  │  │  │  │  │  │  │ hci_rpmsg.conf
│  │  │  │  ├── updatehub
│  │  │  │  │  │ overlay-psa.conf
│  │  │  ├── usb
│  │  │  │  ├── dfu
│  │  │  │  │  │ sysbuild.conf
│  │  │  │  ├── hid-keyboard
│  │  │  │  │  ├── sample.yaml
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  ├── sysbuild
│  │  │  ├── hello_world
│  │  │  │  │ sysbuild.cmake
│  │  ├── tfm_integration
│  │  │  ├── config_build
│  │  │  │  │ sample.yaml
│  │  │  ├── psa_crypto
│  │  │  │  │ sample.yaml
│  │  │  ├── tfm_ipc
│  │  │  │  │ sample.yaml
│  ├── scripts
│  │  ├── ci
│  │  │  │ check_compliance.py
│  │  ├── dts
│  │  │  │ gen_dts_cmake.py
│  │  ├── gitlint
│  │  │  │ zephyr_commit_rules.py
│  │  ├── pylib
│  │  │  ├── twister
│  │  │  │  ├── twisterlib
│  │  │  │  │  │ hardwaremap.py
│  │  ├── quarantine.yaml
│  │  ├── requirements-actions.in
│  │  ├── requirements-actions.txt
│  │  ├── requirements-build-test.txt
│  │  ├── requirements-compliance.txt
│  │  ├── requirements-extras.txt
│  │  ├── requirements-run-test.txt
│  │  ├── west_commands
│  │  │  ├── build.py
│  │  │  ├── runners
│  │  │  │  ├── nrf_common.py
│  │  │  │  │ nrfutil.py
│  │  │ zephyr_module.py
│  ├── share
│  │  ├── sysbuild
│  │  │  │ Kconfig
│  ├── snippets
│  │  ├── bt-ll-sw-split
│  │  │  │ bt-ll-sw-split.overlay
│  │  ├── nordic
│  │  │  ├── nordic-log-stm-dict
│  │  │  │  ├── boards
│  │  │  │  │  ├── nrf54h20_cpuapp.overlay
│  │  │  │  │  │ nrf54h20_cpurad.overlay
│  │  │  │  ├── log_stm_dict.conf
│  │  │  │  │ snippet.yml
│  │  │  ├── nordic-log-stm-tpiu-dict
│  │  │  │  ├── README.rst
│  │  │  │  ├── boards
│  │  │  │  │  │ nrf54h20_cpuapp.overlay
│  │  │  │  ├── log_stm_dict.conf
│  │  │  │  │ snippet.yml
│  │  │  ├── nordic-log-stm
│  │  │  │  ├── boards
│  │  │  │  │  │ nrf54h20_cpuapp.overlay
│  │  │  │  ├── log_stm.conf
│  │  │  │  │ snippet.yml
│  ├── soc
│  │  ├── nordic
│  │  │  ├── Kconfig
│  │  │  ├── common
│  │  │  │  ├── Kconfig
│  │  │  │  ├── Kconfig.defconfig
│  │  │  │  ├── Kconfig.peripherals
│  │  │  │  ├── dmm.c
│  │  │  │  ├── dmm.h
│  │  │  │  ├── uicr
│  │  │  │  │  ├── CMakeLists.txt
│  │  │  │  │  ├── Kconfig
│  │  │  │  │  ├── gen_periphconf_entries.py
│  │  │  │  │  ├── gen_uicr.py
│  │  │  │  │  ├── gen_uicr
│  │  │  │  │  │  ├── CMakeLists.txt
│  │  │  │  │  │  │ Kconfig
│  │  │  │  │  ├── periphconf
│  │  │  │  │  │  ├── __init__.py
│  │  │  │  │  │  │ builder.py
│  │  │  │  │  │ sysbuild.cmake
│  │  │  ├── ironside
│  │  │  │  ├── Kconfig
│  │  │  │  ├── include
│  │  │  │  │  ├── nrf_ironside
│  │  │  │  │  │  ├── boot_report.h
│  │  │  │  │  │  │ update.h
│  │  │  │  │ update.c
│  │  │  ├── nrf53
│  │  │  │  │ Kconfig
│  │  │  ├── nrf54h
│  │  │  │  ├── CMakeLists.txt
│  │  │  │  ├── Kconfig
│  │  │  │  ├── Kconfig.defconfig
│  │  │  │  ├── Kconfig.defconfig.nrf54h20_cpuapp
│  │  │  │  ├── Kconfig.defconfig.nrf54h20_cpurad
│  │  │  │  ├── pm_s2ram.c
│  │  │  │  ├── pm_s2ram.h
│  │  │  │  ├── power.c
│  │  │  │  ├── soc.c
│  │  │  │  │ soc.h
│  │  │  ├── nrf54l
│  │  │  │  ├── CMakeLists.txt
│  │  │  │  ├── Kconfig
│  │  │  │  ├── Kconfig.defconfig
│  │  │  │  │ kmu_push_area_section.ld
│  │  │  ├── nrf91
│  │  │  │  │ Kconfig
│  ├── submanifests
│  │  │ optional.yaml
│  ├── subsys
│  │  ├── bluetooth
│  │  │  ├── common
│  │  │  │  │ Kconfig
│  │  │  ├── controller
│  │  │  │  ├── Kconfig
│  │  │  │  ├── Kconfig.ll_sw_split
│  │  │  │  ├── hal
│  │  │  │  │  │ debug.h
│  │  │  │  ├── hci
│  │  │  │  │  ├── hci.c
│  │  │  │  │  │ hci_driver.c
│  │  │  │  ├── include
│  │  │  │  │  ├── ll.h
│  │  │  │  │  ├── ll_feat.h
│  │  │  │  │  │ ll_settings.h
│  │  │  │  ├── ll_sw
│  │  │  │  │  ├── isoal.c
│  │  │  │  │  ├── lll_chan.c
│  │  │  │  │  ├── lll_common.c
│  │  │  │  │  ├── lll_scan.h
│  │  │  │  │  ├── nordic
│  │  │  │  │  │  ├── hal
│  │  │  │  │  │  │  ├── nrf5
│  │  │  │  │  │  │  │  ├── cntr.c
│  │  │  │  │  │  │  │  ├── ecb.c
│  │  │  │  │  │  │  │  ├── mayfly.c
│  │  │  │  │  │  │  │  ├── radio
│  │  │  │  │  │  │  │  │  ├── radio.c
│  │  │  │  │  │  │  │  │  ├── radio_nrf5.h
│  │  │  │  │  │  │  │  │  ├── radio_nrf54lx.h
│  │  │  │  │  │  │  │  │  ├── radio_nrf5_dppi.h
│  │  │  │  │  │  │  │  │  ├── radio_nrf5_dppi_resources.h
│  │  │  │  │  │  │  │  │  │ radio_sim_nrf54l.h
│  │  │  │  │  │  │  │  │ ticker.c
│  │  │  │  │  │  ├── lll
│  │  │  │  │  │  │  ├── lll.c
│  │  │  │  │  │  │  ├── lll_adv.c
│  │  │  │  │  │  │  ├── lll_adv_aux.c
│  │  │  │  │  │  │  ├── lll_adv_iso.c
│  │  │  │  │  │  │  ├── lll_adv_sync.c
│  │  │  │  │  │  │  ├── lll_central.c
│  │  │  │  │  │  │  ├── lll_central_iso.c
│  │  │  │  │  │  │  ├── lll_conn.c
│  │  │  │  │  │  │  ├── lll_df.c
│  │  │  │  │  │  │  ├── lll_peripheral.c
│  │  │  │  │  │  │  ├── lll_peripheral_iso.c
│  │  │  │  │  │  │  ├── lll_scan.c
│  │  │  │  │  │  │  ├── lll_scan_aux.c
│  │  │  │  │  │  │  ├── lll_sync.c
│  │  │  │  │  │  │  ├── lll_sync_iso.c
│  │  │  │  │  │  │  │ lll_test.c
│  │  │  │  │  ├── ull.c
│  │  │  │  │  ├── ull_adv.c
│  │  │  │  │  ├── ull_adv_aux.c
│  │  │  │  │  ├── ull_adv_iso.c
│  │  │  │  │  ├── ull_adv_sync.c
│  │  │  │  │  ├── ull_central.c
│  │  │  │  │  ├── ull_central_iso.c
│  │  │  │  │  ├── ull_conn.c
│  │  │  │  │  ├── ull_conn_iso.c
│  │  │  │  │  ├── ull_df.c
│  │  │  │  │  ├── ull_filter.c
│  │  │  │  │  ├── ull_iso.c
│  │  │  │  │  ├── ull_llcp.c
│  │  │  │  │  ├── ull_llcp_cc.c
│  │  │  │  │  ├── ull_llcp_chmu.c
│  │  │  │  │  ├── ull_llcp_common.c
│  │  │  │  │  ├── ull_llcp_conn_upd.c
│  │  │  │  │  ├── ull_llcp_enc.c
│  │  │  │  │  ├── ull_llcp_local.c
│  │  │  │  │  ├── ull_llcp_past.c
│  │  │  │  │  ├── ull_llcp_phy.c
│  │  │  │  │  ├── ull_llcp_remote.c
│  │  │  │  │  ├── ull_peripheral.c
│  │  │  │  │  ├── ull_peripheral_iso.c
│  │  │  │  │  ├── ull_scan.c
│  │  │  │  │  ├── ull_scan_aux.c
│  │  │  │  │  ├── ull_sched.c
│  │  │  │  │  ├── ull_sync.c
│  │  │  │  │  │ ull_sync_iso.c
│  │  │  │  ├── ticker
│  │  │  │  │  │ ticker.c
│  │  │  ├── crypto
│  │  │  │  │ Kconfig
│  │  │  ├── host
│  │  │  │  ├── Kconfig
│  │  │  │  ├── Kconfig.gatt
│  │  │  │  ├── Kconfig.l2cap
│  │  │  │  ├── adv.c
│  │  │  │  ├── adv.h
│  │  │  │  ├── att.c
│  │  │  │  ├── conn.c
│  │  │  │  ├── hci_core.h
│  │  │  │  ├── id.c
│  │  │  │  ├── id.h
│  │  │  │  ├── keys.c
│  │  │  │  ├── keys.h
│  │  │  │  ├── l2cap.c
│  │  │  │  │ smp.c
│  │  │  ├── mesh
│  │  │  │  ├── Kconfig
│  │  │  │  ├── adv_ext.c
│  │  │  │  │ blob_io_flash.c
│  │  ├── dfu
│  │  │  ├── boot
│  │  │  │  ├── mcuboot.c
│  │  │  │  │ mcuboot_shell.c
│  │  │  ├── img_util
│  │  │  │  │ flash_img.c
│  │  ├── fs
│  │  │  ├── littlefs_fs.c
│  │  │  ├── nvs
│  │  │  │  ├── Kconfig
│  │  │  │  │ nvs.c
│  │  │  ├── zms
│  │  │  │  ├── Kconfig
│  │  │  │  ├── zms.c
│  │  │  │  │ zms_priv.h
│  │  ├── ipc
│  │  │  ├── ipc_service
│  │  │  │  ├── lib
│  │  │  │  │  │ Kconfig.icmsg
│  │  │  ├── rpmsg_service
│  │  │  │  │ rpmsg_backend.h
│  │  ├── jwt
│  │  │  │ Kconfig
│  │  ├── logging
│  │  │  ├── frontends
│  │  │  │  ├── Kconfig
│  │  │  │  │ log_frontend_stmesp.c
│  │  ├── mgmt
│  │  │  ├── mcumgr
│  │  │  │  ├── CMakeLists.txt
│  │  │  │  ├── Kconfig
│  │  │  │  ├── bootutil_hooks
│  │  │  │  │  │ nrf53_hooks.c
│  │  │  │  ├── grp
│  │  │  │  │  ├── img_mgmt
│  │  │  │  │  │  ├── Kconfig
│  │  │  │  │  │  ├── src
│  │  │  │  │  │  │  ├── img_mgmt.c
│  │  │  │  │  │  │  │ img_mgmt_state.c
│  │  ├── modem
│  │  │  ├── CMakeLists.txt
│  │  │  ├── Kconfig
│  │  │  ├── backends
│  │  │  │  ├── CMakeLists.txt
│  │  │  │  ├── Kconfig
│  │  │  │  ├── modem_backend_uart.c
│  │  │  │  ├── modem_backend_uart_async.c
│  │  │  │  ├── modem_backend_uart_async_hwfc.c
│  │  │  │  ├── modem_backend_uart_isr.c
│  │  │  │  │ modem_backend_uart_slm.c
│  │  │  ├── modem_chat.c
│  │  │  ├── modem_cmux.c
│  │  │  ├── modem_pipe.c
│  │  │  ├── modem_ppp.c
│  │  │  ├── modem_ubx.c
│  │  │  ├── modem_workqueue.c
│  │  │  │ modem_workqueue.h
│  │  ├── net
│  │  │  ├── ip
│  │  │  │  │ tcp.c
│  │  │  ├── l2
│  │  │  │  ├── ppp
│  │  │  │  │  ├── fsm.c
│  │  │  │  │  │ lcp.c
│  │  │  │  ├── wifi
│  │  │  │  │  ├── CMakeLists.txt
│  │  │  │  │  ├── wifi_mgmt.c
│  │  │  │  │  │ wifi_shell.c
│  │  │  ├── lib
│  │  │  │  ├── dns
│  │  │  │  │  ├── llmnr_responder.c
│  │  │  │  │  │ mdns_responder.c
│  │  │  │  ├── mqtt
│  │  │  │  │  │ mqtt_transport_socket_tls.c
│  │  │  │  ├── websocket
│  │  │  │  │  │ websocket.c
│  │  ├── pm
│  │  │  ├── Kconfig
│  │  │  ├── device.c
│  │  │  │ device_runtime.c
│  │  ├── storage
│  │  │  ├── flash_map
│  │  │  │  │ flash_map_default.c
│  │  ├── usb
│  │  │  ├── device_next
│  │  │  │  ├── class
│  │  │  │  │  ├── Kconfig.hid
│  │  │  │  │  ├── usbd_hid.c
│  │  │  │  │  ├── usbd_hid_api.c
│  │  │  │  │  │ usbd_hid_internal.h
│  ├── tests
│  │  ├── application_development
│  │  │  ├── ram_context_for_isr
│  │  │  │  ├── Kconfig
│  │  │  │  ├── boards
│  │  │  │  │  ├── nrf54l05dk_nrf54l05_cpuapp.conf
│  │  │  │  │  ├── nrf54l15dk_nrf54l10_cpuapp.conf
│  │  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp.conf
│  │  │  │  │  ├── nrf54lm20dk_nrf54lm20a_cpuapp.conf
│  │  │  │  │  │ nrf54lv10dk_nrf54lv10a_cpuapp.conf
│  │  ├── arch
│  │  │  ├── arm
│  │  │  │  ├── arm_irq_vector_table
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.conf
│  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpurad.conf
│  │  │  ├── common
│  │  │  │  ├── gen_isr_table
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  ├── bluetooth
│  │  │  ├── controller
│  │  │  │  ├── ctrl_api
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_chmu
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_cis_create
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_cis_terminate
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_collision
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_conn_update
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_cte_req
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_data_length_update
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_encrypt
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_feature_exchange
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_hci
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_invalid
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_le_ping
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_min_used_chans
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_phy_update
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_sca_update
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_sw_privacy
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_terminate
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_tx_buffer_alloc
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_tx_queue
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_unsupported
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_user_ext
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── ctrl_version
│  │  │  │  │  │ testcase.yaml
│  │  │  ├── df
│  │  │  │  ├── connection_cte_req
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── connection_cte_tx_params
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── connectionless_cte_chains
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── connectionless_cte_rx
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── connectionless_cte_tx
│  │  │  │  │  │ testcase.yaml
│  │  │  ├── host
│  │  │  │  ├── id
│  │  │  │  │  ├── mocks
│  │  │  │  │  │  ├── adv.c
│  │  │  │  │  │  ├── adv.h
│  │  │  │  │  │  ├── keys.c
│  │  │  │  │  │  │ keys.h
│  │  │  ├── init
│  │  │  │  ├── prj_ctlr.conf
│  │  │  │  ├── prj_ctlr_dbg.conf
│  │  │  │  │ testcase.yaml
│  │  │  ├── mesh_shell
│  │  │  │  ├── boards
│  │  │  │  │  │ qemu_x86.conf
│  │  │  │  │ prj.conf
│  │  │  ├── tester
│  │  │  │  ├── Kconfig.sysbuild
│  │  │  │  ├── boards
│  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.conf
│  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  ├── sysbuild.cmake
│  │  │  │  ├── sysbuild
│  │  │  │  │  ├── hci_ipc
│  │  │  │  │  │  ├── boards
│  │  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpurad.conf
│  │  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpurad.overlay
│  │  │  │  │  │  │ prj.conf
│  │  ├── boards
│  │  │  ├── nrf
│  │  │  │  ├── comp
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── bl54l15_dvk_nrf54l15_cpuapp.overlay
│  │  │  │  │  │  ├── bl54l15u_dvk_nrf54l15_cpuapp.overlay
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp.overlay
│  │  │  │  │  │  │ nrf54lm20dk_nrf54lm20a_cpuapp.overlay
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ test.c
│  │  │  │  ├── coresight_stm
│  │  │  │  │  │ prj.conf
│  │  │  │  ├── dmm
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── nrf5340dk_nrf5340_cpuapp.overlay
│  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  ├── prj.conf
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── hwinfo
│  │  │  │  │  ├── reset_cause
│  │  │  │  │  │  ├── src
│  │  │  │  │  │  │  │ main.c
│  │  │  │  ├── qdec
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── bl54l15_dvk_nrf54l15_common.dtsi
│  │  │  │  │  │  ├── bl54l15u_dvk_nrf54l15_common.dtsi
│  │  │  │  │  │  ├── nrf52840dk_nrf52840.overlay
│  │  │  │  │  │  ├── nrf5340dk_nrf5340_cpuapp.overlay
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  │  ├── nrf54l15dk_nrf54l15_common.dtsi
│  │  │  │  │  │  │ nrf54lm20dk_nrf54lm20_common.dtsi
│  │  │  │  │  ├── dts
│  │  │  │  │  │  ├── bindings
│  │  │  │  │  │  │  │ test-qdec-loopback.yaml
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  ├── boot
│  │  │  ├── mcuboot_recovery_retention
│  │  │  │  │ sysbuild.conf
│  │  │  ├── test_mcuboot
│  │  │  │  ├── sysbuild.cmake
│  │  │  │  │ sysbuild.conf
│  │  ├── bsim
│  │  │  ├── bluetooth
│  │  │  │  ├── compile.nrf54l15bsim_nrf54l15_cpuapp.sh
│  │  │  │  ├── host
│  │  │  │  │  ├── gatt
│  │  │  │  │  │  ├── caching
│  │  │  │  │  │  │  │ psa_overlay.conf
│  │  │  │  ├── ll
│  │  │  │  │  ├── advx
│  │  │  │  │  │  ├── src
│  │  │  │  │  │  │  │ main.c
│  │  │  │  │  │  ├── tests_scripts
│  │  │  │  │  │  │  ├── basic_advx.sh
│  │  │  │  │  │  │  ├── basic_advx_scan_aux_use_chains.sh
│  │  │  │  │  │  │  │ basic_advx_ticker_expire_info.sh
│  │  │  │  │  ├── conn
│  │  │  │  │  │  │ psa_overlay.conf
│  │  │  │  │ tests.nrf54l15bsim_nrf54l15_cpuapp.txt
│  │  ├── crypto
│  │  │  ├── mbedtls
│  │  │  │  │ CMakeLists.txt
│  │  │  ├── mbedtls_psa
│  │  │  │  ├── boards
│  │  │  │  │  ├── nrf54l05dk_nrf54l05_cpuapp.conf
│  │  │  │  │  ├── nrf54l15dk_nrf54l10_cpuapp.conf
│  │  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp.conf
│  │  │  │  │  ├── nrf54lm20dk_nrf54lm20a_cpuapp.conf
│  │  │  │  │  │ nrf54lv10dk_nrf54lv10a_cpuapp.conf
│  │  │  ├── secp256r1
│  │  │  │  │ mbedtls.conf
│  │  ├── drivers
│  │  │  ├── adc
│  │  │  │  ├── adc_accuracy_test
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── adc_api
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── adc_error_cases
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_common.dtsi
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuppr.overlay
│  │  │  │  │  │ testcase.yaml
│  │  │  ├── build_all
│  │  │  │  ├── comparator
│  │  │  │  │  ├── nrf_comp
│  │  │  │  │  │  ├── diff.overlay
│  │  │  │  │  │  ├── se.overlay
│  │  │  │  │  │  │ se_aref.overlay
│  │  │  │  │  ├── nrf_lpcomp
│  │  │  │  │  │  ├── ext_ref.overlay
│  │  │  │  │  │  │ int_ref.overlay
│  │  │  │  │  ├── nxp_cmp
│  │  │  │  │  │  │ frdm_mcxc242.dts
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── regulator
│  │  │  │  │  │ testcase.yaml
│  │  │  ├── clock_control
│  │  │  │  ├── nrf_clock_control
│  │  │  │  │  ├── boards
│  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  │  ├── comparator
│  │  │  │  ├── gpio_loopback
│  │  │  │  │  ├── boards
│  │  │  │  │  │  │ frdm_mcxc242.overlay
│  │  │  │  │  ├── snippets
│  │  │  │  │  │  ├── nrf_comp
│  │  │  │  │  │  │  ├── boards
│  │  │  │  │  │  │  │  ├── bl54l15_dvk_nrf54l15_cpuapp.overlay
│  │  │  │  │  │  │  │  ├── bl54l15u_dvk_nrf54l15_cpuapp.overlay
│  │  │  │  │  │  │  │  ├── nrf5340dk_nrf5340_cpuapp.overlay
│  │  │  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp.overlay
│  │  │  │  │  │  │  │  │ nrf54lm20dk_nrf54lm20a_cpuapp.overlay
│  │  │  │  │  │  ├── nrf_lpcomp
│  │  │  │  │  │  │  ├── boards
│  │  │  │  │  │  │  │  ├── bl54l15_dvk_nrf54l15_cpuapp.overlay
│  │  │  │  │  │  │  │  ├── bl54l15u_dvk_nrf54l15_cpuapp.overlay
│  │  │  │  │  │  │  │  ├── nrf5340dk_nrf5340_cpuapp.overlay
│  │  │  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp.overlay
│  │  │  │  │  │  │  │  │ nrf54lm20dk_nrf54lm20a_cpuapp.overlay
│  │  │  ├── flash
│  │  │  │  ├── common
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── mx25uw63_low_freq.overlay
│  │  │  │  │  │  ├── mx25uw63_single_io.overlay
│  │  │  │  │  │  ├── mx25uw63_single_io_4B_addr_sreset.overlay
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  │  │ nrf54l15dk_remove_dt_sfdp.overlay
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── negative_tests
│  │  │  │  │  │ sysbuild.conf
│  │  │  ├── gpio
│  │  │  │  ├── gpio_get_direction
│  │  │  │  │  ├── boards
│  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuppr.overlay
│  │  │  │  ├── gpio_hogs
│  │  │  │  │  ├── boards
│  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuppr.overlay
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── gpio_nrf
│  │  │  │  │  ├── boards
│  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuppr.overlay
│  │  │  ├── i2c
│  │  │  │  ├── i2c_nrfx_twim
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuppr.overlay
│  │  │  │  │  │  │ nrf54lm20dk_nrf54lm20a_cpuapp.overlay
│  │  │  │  │  ├── sysbuild
│  │  │  │  │  │  ├── vpr_launcher
│  │  │  │  │  │  │  ├── boards
│  │  │  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  │  │  │ prj.conf
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── i2c_target_api
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuppr.conf
│  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuppr.overlay
│  │  │  │  │  ├── sysbuild
│  │  │  │  │  │  ├── vpr_launcher
│  │  │  │  │  │  │  ├── boards
│  │  │  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  │  │  │ prj.conf
│  │  │  │  │  │ testcase.yaml
│  │  │  ├── i2s
│  │  │  │  ├── i2s_api
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ test_i2s_errors.c
│  │  │  ├── mbox
│  │  │  │  ├── mbox_error_cases
│  │  │  │  │  ├── boards
│  │  │  │  │  │  │ nrf54lm20dk_nrf54lm20a_cpuapp.overlay
│  │  │  │  │  ├── sample.yaml
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  │  ├── mspi
│  │  │  │  ├── flash
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpurad.conf
│  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpurad.overlay
│  │  │  │  │  │ testcase.yaml
│  │  │  ├── spi
│  │  │  │  ├── spi_error_cases
│  │  │  │  │  │ testcase.yaml
│  │  │  │  ├── spi_loopback
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.conf
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuppr.conf
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuppr_xip.conf
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuppr_xip.overlay
│  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpurad.conf
│  │  │  ├── timer
│  │  │  │  ├── nrf_grtc_timer
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp.overlay
│  │  │  │  │  │  │ nrf54l15dk_nrf54l15_cpuflpr.overlay
│  │  │  │  │  ├── prj.conf
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  │  │  │  │ testcase.yaml
│  │  │  ├── uart
│  │  │  │  ├── uart_async_api
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuppr_xip.conf
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuppr_xip.overlay
│  │  │  │  │  │  │ nrf54l15dk_nrf54l15_cpuapp.overlay
│  │  │  │  ├── uart_async_dual
│  │  │  │  │  ├── Kconfig
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_common.dtsi
│  │  │  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.conf
│  │  │  │  │  │  │ nrf54l15dk_nrf54l15_cpuapp.overlay
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  │  │  │  ├── sysbuild
│  │  │  │  │  │  ├── vpr_launcher
│  │  │  │  │  │  │  ├── boards
│  │  │  │  │  │  │  │  │ nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  │  │ testcase.yaml
│  │  │  ├── watchdog
│  │  │  │  ├── wdt_basic_api
│  │  │  │  │  │ testcase.yaml
│  │  ├── kernel
│  │  │  ├── pipe
│  │  │  │  ├── deprecated
│  │  │  │  │  ├── pipe_api
│  │  │  │  │  │  │ prj.conf
│  │  │  ├── sched
│  │  │  │  ├── schedule_api
│  │  │  │  │  ├── prj.conf
│  │  │  │  │  │ prj_multiq.conf
│  │  │  ├── sleep
│  │  │  │  ├── src
│  │  │  │  │  │ usleep.c
│  │  ├── lib
│  │  │  ├── devicetree
│  │  │  │  ├── api
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  │  ├── newlib
│  │  │  │  ├── heap_listener
│  │  │  │  │  │ prj.conf
│  │  ├── net
│  │  │  ├── ipv6
│  │  │  │  │ prj.conf
│  │  │  ├── socket
│  │  │  │  ├── getaddrinfo
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  │  ├── tcp
│  │  │  │  ├── src
│  │  │  │  │  │ main.c
│  │  ├── subsys
│  │  │  ├── dfu
│  │  │  │  ├── img_util
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  │  ├── fs
│  │  │  │  ├── fcb
│  │  │  │  │  │ sysbuild.conf
│  │  │  │  ├── littlefs
│  │  │  │  │  │ sysbuild.conf
│  │  │  │  ├── zms
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  │  │  │  │ testcase.yaml
│  │  │  ├── modem
│  │  │  │  ├── mock
│  │  │  │  │  ├── modem_backend_mock.c
│  │  │  │  │  │ modem_backend_mock.h
│  │  │  │  ├── modem_cmux
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  │  │  ├── modem_cmux_pair
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  │  │  ├── modem_pipe
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  │  ├── secure_storage
│  │  │  │  ├── psa
│  │  │  │  │  ├── crypto
│  │  │  │  │  │  │ testcase.yaml
│  │  │  │  │  ├── its
│  │  │  │  │  │  │ testcase.yaml
│  │  │  ├── settings
│  │  │  │  ├── its
│  │  │  │  │  │ testcase.yaml
│  │ west.yml

Outputs:

Toolchain

Version: df3cc9d822
Build docker image: docker-dtr.nordicsemi.no/sw-production/ncs-build:df3cc9d822_e595b21c39

Test Spec & Results: ✅ Success; ❌ Failure; 🟠 Queued; 🟡 Progress; ◻️ Skipped; ⚠️ Quarantine

  • ◻️ Toolchain - Skipped: existing toolchain is used
  • ❌ Build twister
    • sdk-nrf test count: 3277
    • sdk-zephyr test count: 4246
  • ❌ Integration tests
    • ❌ test-sdk-audio
    • ❌ desktop52_verification
    • ❌ test_ble_nrf_config
    • ❌ test-fw-nrfconnect-ble_mesh
    • ❌ test-fw-nrfconnect-ble_samples
    • ❌ test-fw-nrfconnect-chip
    • ❌ test-fw-nrfconnect-nfc
    • ❌ test-fw-nrfconnect-nrf-iot_libmodem-nrf
    • ❌ test-fw-nrfconnect-nrf-iot_zephyr_lwm2m
    • ❌ test-fw-nrfconnect-nrf-iot_samples
    • ❌ test-fw-nrfconnect-nrf-iot_thingy91
    • ❌ test-fw-nrfconnect-nrf_crypto
    • ❌ test-fw-nrfconnect-rpc
    • ❌ test-fw-nrfconnect-rs
    • ❌ test-fw-nrfconnect-fem
    • ❌ test-fw-nrfconnect-tfm
    • ❌ test-fw-nrfconnect-thread-main
    • ❌ test-sdk-find-my
    • ❌ test-fw-nrfconnect-nrf_lrcs_positioning
    • ❌ test-sdk-wifi
    • ❌ test-low-level
    • ❌ test-sdk-mcuboot
    • ❌ test-sdk-dfu
    • ⚠️ test-fw-nrfconnect-nrf-iot_cloud
    • ⚠️ test-fw-nrfconnect-nrf_lrcs_mosh
    • ⚠️ test-fw-nrfconnect-nrf_lrcs_positioning
Disabled integration tests
    • test-fw-nrfconnect-apps
    • test-fw-nrfconnect-nrf-iot_lwm2m
    • test-fw-nrfconnect-ps-main
    • test-secdom-samples-public

Note: This message is automatically posted and updated by the CI

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR extends PSA crypto support to WPA3-SAE (Simultaneous Authentication of Equals), enabling all personal Wi-Fi security modes to use PSA crypto APIs. The implementation provides a drop-in replacement for the original SAE implementation using PSA PAKE APIs.

Key Changes:

  • Added WPA3-SAE PSA implementation with support for Group 19 (NIST P-256), H2E (Hash-to-Element), and HnP modes
  • Updated Zephyr dependency to pull/3525/head for required PSA PAKE API support
  • Configured build system to conditionally compile WPA3 PSA support

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 10 comments.

File Description
west.yml Updates Zephyr revision to pull in PSA PAKE API support
subsys/net/lib/hostap_crypto/wpa3_psa.c New 1518-line implementation of WPA3-SAE using PSA crypto APIs
subsys/net/lib/hostap_crypto/Kconfig Adds HOSTAP_CRYPTO_WPA3_PSA configuration option with required PSA dependencies
subsys/net/lib/hostap_crypto/CMakeLists.txt Conditionally includes wpa3_psa.c and defines CONFIG_SAE/CONFIG_ECC when WPA3 PSA is enabled

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

wpa_printf(MSG_DEBUG, "WPA3-PSA: Processing commit data of %zu bytes", commit_len);

/* DEBUG: Parse and dump commit message contents */
wpa_printf(MSG_DEBUG, "WPA3-PSA: Processing commit data of %zu bytes", commit_len);
Copy link

Copilot AI Nov 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redundant duplicate debug message. Line 1139 is an exact duplicate of line 1136: "WPA3-PSA: Processing commit data of %zu bytes". One of these should be removed to avoid confusion in logs.

Suggested change
wpa_printf(MSG_DEBUG, "WPA3-PSA: Processing commit data of %zu bytes", commit_len);

Copilot uses AI. Check for mistakes.
borrow = 0;
for (i = 31; i >= 0; i--) {
diff = context[i] - r[i] - borrow;
if (diff > context[i] || (context[i] == r[i] && borrow)) {
Copy link

Copilot AI Nov 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incorrect arithmetic in borrow detection. The condition diff > context[i] will always be false for unsigned subtraction because diff = context[i] - r[i] - borrow means diff is computed modulo 256 and cannot be greater than the original context[i]. The borrow detection logic should be: borrow = (context[i] < r[i] + borrow) ? 1 : 0; or check if (int)context[i] - (int)r[i] - (int)borrow < 0.

Suggested change
if (diff > context[i] || (context[i] == r[i] && borrow)) {
if (context[i] < r[i] + borrow) {

Copilot uses AI. Check for mistakes.
Comment on lines +1482 to +1487
diff = context[i] - r[i] - borrow;
if (diff > context[i] || (context[i] == r[i] && borrow)) {
borrow = 1;
} else {
borrow = 0;
}
Copy link

Copilot AI Nov 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same incorrect borrow detection logic as above. The condition diff > context[i] will not correctly detect borrow in unsigned arithmetic. This needs to be fixed to properly handle underflow when subtracting with borrow.

Suggested change
diff = context[i] - r[i] - borrow;
if (diff > context[i] || (context[i] == r[i] && borrow)) {
borrow = 1;
} else {
borrow = 0;
}
uint32_t sub = r[i] + borrow;
if (context[i] < sub) {
borrow = 1;
} else {
borrow = 0;
}
diff = context[i] - sub;

Copilot uses AI. Check for mistakes.
op->pmk_len = pmk_len;

/* Generate PMKID from context directly as per IEEE 802.11 specification */
/* PMKID = L(context, 0, 128) where context is (commit-scalar + peer-commit-scalar) mod r */
Copy link

Copilot AI Nov 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Misleading comment: The comment mentions "IEEE 802.11: PMKID = first 128 bits of (scalar1 + scalar2) mod r" which describes computing PMKID from scalars, but the actual implementation on line 1371 just copies the first 16 bytes of context to pmkid. The comment should clarify that context already contains (scalar1 + scalar2) mod r, computed by wpa3_psa_calculate_context().

Suggested change
/* PMKID = L(context, 0, 128) where context is (commit-scalar + peer-commit-scalar) mod r */
/* PMKID = L(context, 0, 128), where context is (commit-scalar + peer-commit-scalar) mod r,
* as computed by wpa3_psa_calculate_context() above. */

Copilot uses AI. Check for mistakes.
/* Initialize PSA PAKE operation */
op->pake_op = psa_pake_operation_init();

/* Initialize Oberon WPA3-SAE operation */
Copy link

Copilot AI Nov 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Misleading comment: The comment says "Initialize Oberon WPA3-SAE operation" but this is supposed to be a generic PSA implementation, not specific to Oberon. This comment should be updated to reflect the generic PSA approach, e.g., "Initialize PSA PAKE operation".

Suggested change
/* Initialize Oberon WPA3-SAE operation */
/* Initialize PSA PAKE operation context */

Copilot uses AI. Check for mistakes.
}

/* PSA PAKE output should be exactly 98 bytes in SAE format: [group][scalar][element] */
if (op->shared_key_len != 98) {
Copy link

Copilot AI Nov 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Magic number 98 is used without explanation. This appears multiple times (lines 332, 336, 372, 1140, 1348) but is never defined as a named constant. Consider defining this as a constant like #define WPA3_PSA_SAE_COMMIT_MSG_LEN 98 with a comment explaining it's the size of [group(2)][scalar(32)][element(64)].

Copilot uses AI. Check for mistakes.
Comment on lines 1358 to 1354
if (wpa3_psa_calculate_context(local_scalar, peer_scalar, context) < 0) {
wpa_printf(MSG_ERROR, "WPA3-PSA: Context calculation failed");
psa_destroy_key(shared_key_id);
os_free(pmk_buf);
return -1;
}
Copy link

Copilot AI Nov 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Potential resource leak: If wpa3_psa_calculate_context() fails on line 1358, the function returns -1 without calling os_free(pmk_buf) (which is freed on line 1375). This creates a memory leak. The cleanup code should be moved to ensure pmk_buf is always freed on all error paths.

Copilot uses AI. Check for mistakes.
Comment on lines +102 to +114
# Disable standard WPA3 support and use the PSA variant
config WIFI_NM_WPA_SUPPLICANT_WPA3
default n
config WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE
default n

config WIFI_NM_WPA_SUPPLICANT_WPA3
default n

config WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE
default n

config HOSTAP_CRYPTO_WPA3_PSA
bool "WPA3 PSA support"
select PSA_WANT_ALG_WPA3_SAE_PT
select PSA_WANT_ALG_WPA3_SAE
select PSA_WANT_KEY_TYPE_WPA3_SAE_PT
select PSA_WANT_ALG_HKDF
default y
Copy link

Copilot AI Nov 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Indentation inconsistency: Lines 103-114 use tab indentation while the rest of the file appears to use different formatting. This creates inconsistent code style. The indentation should match the surrounding context (lines 97-99 and 115-117).

Copilot uses AI. Check for mistakes.
@@ -64,7 +64,7 @@ manifest:
# https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/guides/modules.html
- name: zephyr
repo-path: sdk-zephyr
revision: de567402f0883a5c237a7478ca6451f0e5c681b3
revision: pull/3525/head
Copy link

Copilot AI Nov 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The revision reference pull/3525/head is not a standard Git commit SHA. This appears to be a GitHub pull request reference which is problematic for production code as:

  1. Pull requests are mutable and can be force-pushed
  2. Pull request branches may be deleted after merge
  3. This creates an unstable dependency

Consider using a specific commit SHA instead of a pull request reference for reproducible builds.

Suggested change
revision: pull/3525/head
revision: 7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b

Copilot uses AI. Check for mistakes.
op->pake_op = psa_pake_operation_init();

/* Initialize Oberon WPA3-SAE operation */
memset(&op->pake_op, 0, sizeof(op->pake_op));
Copy link

Copilot AI Nov 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The psa_pake_operation_init() call on line 127 is immediately followed by memset(&op->pake_op, 0, sizeof(op->pake_op)) on line 130, which overwrites the initialized state. This is incorrect as it defeats the purpose of the initialization function and may lead to undefined behavior. Either remove the memset or the psa_pake_operation_init() call, but keep the proper initialization approach.

Suggested change
memset(&op->pake_op, 0, sizeof(op->pake_op));

Copilot uses AI. Check for mistakes.
@github-actions
Copy link

You can find the documentation preview for this PR here.

@sachinthegreen sachinthegreen added this to the 3.2.0 milestone Nov 24, 2025
Pull fix for PSA SAE in hostap.

Signed-off-by: Chaitanya Tata <[email protected]>
This implements the PSA variant of WPA3, disables the internal WPA3 in
the supplicant and uses the nRF Oberon's WPA3 HKDF APIs.

Signed-off-by: Chaitanya Tata <[email protected]>
Comment on lines +87 to +90
zephyr_library_compile_definitions(
CONFIG_SAE
CONFIG_ECC
)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this needed ?

Suggested change
zephyr_library_compile_definitions(
CONFIG_SAE
CONFIG_ECC
)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are replacing the wpa_supplicant internal WPA3 implementation with our own, but rest of the modules still use SAE/ECC defines, so, we need to pass them to wpa_supplicant.

# Disable standard WPA3 support and use the PSA variant
config WIFI_NM_WPA_SUPPLICANT_WPA3
default n
config WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
config WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE
config WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE

# PSA crypto is WPA2 only for now
# PSA crypto is personal security only for now
if HOSTAP_CRYPTO_ALT_PSA
# Disable standard WPA3 support and use the PSA variant
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is technically not disabling the setting, it's changing the default.

What becomes the final value still depends on defconfig loaded prior to this code or prj.conf files if the symbols have prompts.

Copy link
Contributor Author

@krish2718 krish2718 Nov 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, should I add a !depends on WIFI_NM_WPA_SUPPLICANT_WPA3 to make it explicit? Something like this

	config HOSTAP_CRYPTO_WPA3_PSA
		bool "WPA3 PSA support"
		# Only one WPA3 implementation can be enabled at a time
		depends on !WIFI_NM_WPA_SUPPLICANT_WPA3
		select PSA_WANT_ALG_WPA3_SAE
		select PSA_WANT_ALG_WPA3_SAE_H2E
		select PSA_WANT_KEY_TYPE_WPA3_SAE_PT

@krish2718
Copy link
Contributor Author

FYI, this PR is now merged with #25346 (I have the fixes for review comments ready, will push to that PR).

@krish2718 krish2718 closed this Nov 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. DNM manifest manifest-zephyr

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants