Skip to content

Commit 9badb96

Browse files
authored
Merge branch 'main' into bttester-pbp-support
2 parents 6214438 + 107f9f0 commit 9badb96

File tree

474 files changed

+4895
-6107
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

474 files changed

+4895
-6107
lines changed

boards/native/nrf_bsim/nrf54l15bsim_nrf54l15_cpuapp.dts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
/delete-node/ memory@20000000;
2929
/delete-node/ memory@2002f000;
3030
peripheral@50000000 {
31-
/delete-node/ spi@4a000;
3231
/delete-node/ vpr@4c000;
3332
/delete-node/ mailbox@0;
3433
/delete-node/ interrupt-controller@f0000000;
@@ -84,8 +83,8 @@
8483
};
8584
};
8685

87-
&uart00 {
88-
/delete-property/ clocks;
86+
&spi00 {
87+
status = "disabled";
8988
};
9089

9190
&uart20 {

boards/nordic/nrf54l20pdk/nrf54l20pdk_nrf54l20-common.dtsi

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,19 @@
2727
};
2828
};
2929

30+
pwmleds {
31+
compatible = "pwm-leds";
32+
/*
33+
* PWM signal can be exposed on GPIO pin only within same domain.
34+
* There is only one domain which contains both PWM and GPIO:
35+
* PWM20/21/22 and GPIO Port P1/P3.
36+
* Only LEDs connected to P1/P3 can work with PWM, for example LED1.
37+
*/
38+
pwm_led1: pwm_led_1 {
39+
pwms = <&pwm20 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
40+
};
41+
};
42+
3043
buttons {
3144
compatible = "gpio-keys";
3245
button0: button_0 {
@@ -56,6 +69,7 @@
5669
led1 = &led1;
5770
led2 = &led2;
5871
led3 = &led3;
72+
pwm-led0 = &pwm_led1;
5973
sw0 = &button0;
6074
sw1 = &button1;
6175
sw2 = &button2;
@@ -70,3 +84,10 @@
7084
pinctrl-1 = <&uart20_sleep>;
7185
pinctrl-names = "default", "sleep";
7286
};
87+
88+
&pwm20 {
89+
status = "okay";
90+
pinctrl-0 = <&pwm20_default>;
91+
pinctrl-1 = <&pwm20_sleep>;
92+
pinctrl-names = "default", "sleep";
93+
};

boards/nordic/nrf54l20pdk/nrf54l20pdk_nrf54l20-pinctrl.dtsi

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,17 @@
2121
low-power-enable;
2222
};
2323
};
24+
25+
/omit-if-no-ref/ pwm20_default: pwm20_default {
26+
group1 {
27+
psels = <NRF_PSEL(PWM_OUT0, 1, 7)>;
28+
};
29+
};
30+
31+
/omit-if-no-ref/ pwm20_sleep: pwm20_sleep {
32+
group1 {
33+
psels = <NRF_PSEL(PWM_OUT0, 1, 7)>;
34+
low-power-enable;
35+
};
36+
};
2437
};

boards/nordic/nrf54l20pdk/nrf54l20pdk_nrf54l20_cpuapp.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ sysbuild: true
1313
ram: 512
1414
flash: 449
1515
supported:
16+
- adc
1617
- counter
1718
- gpio
1819
- i2c
20+
- pwm
1921
- watchdog

cmake/mcuboot.cmake

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2020-2023 Nordic Semiconductor ASA
1+
# Copyright (c) 2020-2025 Nordic Semiconductor ASA
22
# SPDX-License-Identifier: Apache-2.0
33

44
# This file includes extra build system logic that is enabled when
@@ -52,23 +52,8 @@ function(zephyr_mcuboot_tasks)
5252
endif()
5353
endforeach()
5454

