Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IPC: Unbound callback for ICMsg #2303

Draft
wants to merge 712 commits into
base: main
Choose a base branch
from

Conversation

doki-nordic
Copy link
Contributor

No description provided.

krish2718 and others added 30 commits October 25, 2024 14:23
When debug is disabled, seeing a build error for unused variable.

Upstream PR: zephyrproject-rtos/zephyr#80315

Signed-off-by: Chaitanya Tata <[email protected]>
Support Wi-Fi enterprise mode with NRF_SECURITY.

Signed-off-by: Ravi Dondaputi <[email protected]>
Enable wifi sample to connect in EAP-TLS mode. Create sample
certificates.

Signed-off-by: Ravi Dondaputi <[email protected]>
This brings in PSA Kconfig and CMakelist.txt changes to NCS.
Currently, it contains known PSA configurations and source files
that are needed or will be needed in the future. WPA3 and
Enterprise is currently disabled with this setting.

Signed-off-by: Vivekananda Uppunda <[email protected]>
Signed-off-by: Chaitanya Tata <[email protected]>
Make sure Wi-Fi driver is enabled when sysbuild is used. For shields we
cannot automate this, as sysbuild doesn't recognize shields, so, Wi-Fi
has to be explicitly enabled, this is done for twister.

Signed-off-by: Chaitanya Tata <[email protected]>
Build throw macro redefined error as it's already defined by the nRF
security module.

Signed-off-by: Chaitanya Tata <[email protected]>
The file has been removed upstream, but as upstream doesn't have NS
support, this need to be fixed explicitly.

Upstream PR: zephyrproject-rtos/zephyr#79606

Signed-off-by: Chaitanya Tata <[email protected]>
NS builds need to use PSA for entropy same as 54L.

Signed-off-by: Chaitanya Tata <[email protected]>
Upstream certificates are RSA3K + Suite-B, they are not support yet on
nRF boards, so, generate a new certificate for both phase1 and phase2
and use them.

Signed-off-by: Chaitanya Tata <[email protected]>
Signed-off-by: Ravi Dondaputi <[email protected]>
For 54H Legacy mode is broken, so, enable PSA at the cost of supporting
WPA2 only.

Signed-off-by: Chaitanya Tata <[email protected]>
The details of how the ICBMsg communication is done, are hidden
inside the source code. This specification adds details about
the ICBMsg protocol.

Signed-off-by: Dominik Kilian <[email protected]>

(cherry picked from commit 8d99393)
The details of how the ICMsg communication is done, are hidden
inside the source code. This specification adds details about
the ICBMsg protocol.

Signed-off-by: Dominik Kilian <[email protected]>

(cherry picked from commit 7574602)
… structure

Split async control block structure into tx and rx structures.

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

Add property which indicates that UARTE support frame timeout
feature. Property is added to nrf54h20, nrf9280, nrf54l20 and
nrf54l15.

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

This is a leftover from pre-pinctrl era and no longer makes sense.
Driver always manages gpio through pinctrl.

Support removed from uart and uarte shims.

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

Remove Kconfig option that no longer has any use after pinctrl
driver is introduced.

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

Add note that those Kconfig options were removed from Nordic UART driver
configuration.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 3a4c5a9)
Use nrfx_gppi as abstraction over (D)PPI.

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

Refactor RX asynchronous API function to use a pointer to the RX
async data structure instead of top level data structure pointer.
It improves readability with more concise code.

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

Rework driver to support new way of asynchronous RX handling.
Previously RX was handled in two modes: using RXDRDY interrupt for byte
counting or TIMER + PPI. Both modes had flaws. RXDRDY interrupt mode
could miscalculated amount of received bytes when interrupt was not
handled on time. Data was not lost but was not reported on time that
could lead to issues. PPI+TIMER mode requires additional resources
thus it was not the default mode. Often user was not aware of that
option and was expiriencing driver RX faults.

New RX mode is switching buffers when there is new data (RXDRDY event
not set for given amount of time). It does not require additional
resources to get precise byte counting. Additionally, this is in line
with new UARTE feature (RX frame timeout) which is present in nRF54X
devices. The behavior of the driver is the same for legacy devices
and new one. For legacy devices k_timer periodic interrupts are used
to check if there are any new bytes and it is not needed when RX frame
timeout is present.

Improved RX mode is enabled by default
(CONFIG_UART_NRFX_UARTE_ENHANCED_RX=y) but legacy modes are still
available though not recommended to be used.

Note that new RX mode (CONFIG_UART_NRFX_UARTE_ENHANCED_RX=y) behaves
a bit different because timeout always triggers switch of buffers
which means that there will be no UART_RX_RDY events with non-zero
offset. It also means that every UART_RX_RDY will be followed by
UART_RX_BUF_RELEASED.

After rework, driver is recommended to be used for all platforms as it
performs much better and takes much less code than the second UART shim
available for Nordic devices.

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

Frame timeout is a hardware feature present in newer versions
of UARTE (e.g. in NRF54X platforms) for detecting idle state
on RX line and ending RX after configurable timeout.

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

Add support for DMM which manages cache and dedicated memory spaces.
Added support for data cache for buffers which are not DMM managed.

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

Add configurable magic byte instead of fixed 0xAA. In some cases, it
is known that certain bytes are less likely in the transmission and
picking specific magic byte may reduce probability of failure of
detection of the correct amount of flushed data.

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

On uart120 BAUDRATE register is not retained when ENABLE=0 and
because of that BAUDRATE must be set after enabling. Add workaround
to the driver.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 5eaafba)
Add lock to fix race when uart_rx_disable is interrupted by RXTO
event which lead to driver state corruption.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 317de0c)
Add include path to nordic/soc/nordic/common where some internal
headers for nordic devices are kept (e.g. dmm.h).

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

One of the test case is performing long transfers using 1k buffers.
For some targets there may be not enough RAM to perform such
transfers. Make long buffer length configurable.

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

nrf54h20dk_nrf54h20_cpurad by default has less RAM dedicated for
DMA transfers and default 1k buffer cannot be used for
uart_async_long_buf case. Use custom value.

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

Add overlay for nrf54l15dk/nrf54l15/cpuapp target.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit a04c1db)
A code ifdefed by UARTE_BAUDRATE_RETENTION_WORKAROUND was missing a
closing bracket. It was missed because CI did not compile any target
that is applying this workaround and enables code compilation.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit a98bde9)
nordic-piks and others added 14 commits November 15, 2024 09:05
To properly execute erase, recover and reset.

Upstream PR #: 81420

Signed-off-by: Piotr Kosycarz <[email protected]>
Uses a temporary file for dts output then uses CMake to copy to the
correct file if it has changed. This prevents a ping-pong issue when
sysbuild is used of configuring and building cycle when nothing has
changed and there is sysbuild code which loads in the devicetree
data from an image

Upstream PR #: 81340

Signed-off-by: Jamie McCrae <[email protected]>
doki-nordic and others added 4 commits November 28, 2024 15:10
Implementation of the test that focuses on session management in IPC.
Mainly restoring connections after disconnection.

Signed-off-by: Radoslaw Koppel <[email protected]>
Add assertions to test if handshake location is set when it is going to be used.

Signed-off-by: Radosław Koppel <[email protected]>
Implemenation of the test between cpuapp and cpurad cores.

Signed-off-by: Radosław Koppel <[email protected]>
Add tests for transfers that would overflow the buffer.

Signed-off-by: Radosław Koppel <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.