diff --git a/doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst b/doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst index 6e1144bd71ed..ec5da3499ba3 100644 --- a/doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst +++ b/doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst @@ -654,26 +654,6 @@ Networking samples * Fixed not to fail with a fatal error if IPv4 or IPv6 server setup fails. -* :ref:`download_client` sample: - - * Added support for the :ref:`zephyr:nrf54l15dk_nrf54l15` board in combination with an nRF7002-based shield. - -* :ref:`mqtt_sample` sample: - - * Added support for the :ref:`zephyr:nrf54l15dk_nrf54l15` board in combination with an nRF7002-based shield. - -* :ref:`https_client` sample: - - * Added support for the :ref:`zephyr:nrf54l15dk_nrf54l15` board in combination with an nRF7002-based shield. - -* :ref:`udp_sample`: sample: - - * Added support for the :ref:`zephyr:nrf54l15dk_nrf54l15` board in combination with an nRF7002-based shield. - -* :ref:`net_coap_client_sample` sample: - - * Added support for the :ref:`zephyr:nrf54l15dk_nrf54l15` board in combination with an nRF7002-based shield. - NFC samples ----------- diff --git a/samples/net/aws_iot/Kconfig.sysbuild b/samples/net/aws_iot/Kconfig.sysbuild index b6dfe4405220..1681fbe65ce3 100644 --- a/samples/net/aws_iot/Kconfig.sysbuild +++ b/samples/net/aws_iot/Kconfig.sysbuild @@ -5,13 +5,13 @@ # choice BOOTLOADER - default BOOTLOADER_MCUBOOT if !BOARD_NATIVE_SIM + default BOOTLOADER_MCUBOOT if !BOARD_NATIVE_SIM && !BOARD_NRF54L15DK_NRF54L15_CPUAPP && !BOARD_NRF54L15PDK_NRF54L15_CPUAPP endchoice config PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY default y if BOARD_NRF7002DK_NRF5340_CPUAPP_NS config WIFI_NRF70 - default y if BOARD_NRF7002DK_NRF5340_CPUAPP_NS + default y if BOARD_NRF7002DK_NRF5340_CPUAPP_NS || BOARD_NRF54L15DK_NRF54L15_CPUAPP || BOARD_NRF54L15PDK_NRF54L15_CPUAPP source "${ZEPHYR_BASE}/share/sysbuild/Kconfig" diff --git a/samples/net/aws_iot/README.rst b/samples/net/aws_iot/README.rst index a4709705c14f..617fcf423398 100644 --- a/samples/net/aws_iot/README.rst +++ b/samples/net/aws_iot/README.rst @@ -7,7 +7,7 @@ AWS IoT :local: :depth: 2 -The Amazon Web Services Internet-of-Things (AWS IoT) sample demonstrates how to connect an nRF91 Series or nRF70 Series device to the `AWS IoT Core`_ service over MQTT to publish and receive messages. +The Amazon Web Services Internet-of-Things (AWS IoT) sample demonstrates how to connect an nRF91 Series, nRF70 Series, or nRF54L15 with nRF7002 EB device to the `AWS IoT Core`_ service over MQTT to publish and receive messages. This sample showcases the use of the :ref:`lib_aws_iot` library, which includes support for FOTA using the :ref:`lib_aws_fota` library. .. |wifi| replace:: Wi-FiĀ® @@ -152,6 +152,7 @@ The sample includes pre-configured configuration files for the development kits * :file:`boards/nrf9160dk_nrf9160_ns.conf` - Configuration file for the nRF9160 DK. * :file:`boards/thingy91_nrf9160_ns.conf` - Configuration file for the Thingy:91. * :file:`boards/nrf7002dk_nrf5340_cpuapp_ns.conf` - Configuration file for the nRF7002 DK. +* :file:`boards/nrf54l15dk_nrf54l15_cpuapp.conf` - Configuration file for the nRF54L15 DK. * :file:`boards/native_sim.conf` - Configuration file for the native simulator board. The following configuration and DTS overlay files are included to host the MCUboot secondary image slot on external flash for the nRF7002 DK: diff --git a/samples/net/aws_iot/boards/nrf54l15dk_nrf54l15_cpuapp.conf b/samples/net/aws_iot/boards/nrf54l15dk_nrf54l15_cpuapp.conf new file mode 100644 index 000000000000..0ea1650e7441 --- /dev/null +++ b/samples/net/aws_iot/boards/nrf54l15dk_nrf54l15_cpuapp.conf @@ -0,0 +1,89 @@ +# +# Copyright (c) 2024 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + +# Wi-Fi +CONFIG_WIFI=y +CONFIG_WIFI_NRF70=y + +# WPA supplicant +CONFIG_WIFI_NM_WPA_SUPPLICANT=y +CONFIG_WIFI_NM_WPA_SUPPLICANT_LOG_LEVEL_INF=y + +# Networking +CONFIG_NET_L2_ETHERNET=y +CONFIG_NET_SOCKETS=y +CONFIG_NET_IPV6=y +CONFIG_NET_UDP=y +CONFIG_NET_TCP=y +CONFIG_NET_DHCPV4=y +CONFIG_DNS_RESOLVER=y +CONFIG_DNS_RESOLVER_AI_MAX_ENTRIES=4 + +# NET sockets +CONFIG_NET_UDP=y +CONFIG_NET_TCP=y +CONFIG_NET_MAX_CONN=6 +CONFIG_NET_MAX_CONTEXTS=5 +CONFIG_NET_SOCKETS_POLL_MAX=8 +CONFIG_NET_SOCKETS_OFFLOAD=n +CONFIG_NET_DHCPV4=y +CONFIG_NET_CONTEXT_SNDTIMEO=y +CONFIG_NET_CONTEXT_RCVTIMEO=y +CONFIG_NET_MAX_CONTEXTS=3 + +# NET buffers +CONFIG_NET_PKT_TX_COUNT=6 +CONFIG_NET_PKT_RX_COUNT=6 +CONFIG_NET_BUF_TX_COUNT=12 +CONFIG_NET_BUF_RX_COUNT=6 +CONFIG_NRF70_RX_NUM_BUFS=6 +CONFIG_NET_PKT_BUF_RX_DATA_POOL_SIZE=4096 +CONFIG_NET_PKT_BUF_TX_DATA_POOL_SIZE=4096 +CONFIG_NRF70_MAX_TX_AGGREGATION=1 + +# MQTT +CONFIG_MQTT_HELPER_PROVISION_CERTIFICATES=y + +# Kernel options +CONFIG_POSIX_NETWORKING=y +CONFIG_POSIX_MAX_FDS=21 + +# Shell +CONFIG_SHELL=y +CONFIG_SHELL_CMDS_RESIZE=n +CONFIG_NET_L2_WIFI_SHELL=y + +# TLS +CONFIG_NET_SOCKETS_SOCKOPT_TLS=y +CONFIG_NET_SOCKETS_TLS_MAX_CONTEXTS=1 +CONFIG_NRF_SECURITY=y +CONFIG_MBEDTLS=y +CONFIG_MBEDTLS_ENABLE_HEAP=y +CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=n +CONFIG_MBEDTLS_SSL_SERVER_NAME_INDICATION=y +CONFIG_TLS_CREDENTIALS=y +CONFIG_TLS_CREDENTIALS_BACKEND_VOLATILE=y + +# Stack sizes +CONFIG_NET_CONNECTION_MANAGER_MONITOR_STACK_SIZE=2048 +CONFIG_NET_TX_STACK_SIZE=2048 +CONFIG_NET_RX_STACK_SIZE=2048 +CONFIG_NET_MGMT_EVENT_STACK_SIZE=1024 +CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=3100 +CONFIG_NRF70_IRQ_WQ_STACK_SIZE=1024 +CONFIG_NRF70_BH_WQ_STACK_SIZE=2300 +CONFIG_SHELL_STACK_SIZE=4400 +CONFIG_ISR_STACK_SIZE=512 + +# Heap sizes +CONFIG_HEAP_MEM_POOL_IGNORE_MIN=y +CONFIG_MBEDTLS_HEAP_SIZE=50000 +CONFIG_HEAP_MEM_POOL_SIZE=87000 + +# POSIX API memory optimizations +CONFIG_POSIX_FD_MGMT=n +CONFIG_POSIX_MESSAGE_PASSING=n +CONFIG_POSIX_THREAD_THREADS_MAX=0 diff --git a/samples/net/aws_iot/boards/nrf54l15dk_nrf54l15_cpuapp.overlay b/samples/net/aws_iot/boards/nrf54l15dk_nrf54l15_cpuapp.overlay new file mode 100644 index 000000000000..0681c0dbb9e0 --- /dev/null +++ b/samples/net/aws_iot/boards/nrf54l15dk_nrf54l15_cpuapp.overlay @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2024 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +&rram_controller { + /delete-node/ cpuflpr_sram; + /delete-node/ cpuflpr_rram; +}; + +/* Adjust the cpuapp_sram to include the freed up cpuflpr_sram */ +&cpuapp_sram { + reg = <0x20000000 DT_SIZE_K(256)>; + ranges = <0x0 0x20000000 0x20040000>; +}; + +/* Adjust the cpuapp_rram to include the freed up cpuflpr_rram */ +&cpuapp_rram { + reg = <0x0 DT_SIZE_K(1524)>; +}; diff --git a/samples/net/aws_iot/sample.yaml b/samples/net/aws_iot/sample.yaml index 93bca0078320..4c201cdadbf2 100644 --- a/samples/net/aws_iot/sample.yaml +++ b/samples/net/aws_iot/sample.yaml @@ -22,3 +22,13 @@ tests: - thingy91x/nrf9151/ns - nrf7002dk/nrf5340/cpuapp/ns - native_sim + sample.net.aws_iot.nrf54l15.wifi: + sysbuild: true + tags: ci_build sysbuild ci_samples_net + build_only: true + build_on_all: true + integration_platforms: + - nrf54l15dk/nrf54l15/cpuapp + platform_allow: + - nrf54l15dk/nrf54l15/cpuapp + extra_args: aws_iot_SHIELD="nrf7002eb_interposer_p1;nrf7002eb" diff --git a/samples/net/aws_iot/sysbuild/mcuboot/app.overlay b/samples/net/aws_iot/sysbuild/mcuboot/app.overlay index 74d3dfbfd22f..6d0f92ab5d7e 100644 --- a/samples/net/aws_iot/sysbuild/mcuboot/app.overlay +++ b/samples/net/aws_iot/sysbuild/mcuboot/app.overlay @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2024 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + / { chosen { zephyr,code-partition = &boot_partition; diff --git a/samples/net/aws_iot/sysbuild/mcuboot/boards/nrf54l15pdk_nrf54l15_cpuapp.conf b/samples/net/aws_iot/sysbuild/mcuboot/boards/nrf54l15pdk_nrf54l15_cpuapp.conf new file mode 100644 index 000000000000..29bfe06f5984 --- /dev/null +++ b/samples/net/aws_iot/sysbuild/mcuboot/boards/nrf54l15pdk_nrf54l15_cpuapp.conf @@ -0,0 +1,40 @@ +# +# Copyright (c) 2024 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + +# TODO: Workaround, disable memory guard to avoid false faults in application after boot +CONFIG_HW_STACK_PROTECTION=n + +CONFIG_BOOT_WATCHDOG_FEED=n + +# nRF54L15PDK uses SPI NOR external flash +CONFIG_GPIO=y +CONFIG_SPI=y +CONFIG_SPI_NOR=y +CONFIG_SPI_NOR_SFDP_DEVICETREE=y +CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096 + +# TODO: NCSDK-28931: Cannot use fprotect twice, so disable it in MCUboot to +# test protecting Matter factory data. It can be enabled while there is a support +# for protection more than one region. +CONFIG_FPROTECT=n + +# required by SPI driver +CONFIG_MULTITHREADING=y + +# Partition mamager +CONFIG_PM_OVERRIDE_EXTERNAL_DRIVER_CHECK=y +CONFIG_PM_PARTITION_SIZE_MCUBOOT=0xF000 +CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y + +# Adjust the maximum sectors to the app image size of ~1.4MB +CONFIG_BOOT_MAX_IMG_SECTORS=512 + +# Currently, without tickless kernel, the SYSCOUNTER value after the software +# reset is not set properly and due to that the first system interrupt is not called +# in the proper time - the SYSCOUNTER value is set to the value from before +# reset + 1. Hence, the reboot time increases more and more. +# To avoid it enable tickles kernel for mcuboot. +CONFIG_TICKLESS_KERNEL=y diff --git a/samples/net/aws_iot/sysbuild/mcuboot/boards/nrf54l15pdk_nrf54l15_cpuapp.overlay b/samples/net/aws_iot/sysbuild/mcuboot/boards/nrf54l15pdk_nrf54l15_cpuapp.overlay new file mode 100644 index 000000000000..2dabe38016f0 --- /dev/null +++ b/samples/net/aws_iot/sysbuild/mcuboot/boards/nrf54l15pdk_nrf54l15_cpuapp.overlay @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2024 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +/ { + /* Configure the partition manager to use the mx25r64 external flash memory. */ + chosen { + nordic,pm-ext-flash = &mx25r64; + }; +}; + +&mx25r64 { + status = "okay"; +}; + +/* Restore full RRAM and SRAM space - by default some parts are dedicated to VPR */ +&cpuapp_rram { + reg = <0x0 DT_SIZE_K(1524)>; +}; + +&cpuapp_sram { + reg = <0x20000000 DT_SIZE_K(256)>; + ranges = <0x0 0x20000000 0x40000>; +}; diff --git a/samples/net/aws_iot/sysbuild/mcuboot/boards/nrf7002dk_nrf5340_cpuapp.conf b/samples/net/aws_iot/sysbuild/mcuboot/boards/nrf7002dk_nrf5340_cpuapp.conf index e321e5d72f65..2f57ff772a6b 100644 --- a/samples/net/aws_iot/sysbuild/mcuboot/boards/nrf7002dk_nrf5340_cpuapp.conf +++ b/samples/net/aws_iot/sysbuild/mcuboot/boards/nrf7002dk_nrf5340_cpuapp.conf @@ -10,6 +10,7 @@ CONFIG_FLASH=y CONFIG_MULTITHREADING=y CONFIG_MAIN_STACK_SIZE=4096 +CONFIG_NRF_RTC_TIMER_USER_CHAN_COUNT=0 # Serial Peripheral Interface (SPI) CONFIG_SPI=y diff --git a/samples/net/aws_iot/sysbuild/mcuboot/boards/thingy91_nrf9160.conf b/samples/net/aws_iot/sysbuild/mcuboot/boards/thingy91_nrf9160.conf index 1bf2e424d0d3..a4cc121d8b20 100644 --- a/samples/net/aws_iot/sysbuild/mcuboot/boards/thingy91_nrf9160.conf +++ b/samples/net/aws_iot/sysbuild/mcuboot/boards/thingy91_nrf9160.conf @@ -1,7 +1,14 @@ +# +# Copyright (c) 2024 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + # Disable Zephyr console CONFIG_CONSOLE=n CONFIG_CONSOLE_HANDLER=n CONFIG_UART_CONSOLE=n +CONFIG_NRF_RTC_TIMER_USER_CHAN_COUNT=0 # Disable Flash protection CONFIG_FPROTECT=n diff --git a/samples/net/aws_iot/sysbuild/mcuboot/boards/thingy91x_nrf9151.conf b/samples/net/aws_iot/sysbuild/mcuboot/boards/thingy91x_nrf9151.conf index 7c2042de649c..078fade6d76b 100644 --- a/samples/net/aws_iot/sysbuild/mcuboot/boards/thingy91x_nrf9151.conf +++ b/samples/net/aws_iot/sysbuild/mcuboot/boards/thingy91x_nrf9151.conf @@ -1,3 +1,9 @@ +# +# Copyright (c) 2024 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + # MCUBoot settings CONFIG_BOOT_MAX_IMG_SECTORS=512 diff --git a/samples/net/aws_iot/sysbuild/mcuboot/prj.conf b/samples/net/aws_iot/sysbuild/mcuboot/prj.conf index f36162ea34da..2a2bd1fe926a 100644 --- a/samples/net/aws_iot/sysbuild/mcuboot/prj.conf +++ b/samples/net/aws_iot/sysbuild/mcuboot/prj.conf @@ -1,3 +1,9 @@ +# +# Copyright (c) 2024 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + CONFIG_PM=n CONFIG_MAIN_STACK_SIZE=10240 @@ -26,18 +32,19 @@ CONFIG_FPROTECT=y # CONFIG_BT_CTLR is not set # CONFIG_I2C is not set -CONFIG_LOG=y -CONFIG_LOG_MODE_MINIMAL=y # former CONFIG_MODE_MINIMAL +# CONFIG_LOG=y +# CONFIG_LOG_MODE_MINIMAL=y # former CONFIG_MODE_MINIMAL ### Ensure Zephyr logging changes don't use more resources -CONFIG_LOG_DEFAULT_LEVEL=0 -### Use info log level by default -CONFIG_MCUBOOT_LOG_LEVEL_INF=y +# CONFIG_LOG_DEFAULT_LEVEL=0 +# ### Use info log level by default +# CONFIG_MCUBOOT_LOG_LEVEL_INF=y ### Decrease footprint by ~4 KB in comparison to CBPRINTF_COMPLETE=y CONFIG_CBPRINTF_NANO=y -CONFIG_NRF_RTC_TIMER_USER_CHAN_COUNT=0 + ### Use the minimal C library to reduce flash usage CONFIG_MINIMAL_LIBC=y # Disable serial output -CONFIG_SERIAL=n -CONFIG_UART_CONSOLE=n +# CONFIG_SERIAL=n +# CONFIG_UART_CONSOLE=n +CONFIG_WIFI_NRF70=n