Commit Graph

123 Commits

Author SHA1 Message Date
Krzysztof Chruscinski
53ef1eb137 tests: drivers: uart: uart_async_api: Move rx abort to timeout
Intention of the test is to abort rx few bytes after start of
transmission (before it is completed). Previously, thread was busy
waiting after start of TX and aborted RX from that context. However,
it may happen that CPU is busy handling UART transfer and
k_busy_wait prolongs beyond full transfer which results in test
failure.

Move rx_abort to k_timer timeout which is run in interrupt
context.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-03-07 10:46:48 +01:00
Carles Cufi
4b8f1c04ab kconfig: Rename the ZTEST stack size option to align with the rest
All stack sizes should end with STACK_SIZE.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2022-02-22 08:23:05 -05:00
Andrzej Głąbek
18fc88da50 tests: uart_async_api: Add multiple_rx_enable test case
Add a test case that ensures that uart_rx_enable() can be successfully
called after RX is disabled with uart_rx_disable() and also when it is
disabled automatically after the provided RX buffer is filled up.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2022-02-05 06:25:46 -05:00
Krzysztof Chruscinski
875ec0a0cb tests: drivers: uart: mix_poll: Test const buffers
Modifications to use RO buffer in the test. Added configuration
which is using RO buffer for uart_tx.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-02-02 12:47:46 +01:00
Krzysztof Chruscinski
bdabf1eee9 tests: drivers: uart: async_api: Test const buffers
Small modifications to use RO buffer in the test.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-02-02 12:47:46 +01:00
Krzysztof Chruscinski
9b22393b7e tests: drivers: uart: Add test for Nordic UARTE version of the driver
Add configuration of the uart_async_api test to use uarte peripheral.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-02-02 12:47:46 +01:00
Francois Ramu
0434c1fcb8 tests: drivers: uart async on stm32h743 nucleo board
connect USART2 D53 / TX (pd5) to D52 / RX (pd6)
on the ARDuino connector CN9 of the nucleo board

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2022-01-11 11:49:23 +01:00
Francois Ramu
433424d1ca tests: drivers: uart async on stm32wl55jc nucleo board
connect USART1 D1 / TX (pb6) to D0 / RX (pb7)
on the ARDuino connector CN9 of the nucleo board

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2022-01-04 09:12:32 -05:00
Gerard Marull-Paretas
4b9c3d7134 boards: arm: stm32: add pinctrl state name for UART peripheral
Add the pinctrl state name (default) for the UART/USART/LPUART
peripherals. Changes performed using the following Python script run
from the repository root:

```
from pathlib import Path
import re

for fpath in Path(".").glob("boards/arm/**/*.dts"):
    lines = open(fpath).readlines()

    is_stm32 = False
    for line in lines:
        if "stm32" in line:
            is_stm32 = True
            break

    if not is_stm32:
        continue

    with open(fpath, "w") as f:
        for line in lines:
            f.write(line)

            m = re.match(r"(\s+)pinctrl-0.*us?art.*", line)
            if m:
                f.write(m.group(1) + "pinctrl-names = \"default\";\n")
```

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-11-26 11:36:42 +01:00
Flavio Ceolin
6451626ce7 pm: Use pm_device_action_run instead of state_set
Since drivers implement a callback based on action and not the state,
we should be using the API based on the action instead of the one based
on the state.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2021-11-24 14:21:50 -05:00
Johann Fischer
c77903996b tests: remove usage of CONFIG_USB_UART_CONSOLE
Remove option CONFIG_USB_UART_CONSOLE where it has no influence
or enable CONFIG_SHELL_BACKEND_SERIAL_CHECK_DTR without taking
a detour through CONFIG_USB_UART_CONSOLE.

Check the compatibility of chosen property instead
of usage of CONFIG_USB_UART_CONSOLE option.
Align how to wait for the readiness of CDC ACM UART.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-11-18 14:29:18 +01:00
Krzysztof Chruscinski
c590b3545a drivers: serial: Use microseconds to represent timeout
Updated uart_rx_enable() and uart_tx() to use timeout given
in microseconds. Previously argument was given in milliseconds.
However, there are cases when milliseconds granularity is not
enough and can significantly reduce a throughput, e.g. 1ms is
100 bytes at 1Mb.

