Skip to content

Conversation

@bjarki-andreasen
Copy link
Contributor

Cherry pick changes needed for building with nothreading and no sw isr table

nordic-krch and others added 30 commits August 1, 2025 11:33
Add new feature flags to gpiote node.
Include pinctrl. Pins used by GPIOTE0 on nrf54h20/cpurad require CTRLSEL
configuration. Pins are listed using pinctrl and parsed by nrf-regtool
to prepare UICR configuration.

Upstream PR #: 91041

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 36cd63b)
Add NRFX_GPIOTE_VAR_FEATURE_SUPPORT feature flag to nrfx configuration.
It enables support for special GPIOTE0 instance in nrfx_gpiote driver.

Upstream PR #: 91041

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit eb6005c)
Add support for special GPIOTE0 instance on nrf54h20/cpurad.
This instance requires special handling because:
- there is no support for PORT event (level interrupts)
- TE channels are fixed to the pin

Upstream PR #: 91041

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 2892fc1)
Add return code checking for gpio_pin_interrupt_configure functions.
Add disabling pin interrupt at the end of the test to restore pin
state.

Upstream PR #: 91041

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 9c8cd59)
…PIOTE0 config

Add configuration for testing GPIOTE0 instance on nrf54h20/cpurad.

Upstream PR #: 91041

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 68375c0)
…perty

Add build asserts for "memory-regions" property in nrf drivers which is
required on targets with DMM for saadc, pdm, pwm, twim, twim_rtio, twis,
tdm, uarte, spim and spis. On targets where the property is not required
the assertion macro expands to nothing.

Signed-off-by: Michał Bainczyk <[email protected]>
(cherry picked from commit 2e06c4e)
…s prop to uart sample

Add missing "memory-regions" property which is required for UART
on NRF54H20 to clock_control sample overlay file.

Signed-off-by: Michał Bainczyk <[email protected]>
(cherry picked from commit ba3662a)
Timer property indicates which TIMER instance should be used for
byte counting. If timer property is present then given instance
is using TIMER to count received bytes.

Upstream PR #: 92767

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit af01bda)
Add reporting about the test progress. Test lasts few seconds and
progress report helps to see if test stuck or how it is progressing.

Upstream PR #: 92767

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 27a2339)
Extend test with a mode where HWFC is off and receiver is providing
buffers on time. In that case receiver should be able to continuously
receive data without losing any byte (even without HWFC). Additionally,
TX data is chopped to verify that receiver does not loose bytes when
new TX data collides with detected RX timeout.

Upstream PR #: 92767

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 82a8a54)
… for nrf54l

Add timer property to the uart device under test.
Add zephyr,pm-device-runtime-auto to the uart device under test.

Upstream PR #: 92767

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 2e28af3)
…nfiguration

Add workaround timer to instances that are used for reception in the
test.

Upstream PR #: 92767

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit a11529b)
…andling

Stress test is executed on CPUs with slow clock (16MHz). Handling of test
data in UART_RX_RDY event is optimized to reduce time spent in the
interrupt context. Since payload is always a decrementing sequence, fixed
array is used to compare memory which allows to use standard memcmp
instead of byte by byte comparison.

Upstream PR #: 92767

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 0afbbc7)
Rearrange code to prepare for upcoming extension that adds special
receive mode.

Upstream PR #: 92767

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit e5003ae)
…counting

Add mode to be used on UARTE with frame timeout which is using a bounce
buffers and TIMER to count bytes. This mode shall be used to reliably
receive data without HWFC as frame timeout approach is not 100% reliable
because it can loose or corrupt a byte when new byte arrives after
frame timeout is detected but before it is fully handled. This mode is
similar to the one enabled with CONFIG_UART_x_NRF_HW_ASYNC but
additional bounce buffers are used and UARTE is receiving data to
internal buffers and copies data to the user buffer. Legacy apporach
cannot be used because in new SoC DMA attempts to copy data in words
so when byte is received it stays in the DMA internal buffer until
4 bytes are received or end of transfer happens then internal DMA
buffer is flushed.

