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

soc: Adding nRF54L20 support #2000

Open
wants to merge 664 commits into
base: main
Choose a base branch
from

Conversation

kl-cruz
Copy link
Contributor

@kl-cruz kl-cruz commented Sep 4, 2024

konradderda and others added 30 commits August 1, 2024 10:03
…LL address

While routing between interfaces source Link-Local L2 address is set
for a packet. However, it should not be done for some of the interfaces.

This commit adds helper function to check this condition in runtime.

Signed-off-by: Konrad Derda <[email protected]>
(cherry picked from commit 4e7bf28)
…r check

The condition was the inverse of what it should have been, leading to an
inevitable NULL pointer dereference later.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit 641b77b)
The driver isn't currently buildable due to "west blobs" support never
having been added for hal_telink. Furthermore, even if the blob
dependency is manually made available it turns out the code has
bitrotten to the point where it doesn't build anymore. This situation
has continued for several years without anyone taking action, so I think
it's safe to assume this is unmaintained and should be removed.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit f48a57b)
…CI drivers

Add a base binding for Bluetooth HCI drivers. All HCI drivers should
extend this binding (through an include directive) to create their own
binding files.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit 8ae074e)
Add the initial HCI driver header file and driver API definition. This
is distinct from drivers/bluetooth/hci_driver.h in order to support
legacy (unconverted) drivers for the time being.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit 7fb39a6)
Add support for HCI drivers which use the newly defined HCI driver API.
Since Zephyr (currently) only supports a single HCI driver instance,
boards are expected to indicate the instance using a new devicetree
chosen property `zephyr,bt_hci`.

In order to maintain compatibility with not-yet-converted drivers the
code has been placed behind `#if DT_HAS_CHOSEN(zephyr_bt_hci)`
conditionals.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit dcff0be)
…w API

Convert the H4 driver to the new HCI driver API. This includes updating
also any boards that use the driver, i.e. adding the appropriate
devicetree node and chosen property to them.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit 3482a3b)
Update the native controller to the new HCI driver API. The devicetree
node is placed under existing `radio` nodes, which seemed like the most
intuitive option.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit 44e0f5f)
This is a long-term noup patch because crypto driver support is
NCS-only for both cryptocell and CRACEN.

Set HAS_HW_NRF_CC3XX to be defined in NS build when cryptocell
is accessed through the PSA API.
We need to know which CC3XX features are available.

Set PSA as the entropy source for 54L.

PSA is the only NCS-supported interface to CRACEN.

Signed-off-by: Georgios Vasilakis <[email protected]>
Signed-off-by: Joakim Andersson <[email protected]>
Signed-off-by: Dominik Ermel <[email protected]>
Signed-off-by: Sebastian Bøe <[email protected]>
Signed-off-by: Robert Lubos <[email protected]>
Signed-off-by: Rubin Gerritsen <[email protected]>
…ependency

Apps shouldn't try to call bt_recv() since that's not a public API and
is going completely away with the new HCI driver API. Just inject the
buffer directly into the k_fifo which we anyway have access to in this
app.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit 7a4cd81)
… hci_types.h

Use existing defines instead of redefining our own.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit f8befbd)
Convert the H:5 HCI driver to use the new HCI driver API.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit 00d6633)
…L-STWINBX1 board

Provide BLE support for STEVAL-STWINBX1 board.

Signed-off-by: Ali Hozhabri <[email protected]>
(cherry picked from commit ced9fba)
- Add SMU regions
- Add HCI definition
- Add config when BT is enabled

Signed-off-by: Yassine El Aissaoui <[email protected]>
(cherry picked from commit 63791f2)
The drivers should be independent after the move to the new HCI driver
API. Having them as a choice also has unexpected consequences with some
drivers being unexpectedly enabled.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit 97c3a1e)
…packets

Keep reading from the HCI socket when a packet is incomplete. The other
end may not write entire packets, or TCP could fragment in the middle of a
packet.
Also fix a potential infinite loop by advancing to the next packet before
any continue statements.

Signed-off-by: Patrick Stewart <[email protected]>
(cherry picked from commit 1868987)
Convert the HCI User Channel driver to use the new HCI driver API.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit bb91aa0)
… driver init fails

With the new HCI driver model it's not always critical if a single
instance fails to initialize. This is especially true for many test
applications which provide their own HCI drivers. Instead of causing a
complete failure, simply fail to initialize the driver instance.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit 66b5386)
Convert all Bluetooth tests that define dummy HCI driver instances to use
the new HCI driver API. This requires both a custom DTS binding as well
as an app-specific overlay file.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit 1824dcd)
…rial port

The CONFIG_BT_NO_DRIVER option will be going away. Use the
CONFIG_BT_UART option instead (selected by UART HCI drivers) to
determine whether to enable the qemu serial port for Bluetooth.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit c68770e)
…pabilities

These samples were enabled for an nRF board, even though there is no
upstream support for the feature. Additionally the sample.yaml files
were forcefully disabling any in-tree HCI drivers, making it impossible
to use e.g. qemu with an external HCI controller. Simply remove the nRF
board from the list, as well as the odd Kconfig HCI driver options.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit eddac27)
Add HCI driver generic to NXP platforms.
Update west.yml to have ble support for rw61x

Signed-off-by: Axel Le Bourhis <[email protected]>
Signed-off-by: Yassine El Aissaoui <[email protected]>
(cherry picked from commit ee03123)
There are no actual users in the main tree anymore, so just remove this
option.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit 589b92b)
… support