Updated 4 drivers which implement asynchronous API. Updated
places where API was used.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2021-10-12 12:26:56 +02:00
Ron Smith
9fa1f6edca tests: uart_async_api: Correct DMA channels on atsamr21_xpro board
This commit corrects the DMA channels for the asynchronous
UART API testing support on the SAM R21 Xplained Pro board.

Signed-off-by: Ron Smith <rockyowl171@gmail.com>
2021-09-19 19:31:25 -04:00
Erwan Gouriou
eb31ffe852 tests/drivers/uart: async_api: Enable test on nucleo_f103rb
Add the few bits missing to run the test.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2021-09-16 13:19:19 -04:00
Francois Ramu
75c76fef36 tests: drivers: uart async with DMA on stm32fx nucleo144 boards
It enables the usart6 to run the testcase with a DMA
tests/drivers/uart/uart_async_api. DMA2 (of type V1)
is configured on channel 5 (request) streams 7 & 2.
USART Tx and Rx PG14 - PG9 pins (14 & 16 of CN10)
are connected to PASS the test.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-08-26 06:56:49 -04:00
Johann Fischer
97ffcc8a7a tests: uart_basic_api: add support for CDC ACM UART
Add support for CDC ACM UART.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-08-23 18:53:47 -04:00
Johann Fischer
dd465c48cb tests: uart_basic_api: allow USB workqueue/thread to work
Allow UART driver that offload interrupt processing
to workuqueue, like CDC ACM UART to work.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-08-23 18:53:47 -04:00
Johann Fischer
d6ca3fd4da tests: uart: remove CONFIG_UART_CONSOLE_ON_DEV_NAME usage
Use DT_CHOSEN(zephyr_console) instead of
CONFIG_UART_CONSOLE_ON_DEV_NAME Kconfig option.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-08-23 18:53:47 -04:00
Francois Ramu
6b6aa2714f soc: arm: stm32h7 do not use data cache with DMA
This remove the data cache when the dma is nabled
This is done with the NOCACHE_MEMORY flag

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-08-20 06:28:32 -04:00
Francois Ramu
92a6568d63 tests: drivers: uart stm32 run uart_async_api on stm32h723
This sets the dts of DMA for using pn the uart 2 i.
The stm32h723 has a DMAMUX and request are 44 and 43 for usart2
The Tx&Rx pins PD5 and PD6 of the usart2 are connected
on the nucleo_h723zg board to pass the test

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-08-20 06:28:32 -04:00
Torsten Rasmussen
1cccc8a8fe cmake: increase minimal required version to 3.20.0
Move to CMake 3.20.0.

At the Toolchain WG it was decided to move to CMake 3.20.0.

The main reason for increasing CMake version is better toolchain
support.

Better toolchain support is added in the following CMake versions:
- armclang, CMake 3.15
- Intel oneAPI, CMake 3.20
- IAR, CMake 3.15 and 3.20

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-08-20 09:47:34 +02:00
Francois Ramu
3aa14676db tests: drivers: uart async test on the stm32l152re nucleo
Add configuration for testing the usart3 through the dma1
on the nucleo_l152re target.This test requires the Tx pin
to be connected to the RX pin on the board.
Pin definition is added for this usart instance.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-08-16 19:35:36 +02:00
Gerard Marull-Paretas
d41dadc569 pm: rename PM_DEVICE_STATE_SUSPEND to PM_DEVICE_STATE_SUSPENDED
The verb tense for the suspended state was not consistent with other
states. The likely reason: state was being used as a command/action.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-08-04 08:23:01 -04:00
Gerard Marull-Paretas
56a35e5682 pm: converge to suspend state for low power modes
The difference between low power and suspend states is a thin blur line
that is is not clear and most drivers have used indistinctly. This patch
converges to the usage of the suspend state for low power, since
contrary to the low power state, it is used by both system and runtime
device PM. The low power state is still kept, but its future is unclear
and needs some discussion.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-08-04 08:23:01 -04:00
Francois Ramu
9f840b8c75 tests: uart: uart async test running on the stm32l5xx boards
add support of the dma  (V2bis) for the stm32l5 for uart transfers.
on all available target boards

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-07-22 04:52:53 -04:00
Francois Ramu
bd9182887a tests: drivers: uart asynch test with overlay for each stm32 board
Based on the new bindings for the stm32 dma feature,
the overlay for enabling the dma on uart client is modified.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-07-22 04:52:53 -04:00
Gerard Marull-Paretas
26ad8376bd pm: remove callback from control function
The callback is not used anymore, so just delete it from the pm_control
callback signature.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-13 09:36:45 -04:00
Krishna Mohan Dani
728ff9d267 tests/drivers: nucleo_l552ze_q: uart_async_api test
This commit configures usart3 to use dma in uart_async_api test
on nucleo_l552ze_q platform.