Upstream PR #: 92767

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit a07f73b)
…/O mode

Test external MSPI flash in single I/O mode

Signed-off-by: Bartosz Miller <[email protected]>
(cherry picked from commit b78be6b)
…t for nrf54l15dk

Add a testcase for nrf54l15dk with sense edge to gpio_basic_api
test.

Upstream PR #: 93717

Signed-off-by: Michał Bainczyk <[email protected]>
(cherry picked from commit b5b58e3)
Fixes the NVM size going beyond what the chip supports

Signed-off-by: Jamie McCrae <[email protected]>
(cherry picked from commit 0f0c80e)
…titioning file

Adds a common vendor dts file specifying the default partition
layout for nRF54L10-based cpuapp board targets and updates boards
to use this common file. This also drops the secure/non-secure split
in the partitioning as this was reducing NVM storage that is not
used by this board target and fixes the wrong flash field in
twister yaml files

Signed-off-by: Jamie McCrae <[email protected]>
(cherry picked from commit 9dc6040)
… partitions

Adds a workaround for partitions on nrf54l10 non-secure devices to
prevent build issues, this needs to be fixed properly when a TF-M
update is done which sets the partition sizes properly

Signed-off-by: Jamie McCrae <[email protected]>
(cherry picked from commit 002838a)
…titioning file

Adds a common vendor dts file specifying the default partition
layout for nRF54L15-based cpuapp board targets and updates boards
to use this common file. This also drops the secure/non-secure split
in the partitioning as this was reducing NVM storage that is not
used by this board target and fixes the wrong flash field in
twister yaml files

Signed-off-by: Jamie McCrae <[email protected]>
(cherry picked from commit 124a803)
…partitioning file

Adds a common vendor dts file specifying the default partition
layout for nRF54L15-based cpuapp_ns board targets and updates boards
to use this common file.

Signed-off-by: Jamie McCrae <[email protected]>
(cherry picked from commit e542188)
…titioning file

Adds a common vendor dts file specifying the default partition
layout for nRF54L05-based cpuapp board targets and updates boards
to use this common file. This also drops the secure/non-secure split
in the partitioning as this was reducing NVM storage that is not
used by this board target and fixes the wrong flash field in
twister yaml files

Signed-off-by: Jamie McCrae <[email protected]>
(cherry picked from commit 5bc71e6)
Fixes these files to no lonegr delete non-secure partitions
as these no longer exist

Signed-off-by: Jamie McCrae <[email protected]>
(cherry picked from commit 97e5d33)
Add an nPM1304 EK shield, update samples/shields/npm1300_ek to support
both shields, improve the sample description.

Signed-off-by: Sergei Ovchinnikov <[email protected]>
(cherry picked from commit f0f2b94)
… variant

Direct variant of this test disables intermediate buffer
in the nRF SPI driver and verifies whether devices like nRF54H20,
which can peform DMA transcations only from specific memory regions,
are handled properly.

Upstream PR #: 93487

Signed-off-by: Nikodem Kastelik <[email protected]>
(cherry picked from commit bd191d8)
Bounce buffers should be freed rather than user buffers.

Upstream PR #: 93487

Signed-off-by: Nikodem Kastelik <[email protected]>
(cherry picked from commit 5769fca)
Improve corss-channel test by setting different
duty cycle on channels. This modification will enable
detection of inter-channel effects like crosstalk.

Upstream PR #: 93776

Signed-off-by: Piotr Krzyzanowski <[email protected]>
(cherry picked from commit 0878bed)
Add more channels testing nrf platforms.

Upstream PR #: 93776

Signed-off-by: Piotr Krzyzanowski <[email protected]>
(cherry picked from commit 99cbbba)
…e data

Stop processing microphone data on error or when streaming ends. This
avoids I2S read timeouts due to audio data not being available while
streaming.

