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

[nrf fromtree] modules: hal_nordic: Add global domain power request service #2057

Open
wants to merge 1,735 commits into
base: main
Choose a base branch
from

Conversation

Rafal-Nordic
Copy link
Contributor

@Rafal-Nordic Rafal-Nordic commented Oct 1, 2024

Service for powering peripherals that use GPIO pins in the global power domains:

  • Active Fast
  • Active Slow
  • Main Slow

Zephyr upstream PR: zephyrproject-rtos/zephyr#79264

@NordicBuilder
Copy link
Contributor

NordicBuilder commented Oct 1, 2024

The following west manifest projects have been modified in this Pull Request:

Name Old Revision New Revision Diff
hal_nordic zephyrproject-rtos/hal_nordic@bc25c09 zephyrproject-rtos/hal_nordic@4a3ba8e zephyrproject-rtos/[email protected]

Note: This message is automatically posted and updated by the Manifest GitHub Action.

nordicjm and others added 10 commits October 4, 2024 14:12
…n once config

Upstream PR: zephyrproject-rtos/zephyr#72857

Removes validating the qualifiers for flash run once configuration
as files may be present that contain information for qualifiers
that are not present in a single repository but are spaced out in
other repositories, or might be optional

Signed-off-by: Jamie McCrae <[email protected]>
(cherry picked from commit b72acf47e550090878fa87145c9766504c3deb13)
…n dts.cmake

Upstream PR: zephyrproject-rtos/zephyr#73903

Instead of hardcoding the name `devicetree_target`, we can update the
generated `dts.cmake` to accept `DEVICETREE_TARGET` as input variable.
This will become useful in multi-image builds, where we would like to
process multiple devicetrees.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit cd187c719ae9162a2ab6bd6aeff511a4cc684bdc)
Upstream PR: zephyrproject-rtos/zephyr#73903

Add new functions to `sysbuild_extensions.cmake`, which will mirror the
familiar dt_* API from Zephyr `extensions.cmake`. For example:

   dt_nodelabel(<var> NODELABEL <label>)

gets the following sysbuild counterpart, with one extra argument:

   sysbuild_dt_nodelabel(<var> IMAGE <image> NODELABEL <label>)

This API allows sysbuild to retrieve devicetree information for a given
<image>, only after its respective `ExternalZephyrProject_Cmake()` call.

This works by importing the generated `dts.cmake` files from each
image's build directory, and creating multiple CMake targets to hold the
generated properties - much like how the `CMakeCache.txt` and `.config`
are also imported to be used by the related `sysbuild_get()` function.

The dt_* API itself also has to be updated, in order to read properties
from a variable `DEVICETREE_TARGET` set in the parent scope.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 3bf9a41a20ae52adc3ccadc2ff79425160f8ad73)
Add a custom section in the linker which should always
be placed in the top of RAM. This will be used by the
KMU to push keys into it. Since when you provision a key
into the KMU you need to set specific a memory location
for the PUSH operation we need to keep this memory location
static across images/dfus.

This is a noup since the KMU is not supported upstream.

Ref: NCSDK-25121

Signed-off-by: Georgios Vasilakis <[email protected]>
Upstream PR: zephyrproject-rtos/zephyr#72857

In the `Board` class, the `dir` member was renamed to `directories`,
both to indicate that it is now a list (in HWMv2 with board extensions)
and to reflect the addition of the `BOARD_DIRECTORIES` CMake variable.
Considering that the build system also keeps the `BOARD_DIR` variable,
and for the sake of backwards compatibility and brevity, it should be
useful to retain `Board.dir` in Python as well, symmetrically.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 25fd4b16e8c488792d0d8450e1b822292f94d3c3)
Add triggers for SUIT DFU tests.

Signed-off-by: Krzysztof Szromek <[email protected]>
adjusting region resolution to match erase-block-size

Signed-off-by: Mateusz Michalek <[email protected]>
Add fast PWM instance for the nRF54H20 device.

Upstream PR: zephyrproject-rtos/zephyr#75047

Signed-off-by: Adam Kondraciuk <[email protected]>
This commit provides an additional threshold value for comparison when
a custom k_busy_wait() implementation is chosen.

Upstream PR: zephyrproject-rtos/zephyr#73068

Signed-off-by: Adam Kondraciuk <[email protected]>
The nRF54H20 PPR target has not enough memory to run some of
kernel/timer tests.

Upstream PR: zephyrproject-rtos/zephyr#73068

Signed-off-by: Adam Kondraciuk <[email protected]>
jfischer-no and others added 9 commits October 17, 2024 14:02
…iven UART API