55-
# Find imgtool. Even though west is installed, imgtool might not be.
56-
# The user may also have a custom manifest which doesn't include
57-
# MCUboot.
58-
#
59-
# Therefore, go with an explicitly installed imgtool first, falling
60-
# back on mcuboot/scripts/imgtool.py.
61-
if(IMGTOOL)
62-
set(imgtool_path "${IMGTOOL}")
63-
elseif(DEFINED ZEPHYR_MCUBOOT_MODULE_DIR)
64-
set(IMGTOOL_PY "${ZEPHYR_MCUBOOT_MODULE_DIR}/scripts/imgtool.py")
65-
if(EXISTS "${IMGTOOL_PY}")
66-
set(imgtool_path "${IMGTOOL_PY}")
67-
endif()
68-
endif()
69-
7055
# No imgtool, no signed binaries.
71-
if(NOT DEFINED imgtool_path)
56+
if(NOT DEFINED IMGTOOL)
7257
message(FATAL_ERROR "Can't sign images for MCUboot: can't find imgtool. To fix, install imgtool with pip3, or add the mcuboot repository to the west manifest and ensure it has a scripts/imgtool.py file.")
7358
return()
7459
endif()
@@ -94,7 +79,7 @@ function(zephyr_mcuboot_tasks)
9479
endif()
9580

9681
# Basic 'imgtool sign' command with known image information.
97-
set(imgtool_sign ${PYTHON_EXECUTABLE} ${imgtool_path} sign
82+
set(imgtool_sign ${PYTHON_EXECUTABLE} ${IMGTOOL} sign
9883
--version ${CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION} --header-size ${CONFIG_ROM_START_OFFSET}
9984
--slot-size ${slot_size})
10085

cmake/modules/FindHostTools.cmake

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,10 @@ find_program(OPENOCD openocd)
6161
# bossac is an optional dependency
6262
find_program(BOSSAC bossac)
6363

64-
# imgtool is an optional dependency (the build may also fall back to scripts/imgtool.py
65-
# in the mcuboot repository if that's present in some cases)
66-
find_program(IMGTOOL imgtool)
64+
# imgtool is an optional dependency (prefer the version that is in the mcuboot repository, if
65+
# present and a user has not specified a different version)
66+
zephyr_get(IMGTOOL SYSBUILD LOCAL)
67+
find_program(IMGTOOL imgtool.py HINTS ${ZEPHYR_MCUBOOT_MODULE_DIR}/scripts/ NAMES imgtool NAMES_PER_DIR)
6768

6869
# winpty is an optional dependency
6970
find_program(PTY_INTERFACE winpty)

cmake/reports/CMakeLists.txt

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ foreach(report ram_report rom_report footprint)
2929
)
3030
endforeach()
3131