Signed-off-by: Tomasz Moń <[email protected]>
(cherry picked from commit 943fc6f)
rlubos and others added 27 commits August 5, 2025 20:06
Instead of using 32 bit enum values for event numbers, convert
the code to use 64 bit long bit fields. This means that the
user API is changed to use 64 bit event values instead of 32
bit event values.

Signed-off-by: Jukka Rissanen <[email protected]>
(cherry picked from commit 5a9a39c)
Signed-off-by: Robert Lubos <[email protected]>
…t_mgmt sockets

We cannot use the network management event number directly as
a socket option value because the management value is uint64_t
and that cannot be mapped directly to 32 bit integer.
So have an intermediate socket option that is mapped to actual
network management request number in getsockopt() and setsockopt().

Signed-off-by: Jukka Rissanen <[email protected]>
(cherry picked from commit 2ed2232)
Signed-off-by: Robert Lubos <[email protected]>
…I changes

Add information how the net_mgmt request handler is changed.
The event number type is changed from uint32_t to uint64_t to allow
the event command to be a bit mask instead of enum value.

Signed-off-by: Jukka Rissanen <[email protected]>
(cherry picked from commit 6b0597f)
Signed-off-by: Robert Lubos <[email protected]>
As per API overview documentation, a braking API change must
increment major version number.

https://docs.zephyrproject.org/latest/develop/api/overview.html#api-overview

Signed-off-by: Jukka Rissanen <[email protected]>
(cherry picked from commit b1a8655)
Signed-off-by: Robert Lubos <[email protected]>
This has been missed in net_mgmt rework in commit
5a9a39c.

Signed-off-by: Robert Lubos <[email protected]>
(cherry picked from commit 3e70425)
net_event.h header makes use of macros defined in net_mgmt.h, therefore
it should include that header.

Signed-off-by: Robert Lubos <[email protected]>
(cherry picked from commit ae7d7a8)
Support to configure BSS max idle period at runtime.

Signed-off-by: Ajay Parida <[email protected]>
(cherry picked from commit c70b350)
Signed-off-by: Robert Lubos <[email protected]>
30s is too aggressive for most APs, and hostapd also uses 5mins as the
default value.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 59ff126)
Signed-off-by: Robert Lubos <[email protected]>
Add check for the RX data buffer size. It should be atleast 400 bytes,
anthing less than that scan fails.

Upstream PR #: 94106

Signed-off-by: Kapil Bhatt <[email protected]>
Updates the LE legacy pairing procedure as a result of errata ES-24491.
New part:
If the initiating device receives an LP_CONFIRM_R value that is equal to
the LP_CONFIRM_I value, the pairing process shall be aborted and fail
with "Confirm Value Failed" as reason.

Signed-off-by: Håvard Reierstad <[email protected]>
(cherry picked from commit 2a8118c)
Signed-off-by: Håvard Reierstad <[email protected]>
…d Public Key

Core Specification 6.1 clarified exptected erro code in case peer
sending invalid Public Key. In case pairing is aborted during or
immediately after Public Key Exchange phase has completed (which is
the case here) expected reason code is set to "DHKey Check Failed".

This was affecting SM/CEN/KDU/BI-04-C and SM/PER/KDU/BI-04-C
qualification test cases.

Signed-off-by: Szymon Janc <[email protected]>
(cherry picked from commit 9b27a47)
Signed-off-by: Håvard Reierstad <[email protected]>
…de-svc userdata

- Issue: There is a bus-fault while accessing empty userdata structure
  pointer if application does not include any include service
  userdata instance (which consist of UUID list of included service)
  but service array has defined dummy entry for it assumed to be
  overridden by app during initial flow.
- For example, the issue has happened in case of tmap-central sample
 without "CONFIG_BT_OTS" support. there are some MCS attributes
 dependent on OTS service because of that
 "BT_GATT_INCLUDE_SERVICE(NULL)" entry is added as part of service
 definition. The given entry does not have userdata handler defined
 and is expecting to be overriden by the app if it will be included.
 During "bt_mcs_init()" call, "mcs.attrs[i].user_data" is not
 populated with any attr-instance pointer. This makes CPU to access
 null-address during reading local-database include-service attribute
 which was not provided by the app but the include-service entry was
 added to the db.