Align CDC ACM UART with Interrupt-driven UART API behavior description.
Use the same flags in uart_irq_rx_ready(), uart_irq_tx_ready(), and
uart_irq_is_pending(), which are updated after each uart_irq_update()
call. Allow TX FIFO to be filled if there is space.

Signed-off-by: Johann Fischer <[email protected]>
(cherry picked from commit 64ee885)
Signed-off-by: Tomasz Moń <[email protected]>
In general, it mirrors what is described in Interrupt-driven API
documentation, but here a little more explicitly and with a simplified
example, so that we can finally chisel it into the stone.

Signed-off-by: Johann Fischer <[email protected]>
(cherry picked from commit 1867e71)
Signed-off-by: Tomasz Moń <[email protected]>
…acy implementation

Apply changes in commit c152e09
("usb: device: cdc_acm: block in uart_poll_out() routine")
to the new CDC ACM UART poll_out implementation.

Signed-off-by: Johann Fischer <[email protected]>
(cherry picked from commit 6cf2775)
Signed-off-by: Tomasz Moń <[email protected]>
… simultaneously

As it is still accepted practice, allow fifo_fill and poll_out to be
used simultaneously. The lock around fifo_fill was already in place.

Signed-off-by: Johann Fischer <[email protected]>
(cherry picked from commit ef89321)
Signed-off-by: Tomasz Moń <[email protected]>
…API behavior

Add note about CDC ACM virtual UART polling API behavior.

Signed-off-by: Johann Fischer <[email protected]>
(cherry picked from commit ece1f51)
Signed-off-by: Tomasz Moń <[email protected]>
…he current MPS

When the controller is connected to a full speed bus, regardless of
whether the controller supports high speed or not, the transfer size for
the bulk OUT endpoint should be equal to the MPS in the current
configuration.

Signed-off-by: Johann Fischer <[email protected]>
(cherry picked from commit 4875aa3)
Signed-off-by: Tomasz Moń <[email protected]>
…C ACM

Use delayable work to reduce CPU load when there is no transfer flow in
the host direction. This also improves the performance of poll out, as
introduced in commit commit fed6bde
("usb: device: cdc_acm: send more than 1 byte in poll out")
for the legacy CDC ACM implementation.

Signed-off-by: Johann Fischer <[email protected]>
(cherry picked from commit fe4d8a6)
Signed-off-by: Tomasz Moń <[email protected]>
…ssion

Verbatim from USB 2.0 specification:
The Remote Wakeup field indicates whether the device is currently enabled
to request remote wakeup. The default mode for devices that support
remote wakeup is disabled. If D1 is reset to zero, the ability of the
device to signal remote wakeup is disabled. If D1 is set to one,
the ability of the device to signal remote wakeup is enabled.
The Remote Wakeup field can be modified by the SetFeature() and
ClearFeature() requests using the DEVICE_REMOTE_WAKEUP feature selector.
This field is reset to zero when the device is reset.

Signed-off-by: Benedek Kupper <[email protected]>
(cherry picked from commit a6b911f)
Signed-off-by: Tomasz Moń <[email protected]>
Update the HW models module to:
eeed2591d38e5e9bf89658df67555f2777249fc0

eeed259 RADIO: Do not warn about TASK_RSSISTART during RXIDLE
565220e 54L15.mk: Fix flipper hal target name
bb8c6fd Makefile: Let's install libraries by default
6dbb843 RADIO: Implement immediate RSSI measurement when needed
3a5d567 RADIO: Allow triggering TASK_RSSISTART from register writes