Signed-off-by: Krishna Mohan Dani <krishnamohan.d@hcl.com>
2021-07-10 12:43:19 -04:00
Krishna Mohan Dani
ae085082d1 tests/drivers: stm32l562e_dk: uart_async_api test
This commit configures usart3 to use dma in uart_async_api test
on stm32l562e_dk platform. Short pin2(PC10) & pin 3 (PC11) of usart3
in CN4 connector on stm32l562e_dk platform.

Signed-off-by: Krishna Mohan Dani <krishnamohan.d@hcl.com>
2021-07-10 12:43:19 -04:00
Gerard Marull-Paretas
cc2f0e9c08 pm: use enum for device PM states
Move all PM_DEVICE_STATE_* definitions to an enum. The
PM_DEVICE_STATE_SET and PM_DEVICE_STATE_GET definitions have been kept
out of the enum since they do not represent any state. However, their
name has not been changed since they will be removed soon.

All drivers and tests have been adjusted accordingly.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-07 14:13:12 -04:00
Hake Huang
622a8e8256 usrt: basic_test: NOSYS return update for cases
NOSYS represent not support, so update case check

Signed-off-by: Hake Huang <hake.huang@oss.nxp.com>
2021-06-11 17:39:42 +02:00
Krzysztof Chruscinski
eb949d01d3 tests: drivers: uart: Add test for uart power management
Added test which validates that uart device correctly handles
going to and from low power state.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2021-05-21 04:53:19 -05:00
Thomas Stranger
edca247dbd tests: uart_async_api: add nucleo_g474re board
Adds nucleo_g474re board to the uart_async_api test.

Signed-off-by: Thomas Stranger <thomas.stranger@outlook.com>
2021-05-06 09:28:33 -05:00
Thomas Stranger
4cce172f27 tests: uart_async_api: add nucleo_g071rb board
Adds nucleo_g071rb board to the uart_async_api test.
Therefore additionally add usart1 in board definitions.