32-
if (CONFIG_BUILD_WITH_TFM)
32+
if(CONFIG_BUILD_WITH_TFM)
3333
foreach(report ram_report rom_report footprint)
3434
add_custom_target(
3535
tfm_${report}
@@ -40,6 +40,7 @@ if (CONFIG_BUILD_WITH_TFM)
4040
-o ${CMAKE_BINARY_DIR}
4141
${workspace_arg}
4242
-d ${report_depth}
43+
--json tfm_${report}.json
4344
${flag_for_${report}}
4445
DEPENDS tfm
4546
USES_TERMINAL
@@ -48,22 +49,23 @@ if (CONFIG_BUILD_WITH_TFM)
4849
endforeach()
4950
endif()
5051

51-
if (CONFIG_TFM_BL2)
52+
if(CONFIG_TFM_BL2)
5253
foreach(report ram_report rom_report footprint)
53-
add_custom_target(
54-
bl2_${report}
55-
${PYTHON_EXECUTABLE}
56-
${ZEPHYR_BASE}/scripts/footprint/size_report
57-
-k $<TARGET_PROPERTY:tfm,BL2_ELF_FILE>
58-
-z ${ZEPHYR_BASE}
59-
-o ${CMAKE_BINARY_DIR}
60-
${workspace_arg}
61-
-d ${report_depth}
62-
${flag_for_${report}}
63-
DEPENDS tfm
64-
USES_TERMINAL
65-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
66-
)
54+
add_custom_target(
55+
bl2_${report}
56+
${PYTHON_EXECUTABLE}
57+
${ZEPHYR_BASE}/scripts/footprint/size_report
58+
-k $<TARGET_PROPERTY:tfm,BL2_ELF_FILE>
59+
-z ${ZEPHYR_BASE}
60+
-o ${CMAKE_BINARY_DIR}
61+
${workspace_arg}
62+
-d ${report_depth}
63+
--json bl2_${report}.json
64+
${flag_for_${report}}
65+
DEPENDS tfm
66+
USES_TERMINAL
67+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
68+
)
6769
endforeach()
6870
endif()
6971

doc/connectivity/bluetooth/api/mesh/dfu.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,9 +212,10 @@ re-provisioned. The complete list of available options is defined in :c:enum:`bt
212212
provisioning. In this case, the device stays provisioned and the new composition data takes place
213213
after re-provisioning using the Remote Provisioning models.
214214
:c:enumerator:`BT_MESH_DFU_EFFECT_UNPROV`
215-
This effect is chosen if the composition data in the new firmware changes, the device doesn't
215+
This effect is chosen if the composition data in the new firmware changes, the device does not
216216
support the remote provisioning, and the new composition data takes effect after applying the
217-
firmware.
217+
firmware. The effect can also be chosen, if it is necessary to unprovision the device for
218+
application-specific reasons.
218219

219220
When the Target node receives the Firmware Update Firmware Metadata Check message, the Firmware
220221
Update Server model calls the :c:member:`bt_mesh_dfu_srv_cb.check` callback, the application can

doc/releases/migration-guide-4.1.rst

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,21 @@ Bluetooth Mesh
305305
set as deprecated. Default option for platforms that do not support TF-M
306306
is :kconfig:option:`CONFIG_BT_MESH_USES_MBEDTLS_PSA`.
307307

308+
* Mesh key representations are not backward compatible if images are built with TinyCrypt and
309+
crypto libraries based on the PSA API. Mesh no longer stores the key values for those crypto
310+
libraries. The crypto library stores the keys in the internal trusted storage.
311+
If a provisioned device is going to update its image that was built with
312+
the :kconfig:option:`CONFIG_BT_MESH_USES_TINYCRYPT` Kconfig option set on an image
313+
that was built with :kconfig:option:`CONFIG_BT_MESH_USES_MBEDTLS_PSA` or
314+
:kconfig:option:`CONFIG_BT_MESH_USES_TFM_PSA` without erasing the persistent area,
315+
it should be unprovisioned first and reprovisioned after update again.
316+
If the image is changed over Mesh DFU, use :c:enumerator:`BT_MESH_DFU_EFFECT_UNPROV`.
317+
318+
* Mesh explicitly depends on the Secure Storage subsystem if storing into
319+
non-volatile memory (:kconfig:option:`CONFIG_BT_SETTINGS`) is enabled and
320+
Mbed TLS library (:kconfig:option:`CONFIG_BT_MESH_USES_MBEDTLS_PSA`) is used.
321+
Applications should be built with :kconfig:option:`CONFIG_SECURE_STORAGE` enabled.
322+
308323
Bluetooth Audio
309324
===============
310325

drivers/adc/adc_common.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ int adc_gain_invert(enum adc_gain gain,
1717
[ADC_GAIN_1_6] = {.mul = 6, .div = 1},
1818
[ADC_GAIN_1_5] = {.mul = 5, .div = 1},
1919
[ADC_GAIN_1_4] = {.mul = 4, .div = 1},
20+
[ADC_GAIN_2_7] = {.mul = 7, .div = 2},
2021
[ADC_GAIN_1_3] = {.mul = 3, .div = 1},
2122
[ADC_GAIN_2_5] = {.mul = 5, .div = 2},
2223
[ADC_GAIN_1_2] = {.mul = 2, .div = 1},

0 commit comments

Comments
 (0)