Introduce a new bt-hci-vs-ext device tree boolean property to indicate
device tree support.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit af750cd)
Convert the ipc.c HCI driver to the new HCI driver API.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit 6e584a4)
Convert the hci_psoc6_bless.c HCI driver to the new HCI driver API.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit e763741)
Convert the hci_esp32.c HCI driver to the new HCI driver API.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit 8953b4e)
…CI SPI BT driver

Add API to perform hardware reset optionally entering firmware updater
mode.

Remove redundant declaration for bt_spi_send_aci_config; otherwise, we will
have compiler warning if CONFIG_BT_BLUENRG_ACI is not set.

Signed-off-by: Ali Hozhabri <[email protected]>
(cherry picked from commit 569183b)
nordic-krch and others added 11 commits September 10, 2024 16:46
Extend ETR buffer handler to support standalone mode where data from
ETR buffer is decoded and printed in human readable format on UART.

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

Add support for standalone mode where data written to STMESP is
decoded on chip to a human-readable strings.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit adcb13d)
Add snippet which allows configuration of logging using STMESP
frontend using standalone mode.

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

Add standalone STM configuration to the sample.

Add configuration which instead of STM uses local UART for logging.
This configuration can be used to compare performance and flash
usage for various logging modes.

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

Add section which describes how Coresight STM logging works and how
to use it. Currently this feature is supported only on nrf54h20.
However, most parts of the solution is not nrf54h20 specific and
other cores with Coresight can use it.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 362653d)
Adds handling code to allow selecting the correct image slot when
using QSPI XIP in DirectXIP mode

Signed-off-by: Jamie McCrae <[email protected]>
Add possibility to mark DPPI channels as allocated for software-
defines peripherals.

Signed-off-by: Magdalena Pastula <[email protected]>
The SoftDevice Controller is a different controller than
the open source link layer with a different set of quirks.
It should therefore have its own device tree binding.

This commit converts the SoftDevice Controller driver
to use this new DTS binding instead of reusing the existing one.

This commit updates or adds additional overlays for
existing samples, applications and tests that were using the
open source link layer.

Signed-off-by: Rubin Gerritsen <[email protected]>
Provide a new kconfig option which can be used to disable
the default seeding of the host standard library random
generator by this driver.
This allows some other component to do so without this component
default initialization interfering.

Signed-off-by: Alberto Escolar Piedras <[email protected]>
(cherry picked from commit e58a491)
Let's disable the default seeding done by the native_posix
entropy driver to allow the normal simulation initialization
of the random number generation to take place.

Signed-off-by: Alberto Escolar Piedras <[email protected]>
(cherry picked from commit 11cde13)
Update the HW models module to:
d2a119a9c7600ce06033a794de042e0ad9a38702

Including the following:
d2a119a 54 ECB/CCM tests: Add BLE spec examples and more printouts
17692a6 54 CCM: Correct variable names
16629b5 RRAMC: Add backwards compatible command line aliases for flash_*
52cbc36 54 AAR, CCM, ECB: Fix reset values and ECB key endianess
d51acf4 RADIO: Implement TASK_SOFTRESET
8285509 54 ECB: Correct t_ECB
4f70fba 54: AAR/CCM: Route tasks to the appropriate module
895eabb RADIO: Warn only once about TASK_SOFTRESET not being implemented

Signed-off-by: Alberto Escolar Piedras <[email protected]>
(cherry picked from commit c297e2d)
@e-rk e-rk force-pushed the nrf54l20_support_to_sdk_zephyr branch from a062ea8 to a44b3d1 Compare September 11, 2024 09:33
aescolar and others added 10 commits September 11, 2024 16:26
Let's filter out escape sequences from the tests
output (for ex. color escapes) as those corrupt
the xml.

Signed-off-by: Alberto Escolar Piedras <[email protected]>
(cherry picked from commit c11fccd)
… nrfl54l15

Add SPI MEMORY driver testing for nrf54l15

Signed-off-by: Bartosz Miller <[email protected]>
(cherry picked from commit e9fef2a)
Align settings and DFU partition definition with the values, specified
by the design documentation.

Upstream PR: zephyrproject-rtos/zephyr#78240

Ref: NCSDK-NONE

Signed-off-by: Tomasz Chyrowicz <[email protected]>
mbox_error_cases tests must be run with the nordic-flpr snippet
to prevent bus fault error while accessing VPR registers.

Signed-off-by: Jakub Zymelka <[email protected]>
(cherry picked from commit bd93623)
Introduce nRF54L20 description in dts.

Signed-off-by: Karol Lasończyk <[email protected]>
(cherry picked from commit f5fd5c0)
Introduce nRF54L20 entries in soc directory.

Signed-off-by: Karol Lasończyk <[email protected]>
(cherry picked from commit 198a005)
Extend CMakeList and add nrfx_config with L20 peripherals' entries.

Signed-off-by: Karol Lasończyk <[email protected]>
(cherry picked from commit 76f8f20)
Introduce doc and board description.

Signed-off-by: Karol Lasończyk <[email protected]>
(cherry picked from commit d66110b)
Exclude nRF54L20 platform as Nordic HAL is not compatible
with C++98.

Signed-off-by: Karol Lasończyk <[email protected]>
(cherry picked from commit e4236be)
nrf-squash! [nrf noup] entropy: Add fake entropy nRF PRNG driver

Change psa driver to nordic entropy. nRF54L20 needs it as well
as nRF54H20.

Signed-off-by: Karol Lasończyk <[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.