Signed-off-by: Thomas Stranger <thomas.stranger@outlook.com>
2021-04-26 14:16:03 -04:00
Gustavo Romero
34ca6d25bc tests: Add test to check uart_irq_is_pending
Add test to check if uart_irq_is_pending() correctly returns 0 (meaning
there are no more RX and TX pending interrupts) when all RX and TX data
is processed.

Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
2021-03-26 08:39:33 -04:00
Kumar Gala
f4c5bdf008 tests: uart_async_api: exclude atmel sam0 boards
The SAM0 uart driver requires dma configured for async support and
the uart async support assumes all UARTs support async.  None of the
atmel SAM0 boards are configured this way and thus the tests will
not currently build for these boards.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-03-16 17:01:15 -05:00
Krzysztof Chruscinski
e82f79ffbe tests: drivers: uart: uart_mix_fifo_poll: Add low power configuration
Added low power configuration to testcase.yaml. In this mode
UARTE is disabled when RX and TX is not used.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2021-03-08 12:51:50 +01:00
Krzysztof Chruscinski
614e14c629 tests: drivers: uart: uart_mix_fifo_poll: Randomize test
Add random back-off periods between calls to uart.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2021-03-08 12:51:50 +01:00
Francois Ramu
ef148f5385 tests: drivers: uart stm32 run uart_async api on l475 disco
This sets the dts of dma for using the uart asynch api.
The stm32l475 has a dmamux with request 2 for Tx/Rx usart4
The Tx&Rx pins (PA0, PA1) of the usart4 are connected
on the disco_l475_iot1 board to pass the test.


Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-03-04 12:58:50 +01:00
Kumar Gala
a27751eca5 tests: uart_basic_api: set integration_platforms to mps2_an385
Set integration_platforms on these tests to just mps2_an385.  This
should be sufficient to make sure these tests build and run.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-03-03 09:19:24 -06:00
Anas Nashif
0426a5a682 drivers: edac: CONFIG_LOG_MINIMAL -> CONFIG_LOG_MODE_MINIMAL
CONFIG_LOG_MINIMAL is promptless, use CONFIG_LOG_MODE_MINIMAL.

Fixes build failure in test.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-01-26 09:06:55 -05:00
Shlomi Vaknin
d69b4012b3 tests: uart_async_api: Support nucleo_l4r5zi board
This commit adds the asynchronous UART API testing support on the
nucleo_l4r5zi board.

The usart3 module is used as the secondary loop-back UART, which is
required to run this test.

Signed-off-by: Shlomi Vaknin <shlomi.39sd@gmail.com>
2021-01-18 19:07:29 +01:00
Shlomi Vaknin
13a8d1c1c2 tests: uart_async_api: flush reception in read_abort
After finish transmitting some bytes might be in the
peripheral receive register, since the transmition
is still happening after reception disabled.
This patch ensures that the peripheral has no
bytes in its internal state.

Signed-off-by: Shlomi Vaknin <shlomi.39sd@gmail.com>
2021-01-18 19:07:29 +01:00
Krzysztof Chruscinski
96c027a02b tests: drivers: uart: Add gpio_loopback harness to test config
Added gpio_loopback to indicate that test requires pins to be
shorten. This allows to filter out tests on setup which does
not have pin setup.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2021-01-10 15:38:21 -05:00
Andrzej Głąbek
0ff24a3751 tests: uart_async_api: Catch extra RX_RDY events in test_single_read
Extend the test_single_read test case to catch RX_RDY events that are
not expected to appear.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2020-10-21 17:55:18 +02:00
Krzysztof Chruscinski
00edf738c5 tests: drivers: uart: Add test suite for preemption resilience
Added test which is calling uart_poll_out from various contexts and
asynchronous/interrupt driven API. Test is validating that calls
can be preempted at any moment and no data is lost.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2020-10-14 14:06:25 +02:00
Peter Bigot
4a0a196f57 tests: uart_async_api: fix fault accessing cached device pointer
The cached device pointer must be placed in memory that allows user
mode invocation of the test functions to access it.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2020-10-13 20:01:08 +02:00
Jordan Yates
c4d0c1ee90 tests: uart_async_api: build segger rtt driver
Add a build only test to validate correct compilation of the uart_rtt
driver. No harness that connects to RTT is defined, and therefore the
test can't be run by CI.

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
2020-09-03 21:51:28 +02:00
Tomasz Bursztyka
26cbd6a58c tests: uart_asyn: Simplify how the UART device is provided
Just get it once as device_get_binding() is a bit greedy.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2020-09-02 13:48:13 +02:00
Tomasz Bursztyka
e18fcbba5a device: Const-ify all device driver instance pointers
Now that device_api attribute is unmodified at runtime, as well as all
the other attributes, it is possible to switch all device driver
instance to be constant.

A coccinelle rule is used for this:

@r_const_dev_1
  disable optional_qualifier
@
@@
-struct device *
+const struct device *

@r_const_dev_2
 disable optional_qualifier
@
@@
-struct device * const
+const struct device *

Fixes #27399

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2020-09-02 13:48:13 +02:00