- Fix: Adding condition to check if user-data has null address, and
 returning back to avoid any hard-faults.

Signed-off-by: Nirav Agrawal <[email protected]>
(cherry picked from commit 5a8189b)
Signed-off-by: Håvard Reierstad <[email protected]>
The implementation used BT_L2CAP_ECRED_MIN_MTU to check the lower limits
of both MTU and MPS, instead of BT_L2CAP_ECRED_MIN_MPS for MPS. While
these are the same here, confusion may arise. This commit fixes the
confusion.

Signed-off-by: Håvard Reierstad <[email protected]>
(cherry picked from commit d989188)
Signed-off-by: Håvard Reierstad <[email protected]>
Adds a missing requirement from Core Spec V6.0 Vol 3.A chapters 10.1
and 10.2 to ignore L2CAP_FLOW_CONTROL_CREDIT_IND packets with the
credit value set to 0.

Matches existing credit-related functions by checking that the CID
is in the dynamic range (you can't add credits to fixed channels).

Signed-off-by: Håvard Reierstad <[email protected]>
(cherry picked from commit 2b42a1d)
Signed-off-by: Håvard Reierstad <[email protected]>
Check whether the connection response parameters both with and without
ECRED are within the valid ranges from the Bluetooth Core Specification
(part 3.A.4 v6.0). Changes validation checks in requests to match the
same pattern.

Signed-off-by: Håvard Reierstad <[email protected]>
(cherry picked from commit 7debc8a)
Signed-off-by: Håvard Reierstad <[email protected]>
The many_conn l2cap test used a MTU lower than the minimum permitted
value. This commit bumps it to the minimum (23).

Signed-off-by: Håvard Reierstad <[email protected]>
(cherry picked from commit b799d18)
Signed-off-by: Håvard Reierstad <[email protected]>
…uicr.py

Upstream PR #: 94064

Set the VERSION field to 2.0 in gen_uicr.py to indicate the version of
the format the script produces blobs for. This is required for forwards
compatibility with newer versions of IronSide SE.

Signed-off-by: Jonathan Nilsen <[email protected]>
… width

Allowed use of counter bit width lower than hardware 24.
In that case, PPI connection is established to trigger
clear task once maximum value is reached.

Upstream PR #: 92025

Signed-off-by: Michał Stasiak <[email protected]>
…52832

Added overlay for the board.

Upstream PR #: 92025

Signed-off-by: Michał Stasiak <[email protected]>
Release instead of requesting constant latency mode
on SPI suspend.

Upstream PR #: 94153

Signed-off-by: Michał Stasiak <[email protected]>
… dependencies

Update Kconfig dependencies in mbedTLS and logging backend to use
OPENTHREAD instead of NET_L2_OPENTHREAD.

Upstream PR #: 94054

Signed-off-by: Łukasz Duda <[email protected]>
… default

External flash memory is typically not used, so it should
be disabled by default. The GPIO6 port used by this device
should also be disabled.

Upstream PR #: 94180

Signed-off-by: Adam Kondraciuk <[email protected]>
Add support for building nrf_grtc_timer using IRQ_DIRECT_CONNECT.
This allows for building the driver with no SW ISR table.

Upstream PR #: 94132

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
…nd nothreading

Default to using DIRECT_ISR if nothreading. This allows the SW ISR
table to be excluded if nothreading. This requires additional
handling in the UARTE_DIRECT_ISR_DECLARE() macro to not do any
multithreading work if CONFIG_MULTITHREADING=n

Upstream PR #: 94132

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
Currently the isr_tables.c is not included as a zephyr library,
hence it does not have --whole-archive applied to it, which
prevents the build system from preserving the unreferenced
_iheader structure which is required by gen_isr_tables.py

This commit fixes the issue for gcc, while potentially
breaking mwdt which is the reason isr_tables.c was put
into a special library in the first place.

Upstream PR #: 94132

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.