Signed-off-by: Alberto Escolar Piedras <[email protected]>
(cherry picked from commit fb01071)
@57300 57300 reopened this Oct 17, 2024
katgiadla and others added 2 commits October 17, 2024 16:49
Align all existing samples/tests/applications which
contains nrf54l15pdk/nrf54l15/* by adding
nrf54l15dk/nrf54l15/* to enable twister builds.

Signed-off-by: Katarzyna Giądła <[email protected]>
Signed-off-by: Grzegorz Chwierut <[email protected]>
(cherry picked from commit 436d1bf)
Align mbox sample.yaml and icmsg flpr overlays to nrf54l15dk.

Signed-off-by: Jakub Zymelka <[email protected]>
(cherry picked from commit 3904c3b)
jonathannilsen and others added 10 commits October 17, 2024 21:39
…DACv2

Version 2 of the ADAC interface implemented by secure domain firmware
changes the ADAC RESET command used in the custom reset handling in
the JLink support scripts. The command has been split into two
commands, RESET and START, and has different semantics from
the previous RESET command. The new RESET command resets both the
application and radio domains without starting the CPUs again, and the
START command must then be used to start the CPUs.

Update the JLink support scripts for nrf54h20dk/nrf54h20/cpuapp,
nrf54h20dk/nrf54h20/cpurad, nrf9280pdk/nrf9280/cpuapp and
nrf9280pdk/nrf9280/cpurad so that they read out the ADAC interface
version from the device and use the newer commands if ADAC version 2 is
detected. If the version is lower than 2, the legacy implementation is
used.

Also improve the CTRL-AP MAILBOX transaction implementation
to avoid the need for arbitrary sleeps or unnecessary polling of
the MAILBOX. This should improve stability when using the script.

Signed-off-by: Jonathan Nilsen <[email protected]>
(cherry picked from commit d403d73)
…er for cpurad

Some tests are failing on nrf54h20 cpurad in non-obvious manner
because of this memory region being too small.
Instead of adding overlays to each individual application,
make this region larger at expense of cpuapp equivalent.

Signed-off-by: Nikodem Kastelik <[email protected]>
(cherry picked from commit e0860eb)
This concerns both `nordic,owned-memory` and `nordic,owned-partitions`.

Introduce a property named `nordic,access`, which is meant to replace
the `owner-id` and `perm-*` properties. It allows for describing how
multiple domains should access a single memory region, possibly with
different permissions per owner, but without having to create more than
one DT node for this purpose.

This change is also motivated by updated memory protection requirements
on the nRF54H20, which mandate that a given memory region must only be
reserved by one domain, even if multiple domains can have access to it.
This restriction is now described in the binding itself.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 365e9d6)
… bindings

Apply the following changes to `nrf54h20dk` and `nrf9280pdk`:

* Convert `perm-*` properties to the newly introduced `nordic,access`,
  both in board files and tests.

* Redefine shared regions to specify multiple access owners per node,
  and ensure that each such region is reserved by one domain at a time.
  `cpuapp_cpurad_ram0x_region` is only enabled by Radiocore, while
  `cpuapp_cpucell_ram0x_region` is only enabled by Application core.

* Divide `shared_ram3x_region` so that each sub-region is owned by a
  different domain. Their addresses must be rounded down to fit the
  current UICR format.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 13b1cfa)
Update the default memory maps for `nrf54h20dk` and `nrf9280pdk` to
remove the `shared_ram20_region` and `shared_ram3x_region` nodes,
because their child nodes no longer need to be grouped together:

  * IPC buffers in RAM20 are statically allocated.
  * DMA buffers in RAM3x have separate access owners.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 85b0394)
Upstream PR: zephyrproject-rtos/zephyr#79925

This new version introduces a new sub-command `uicr-compile`, which will
generate `uicr.hex` based on a new binary format required by an upcoming
release of Secure Domain Firmware (SDFW) closer to production.

Since this is a breaking change, and SDFW is not finalized yet, we need
to support two nrf-regtool versions for a short time, and use different
CLI invocations based on which version is installed. Hence, the minimum
required version is unchanged.

Additionally, retire CONFIG_NRF_REGTOOL_EXTRA_GENERATE_ARGS. There will
be no use for it moving forward.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 6c4eb43567fc82935ccff21ebfe843ccc1ac88e1)
This will be replaced by a different solution upstream (NCSDK-27673).

Migrate the existing BICR bindings from NCS 2.4.99-cs3 to NCS 2.7.0.
They are updated to remove obsoleted values. Enable generating bicr.hex
for Application core by default.

LFXO CLOAD value is a resualt of DK's characterization.

The BICR LFOSC.LFXOCONFIG.MODE field supports disabling the usage of an
external crystal oscillator to disable LFXO as LF clock source.

Signed-off-by: Grzegorz Swiderski <[email protected]>
Signed-off-by: Karol Lisak <[email protected]>
Signed-off-by: Karsten Koenig <[email protected]>
…onnected

Adds CONFIG_UDC_DWC2_USBHS_VBUS_READY_TIMEOUT_MS that allows
for waiting for a USBHS VBUS ready event for a specified
amount of time. Earlier it waited forever and because of that,
the udc_enable() was blocked forever if the USB cable was
disconnected. Now the function returns error on timeout.

Signed-off-by: Aleksander Strzebonski <[email protected]>
(cherry picked from commit 18fb3f9)
Service for powering peripherals that use GPIO pins
in the global power domains:
- Active Fast
- Active Slow
- Main Slow

Upstream PR: zephyrproject-rtos/zephyr#79264

Signed-off-by: Rafal Dyla <[email protected]>

(cherry picked from commit ec77fc3)
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.