The test_verify_join_leave test case was leaving a dangling multicast
address on the interface, fix it.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Make sure autoconfigured multicast IPv6 addresses are added (and thus
referenced) only once when the interface goes up to avoid mounting refs
for a given address.
Even if address is already present and net_ipv6_mld_join() is skipped
for a given address it's not an issue as all unjoined addresses have
their reports sent on interface going up via net_ipv6_mld_rejoin().
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
When allocating new multicast address, clear the is_joined flag as it
could've still be set from the previous allocation.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Add helper function that allows to rejoin multicast groups without
registering an address. This is needed in case we just want to send
report w/o increasing the ref count of the multicast address (when
interface goes up for example).
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Add helper function that allows to rejoin multicast groups without
registering an address. This is needed in case we just want to send
report w/o increasing the ref count of the multicast address (when
interface goes up for example).
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Add test case verifying that if multicast address is added multiple
times, join event is only sent on the first attempt and leave event is
only sent when the ref count drops to 0.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Add test case verifying that if multicast address is added multiple
times, join event is only sent on the first attempt and leave event is
only sent when the ref count drops to 0.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Network interface state is now checked down the line in
net_try_send_data() so a separate check in the MLD code was redudant,
hence remove it to simplify the code.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Don't send MLD report on join if the address was already joined,
only increase the ref count by calling net_if_ipv6_maddr_add().
On leave, only send report if the address was removed from the system
(i.e. is no longer in use).
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Don't send IGMP report on join if the address was already joined,
only increase the ref count by calling net_if_ipv6_maddr_add().
On leave, only send report if the address was removed from the system
(i.e. is no longer in use).
For IGMPv3 specifically, if the address with non-empty include/exclude
list was already registered, return an error as registering lists from
different sources is currently not supported.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Add ref counting for multicast addresses, so that if a multicast address
is registered from different subsystems, they won't interfere with each
other. That way, if one subsystem decides to remove a multicast address,
it won't affect other subsystems that may still need it.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Corrected the DT_INST_PROP_OR mapping for sda_hold_rx.
It was mistakenly using scl_hold_rx as the property name.
Signed-off-by: Elmo Lan <elmo_lan@realtek.com>
Several places used CONFIG_BT_TBS_MAX_PROVIDER_NAME_LENGTH
instead of
CONFIG_BT_CCP_CALL_CONTROL_SERVER_PROVIDER_NAME_MAX_LENGTH.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Modify bt_ccp_call_control_server_get_bearer_provider_name to
store the bearer provider name in an output buffer, instead of just
providing the pointer.
The reason for this is to make the result thread safe, and
avoid the user/application having a direct pointer to
internal storage.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Replace busy-wait synchronization delay with a safety window mechanism
to prevent missed alarm compares when set too close to current counter
value.
- Remove k_busy_wait(100U) after setting API compare value
- Use MINIMUM_RTCVAL/MINIMUM_APIVAL as safety window thresholds
- Trigger SW-pending interrupts for alarms within safety window
- Fix absolute alarm late-to-set detection using forward distance
- Reduce counter test iterations from 100 to 1
This ensures reliable alarm delivery without blocking delays.
Signed-off-by: Holt Sun <holt.sun@nxp.com>
This file is superfluous because it is exactly the same as the
normal bin file without the slot 1 designation, therefore exclude
it to prevent confusion to user
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Extends the UAOL API with uaol_get_mapped_hda_link_stream_id() to get
the HDA link stream ID mapped in HW to its UAOL stream ID. The streams
mapping is stored in the device tree.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
This adds a DAI driver for USB Audio Offload Link (UAOL)
individual streams on Intel ACE2.0 and ACE3.0 platforms.
Signed-off-by: Tomasz Lissowski <tomasz.lissowski@intel.com>
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
This adds a driver for USB Audio Offload Link (UAOL) IP
on Intel ACE2.0 and ACE3.0 platforms.
Signed-off-by: Tomasz Lissowski <tomasz.lissowski@intel.com>
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
Add support for ARM Cortex-R processors to the arm_interrupt test
suite by implementing an interrupt controller abstraction layer that
works with both NVIC (Cortex-M) and GIC (Cortex-R).
Key changes:
- Add interrupt controller abstraction layer with compile-time
selection between NVIC (Cortex-M) and GIC SGI (Cortex-R)
- Implement GIC Software Generated Interrupt (SGI) support for
Cortex-R using gic_raise_sgi() with IRQ IDs 0-15
- Add flag-based control to handle GIC SGI's synchronous behavior
vs NVIC's asynchronous pending model during IRQ selection
- Wrap Cortex-M-specific tests (ESF collection, spurious IRQ) with
appropriate CONFIG_ARMV6_M_ARMV8_M_BASELINE/
CONFIG_ARMV7_M_ARMV8_M_MAINLINE conditionals
- Add Cortex-R-specific memory barriers and processing delays to
accommodate immediate SGI delivery
- Update testcase.yaml filter to include CONFIG_ARMV7_R
The test now passes successfully on both Cortex-M (qemu_cortex_m3)
and Cortex-R5 (versal_rpu) platforms, with intentional fault
triggering working correctly on both architectures.
Tested-on: versal_rpu, qemu_cortex_m3
Signed-off-by: Appana Durga Kedareswara rao <appana.durga.kedareswara.rao@amd.com>
The previous FAULTY_ADDRESS (0xBFFFFFFF) for CONFIG_BOARD_VERSAL_RPU
caused a Synchronous External Abort (bus error) on physical hardware
when accessing peripheral address space, instead of the expected MPU
fault. This resulted in test_string_nlen failure with a CPU exception.
Change FAULTY_ADDRESS to 0x3FFFFFFF, which points to unmapped address
space below 1GB. This address triggers a clean MPU violation on both
QEMU and real Versal RPU hardware, allowing the test to properly
validate syscall parameter checking.
The address 0xBFFFFFFF works in QEMU emulation but maps to peripheral
space on actual Versal hardware, causing a bus-level abort rather than
an MPU permission fault.
Fixes test_string_nlen on physical Versal RPU boards.
Signed-off-by: Appana Durga Kedareswara rao <appana.durga.kedareswara.rao@amd.com>
Extend the QEMU timing instability workaround to include AMD Versal
RPU platform. The Xilinx QEMU emulation used for both ZynqMP and
Versal platforms exhibits timing instability that causes the sleep
test to occasionally fail with tick counts slightly over the expected
value (e.g., 1002 ticks instead of 1000).
Increase TICK_MARGIN to 5 for Versal RPU to match the existing
ZynqMP configuration, allowing the test to pass reliably on QEMU
while maintaining strict timing requirements on real hardware.
Signed-off-by: Appana Durga Kedareswara rao <appana.durga.kedareswara.rao@amd.com>
Add generic board support for the AMD Versal RPU platform. This enables
basic application development on Versal RPU cores using standard board
configuration.
Includes board definition files, defconfig, and device tree integration
for the Versal RPU board.
Signed-off-by: Appana Durga Kedareswara rao <appana.durga.kedareswara.rao@amd.com>
Implement comprehensive Memory Protection Unit (MPU) support for
Xilinx Versal RPU with the following enhancements:
MPU Region Configuration:
- Add arm_mpu_regions.c with MPU region definitions supporting
multiple memory layouts:
* TCM-only layout
* Contiguous DDR layout
* Non-contiguous DDR layout for Linux shared memory scenarios
- Configure memory regions for PL, PS peripherals, and DDR with
appropriate memory attributes (Normal, Device, Strongly-ordered)
SoC Initialization:
- Add soc_early_init_hook() for instruction and data cache
enablement during early boot
Signed-off-by: Appana Durga Kedareswara rao <appana.durga.kedareswara.rao@amd.com>
Remove the unused CRL_RST_TTC register address definition from soc.h.
This macro is not referenced anywhere in the codebase.
Signed-off-by: Appana Durga Kedareswara rao <appana.durga.kedareswara.rao@amd.com>
Currently the other of the ACL and CIS disconnect callbacks
depend on the order of the HCI events received. Since this
order is not specified by the core spec, it means that any
users/applications of ISO will need to wait for all CIS
disconnects callbacks and the ACL disconnect callback before
attempting to reuse any of them.
From an API perspective this is not ideal, and the API will
be much simpler if the order of ACL and ISO disconnect
callbacks were deterministic, regardless of the controller.
This change postpones the finalization of the ACL disconnect
until all the CIS associated with it has been disconnected.
This will also make the API more similar to e.g. the L2CAP
disconnect order.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
It's been observed that test_http_server_start_stop test case sometimes
fail under heavy load with ECONNREFUSED error. It's hard to reproduce,
however it could be an issue that the server thread has not enough time
to setup the server before the connection attempt. After increasing the
connect delay I was no longer able to reproduce the failure locally.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
When UART_INTERRUPT_DRIVE, PM and UART_CONSOLE_INPUT_EXPIRED are all
defined the driver uses the device flags without the necessary declaratoins
or fetching the hardware register.
Signed-off-by: Keith Packard <keithp@keithp.com>
Regroup the Kconfig.defconfig.<soc> files of various series which have
identical contents for all SoCs into the per-series root file instead
(stm32XXx/Kconfig.defconfig). This reduces the number of files and is
easier to understand.
Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
Uses relative paths for the signed images, instead of absolute
paths, to allow transferring test files to other machines
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Support gathering multiple message buffers into a single write
transaction, and scattering read data from a single transaction
to multiple message buffers.
This is required for the i2c_burst_write() API to function as
expected.
The implementation uses a driver-internal buffer whose size is
configurable through the `zephyr,concat-buf-size` devicetree
property for similarity with other I2C drivers in the tree.
Gather write is implemented for both interrupt and DMA based
transfers, while scatter read is only implemented for interrupt
based transfers at this time. In the future, DMA based gather
write should be delegated to the DMA engine to perform
autonomously without needing a temporary buffer.
Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
I2C_MSG_WRITE is not a bit in `flags`, it's a value of `0`, meaning
the condition is always true. Check for the absence of READ instead,
to avoid mistaking read-read transactions as write-read ones.
Combined write-read transactions should only happen if the RESTART
flag is set on the read message, so check for that too.
Finally, the message index was incremented by one too much for
interrupt-based transfers, causing the next message after a write-read
transaction to be dropped.
Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
Consistently make use of silabs,series2-hwinfo compatible in
Series 2 .dtsi files. The compatible is not directly used to
select the hwinfo driver, but change it for consistency.
Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>