For every TX, the driver used to get both callbacks when
each block was trasnfered and when the entire DMA was complete.
The callback for each block isn't needed so remove it
and reduce intermediate interrupts (the more blocks in
the DMA link, the more needless intermediate interrupts we
now no longer get).
Signed-off-by: Mike J. Chen <mjchen@google.com>
Handle endpoints in halted state properly by marking endpoints as halted
when appropriate, and inhibiting transfers involving halted endpoints.
Co-authored-by: IBEN EL HADJ MESSAOUD Marwa <marwa.ibenelhadjmessaoud-ext@st.com>
Signed-off-by: Mathieu CHOPLAIN <mathieu.choplain-ext@st.com>
Since the UART API explicitly states that the poll_out function needs
to block until the character is sent, change the mechanism and add
a busy-wait loop to ensure transmission completion before proceeding.
Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
Since the symbol CONFIG_UART_ASYNC_API is shared between EUSART and USART
drivers, it creates a scenario where EUSART can have
CONFIG_UART_SILABS_USART_ASYNC=y but with no DMA device declared for it
in the DTS (because we only want async API for the USART driver).
We handled this case by disabling async transfer when the DMA
device is null, but when we activate CONFIG_PM, we have a hard fault due
to null pointer dereference in the ISR.
This bug was only discovered today when trying to enable CONFIG_PM over the
uart_async_api test, which led to a hard fault in the ISR. This occurs
because we only enable interrupts when the PM is enabled in the "poll_out"
function to put the PM lock back.
Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
Add conditional compilation guards around timeout operations in
kernel/events.c to ensure compatibility with timer-less configurations.
Signed-off-by: Mohamed Moawad <moawad@synopsys.com>
Fix dts property description of de-deassert-time for stm32-uart driver.
Old text was copy'n'pasted from de-assert-time.
Signed-off-by: Thomas Decker <decker@jb-lighting.de>
Trivial fix to the Kconfig descriptions in the cmake snippet tests so
that they match the actual snippet names.
Signed-off-by: Luca Burelli <l.burelli@arduino.cc>
Because generation and programming of UICR + PERIPHCONF artifacts
depend on the 'uicr' image which in turn must be included by Sysbuild,
many if not most nrf54h20 applications will need to be built using
Sysbuild to function as intended.
To make this known to the user, print a CMake warning whenever
CONFIG_NRF_PERIPHCONF_SECTION=y but Sysbuild is not being used.
Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
Add build system support for populating the PERIPHCONF
(global domain peripheral configuration), based on nodes and properties
found in the devicetree. This should make it so all samples and tests
that were broken by the move to IronSide SE now function correctly
without workarounds or manual steps.
When enabled, a new python script called gen_periphconf_entries.py is
run when building. The script iterates over nodes and properties in the
devicetree and generates a C file called periphconf_entries_generated.c
in the build directory, which is added as a source file. The C file
uses the macros from uicr.h to configure the global domain according
to the devicetree.
The PERIPHCONF entry generation is enabled by default when building
for nrf54h20dk/nrf54h20/cpuapp and nrf54h20dk/nrf54h20/cpurad.
It will also be used on nrf9280 soon, therefore it is placed
in the common uicr directory.
This new feature does the same job as nrf-regtool did when building
for nrf54h20 before, and is compatible by the bindings that were used
by nrf-regtool.
Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
As the linkaddr->addr is no longer a pointer, the original
assert check is not working as it should. So use the length
of the linkaddr to verify that it is > 0.
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
The max length of the dummy network interface is 6 bytes so
fix that and make sure we check the return address properly
when setting the link address.
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
DBS06 has been consistently contributing and reviewing fuel gauge
changes. Given how much additional support they have added we should add
them as a maintainer.
Signed-off-by: Aaron Massey <aaronmassey@google.com>
Several static functions in ptables.c always return 0, make them void
to improve readability.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Enable Bluetooth on xg21 radio boards. Update hal_silabs to
include binary blob for Bluetooth on xg21.
Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
Reformat devicetree files:
* Sort nodes by unit address or name
* Sort properties by category and name
Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
This change introduces a set of C preprocessor macros to determine the
maximum value from a list of 1 to 10 arguments.
The main macro `MAX_FROM_LIST(...)` dispatches to specialized `MAX_N`
macros (where N is from 1 to 10) based on the number of arguments
provided. This is achieved using a common variadic macro technique
involving a helper macro `GET_MAX_MACRO` to count the arguments and
select the appropriate implementation.
The `MAX_N` macros are defined recursively using the ternary operator
`?:` to perform comparisons.
This provides a compile-time mechanism to find the maximum value within
a small set of numbers.
Signed-off-by: Firas Sammoura <fsammoura@google.com>
A few documentation comments in os_mgmt.h were not using the proper
"javadoc-style" comments.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
New OpenThread functionalities have been enabled. Updated specific nxp-
rcp-host-wifi configuration file.
Signed-off-by: Cristian Bulacu <cristian.bulacu@nxp.com>
This commit brings new platform files:
-`border_agent`
-`udp`
-`mdns_socket`
-'trel'
This commit also makes use of existing Openthread task to
process border router messages.
Signed-off-by: Cristian Bulacu <cristian.bulacu@nxp.com>
This commit adds a work item designated for Border Router message
parsing. A generic message structure has been proposed.
If CONFIG_NET_IPV4 is enabled, border router services will start only
after an IPV4 address has been assigned on the backbone interface.
If border router is initialized before DHCPV4 client has been assigned
an address, initial mDNS IPV4 packets will be dropped, because a source
address cannot be retrieved from that specific backbone interface.
Signed-off-by: Cristian Bulacu <cristian.bulacu@nxp.com>
This allows to use different I3C clocks from bus clock.
E.g. I3C can run from HSI instead of bus clocks.
Signed-off-by: Adam BERLINGER <adam.berlinger@st.com>
Old code looks like there is relation between .pclken and
IRQ handler. This change should make it more readable.
Signed-off-by: Adam BERLINGER <adam.berlinger@st.com>
When next_ping == now, the code scheduled the workqueue for the current
time. On native_sim, this meant that the system workqueue thread was stuck
in an infinite loop because it kept processing the MQTT work over and over
again and the current timestamp could not advance anymore.
I didn't investigate why the yield inside the workqueue didn't help or why
native_sim can't advance time when one of the threads is stuck, but
changing the condition to >= inside mqtt_sn solves this issue.
I discovered this while running zephyr.exe through strace for up to 60
minutes. I guess that the performance overhead makes it more likely for the
workqueue handler to be run while next_ping == now, but I didn't verify
that, because it takes a long time to trigger the bug.
Signed-off-by: Michael Zimmermann <michael.zimmermann@sevenlab.de>
This commit updates the function to only set output-related flags
(GPIO_OUTPUT_INIT_HIGH, GPIO_OUTPUT_INIT_LOW) when the pin
is actually configured as output. For input pins, only GPIO_INPUT and
other relevant flags are set.
Signed-off-by: Khaoula Bidani <khaoula.bidani-ext@st.com>
Code coverage is currently executed and uploaded to codecov twice a day.
Now that "twister on push" also uploads stuff (test results) to codecov,
it is preferrable to have each push commit known to codecov to have both
tests and coverage results, since otherwise the "compare" feature that
allows to see the delta between two commits might not work as expected.
We do an average of ~4 merge batches per day so overhead is pretty
minimal.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
In !XIP case, provide RAM_RO and RAM_RW regions with their
respective MPU configurations.
Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
Co-authored-by: Sudan Landge <sudan.landge@arm.com>
__rom_region_size linker symbol is available for other archs, but was
missing for Cortex-M. Add it now.
Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>