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

manifest: sdk-zephyr: modules: hal_nordic: Add multi-instance DPPI and PPIB drivers #79857 #18073

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

NordicBuilder
Copy link
Contributor

Automatically created by action-manifest-pr GH action from PR: nrfconnect/sdk-zephyr#2143

@NordicBuilder NordicBuilder requested a review from a team as a code owner October 22, 2024 07:02
@github-actions github-actions bot added manifest changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. labels Oct 22, 2024
@NordicBuilder
Copy link
Contributor Author

NordicBuilder commented Oct 22, 2024

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

Name Old Revision New Revision Diff
nrfxlib nrfconnect/sdk-nrfxlib@695fea5 (main) nrfconnect/sdk-nrfxlib#1561 nrfconnect/sdk-nrfxlib#1561/files
zephyr nrfconnect/sdk-zephyr@a70d6bd (main) nrfconnect/sdk-zephyr#2143 nrfconnect/sdk-zephyr#2143/files

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

@NordicBuilder
Copy link
Contributor Author

NordicBuilder commented Oct 22, 2024

CI Information

To view the history of this post, clich the 'edited' button above
Build number: 28

Inputs:

Sources:

sdk-nrf: PR head: 2b97e068b1cb25fbc0da2f8276e30c9895fab4f5
nrfxlib: PR head: 8e9d87c1e738eb9bbf69a8d02d2a324117e2dcc6
zephyr: PR head: 85ec8b5b5fbe92e664ae51c7a48d12bfb525759a

more details

sdk-nrf:

PR head: 2b97e068b1cb25fbc0da2f8276e30c9895fab4f5
merge base: b39f7b7f22e189318bf64a35f08f7014e55fb945
target head (main): 49bcdd3c6d66cca7e51d3a8d7f826d1ff411ecfb
Diff

nrfxlib:

PR head: 8e9d87c1e738eb9bbf69a8d02d2a324117e2dcc6
merge base: 695fea560500968e7f3e9f1d56fb040a84334725
target head (main): 5957e5261d9efc5eff954f94f33abaeef3f6f77f
Diff

zephyr:

PR head: 85ec8b5b5fbe92e664ae51c7a48d12bfb525759a
merge base: a70d6bd9660a3450f264d1d7017828196a964b3f
target head (main): c5efe1f601490fdb365fb17f28ec33d59409e54f
Diff

Github labels

Enabled Name Description
ci-disabled Disable the ci execution
ci-all-test Run all of ci, no test spec filtering will be done
ci-force-downstream Force execution of downstream even if twister fails
ci-run-twister Force run twister
ci-run-zephyr-twister Force run zephyr twister
List of changed files detected by CI (45)
applications
│  ├── nrf5340_audio
│  │  ├── src
│  │  │  ├── modules
│  │  │  │  │ audio_sync_timer.c
nrfxlib
│  ├── softdevice_controller
│  │  ├── CMakeLists.txt
│  │  ├── include
│  │  │  │ sdc_soc.h
samples
│  ├── bluetooth
│  │  ├── conn_time_sync
│  │  │  ├── boards
│  │  │  │  ├── nrf5340_audio_dk_nrf5340_cpuapp.conf
│  │  │  │  ├── nrf5340dk_nrf5340_cpuapp.conf
│  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp.conf
│  │  │  │  │ nrf54l15pdk_nrf54l15_cpuapp.conf
│  │  ├── direct_test_mode
│  │  │  ├── boards
│  │  │  │  ├── nrf5340dk_nrf5340_cpunet.conf
│  │  │  │  ├── nrf5340dk_nrf5340_cpunet_hci.conf
│  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp.conf
│  │  │  │  │ nrf54l15pdk_nrf54l15_cpuapp.conf
│  │  ├── iso_time_sync
│  │  │  ├── boards
│  │  │  │  ├── nrf5340_audio_dk_nrf5340_cpuapp.conf
│  │  │  │  ├── nrf5340dk_nrf5340_cpuapp.conf
│  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp.conf
│  │  │  │  │ nrf54l15pdk_nrf54l15_cpuapp.conf
│  ├── peripheral
│  │  ├── 802154_phy_test
│  │  │  ├── boards
│  │  │  │  │ nrf54l15dk_nrf54l15_cpuapp.conf
│  │  ├── radio_test
│  │  │  ├── boards
│  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp.conf
│  │  │  │  │ nrf54l15pdk_nrf54l15_cpuapp.conf
subsys
│  ├── debug
│  │  ├── cpu_load
│  │  │  │ cpu_load.c
│  │  ├── ppi_trace
│  │  │  │ ppi_trace.c
│  ├── dm
│  │  │ dm.c
│  ├── esb
│  │  │ esb_dppi.c
│  ├── mpsl
│  │  ├── fem
│  │  │  ├── common
│  │  │  │  │ mpsl_fem_utils.c
│  │  ├── pin_debug
│  │  │  │ mpsl_pin_debug_radio_core.c
tests
│  ├── subsys
│  │  ├── debug
│  │  │  ├── cpu_load
│  │  │  │  ├── src
│  │  │  │  │  │ test_cpu_load.c
west.yml
zephyr
│  ├── drivers
│  │  ├── counter
│  │  │  │ counter_nrfx_rtc.c
│  │  ├── pwm
│  │  │  │ Kconfig.nrf_sw
│  │  ├── serial
│  │  │  │ Kconfig.nrfx_uart_instance
│  ├── dts
│  │  ├── bindings
│  │  │  ├── misc
│  │  │  │  │ nordic,nrf-ppib.yaml
│  │  ├── common
│  │  │  ├── nordic
│  │  │  │  ├── nrf54l15.dtsi
│  │  │  │  │ nrf54l20.dtsi
│  ├── modules
│  │  ├── hal_nordic
│  │  │  ├── nrfx
│  │  │  │  ├── CMakeLists.txt
│  │  │  │  ├── Kconfig
│  │  │  │  ├── Kconfig.logging
│  │  │  │  ├── nrfx_config.h
│  │  │  │  ├── nrfx_config_common.h
│  │  │  │  ├── nrfx_config_reserved_resources.h
│  │  │  │  │ nrfx_glue.h
│  ├── samples
│  │  ├── boards
│  │  │  ├── nordic
│  │  │  │  ├── nrfx
│  │  │  │  │  ├── Kconfig
│  │  │  │  │  │ prj.conf
│  ├── soc
│  │  ├── nordic
│  │  │  ├── nrf53
│  │  │  │  ├── Kconfig
│  │  │  │  ├── Kconfig.sync_rtc
│  │  │  │  │ sync_rtc.c
│  │ west.yml

Outputs:

Toolchain

Version: b81a7cd864
Build docker image: docker-dtr.nordicsemi.no/sw-production/ncs-build:b81a7cd864_912848a074

Test Spec & Results: ✅ Success; ❌ Failure; 🟠 Queued; 🟡 Progress; ◻️ Skipped; ⚠️ Quarantine

  • ◻️ Toolchain - Skipped: existing toolchain is used
  • ✅ Build twister - Skipped: Skipping Build & Test as it succeeded in a previous run: 27
  • ❌ Integration tests
    • ✅ test-sdk-audio - Skipped: Job was skipped as it succeeded in a previous run
    • ❌ test_ble_nrf_config
    • ✅ test-fw-nrfconnect-ble_samples - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-chip - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nfc - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf-iot_cloud - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf-iot_thingy91 - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf_crypto - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-rpc - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-rs - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-fem - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-thread - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-zigbee - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-sdk-find-my - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf-iot_mosh - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-sdk-sidewalk - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-low-level - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-sdk-dfu - Skipped: Job was skipped as it succeeded in a previous run
    • ⚠️ test-fw-nrfconnect-proprietary_esb
Disabled integration tests
    • desktop52_verification
    • doc-internal
    • test-fw-nrfconnect-ble_mesh
    • test-fw-nrfconnect-boot
    • test-fw-nrfconnect-nrf-iot_libmodem-nrf
    • test-fw-nrfconnect-nrf-iot_lwm2m
    • test-fw-nrfconnect-nrf-iot_nrf_provisioning
    • test-fw-nrfconnect-nrf-iot_positioning
    • test-fw-nrfconnect-nrf-iot_samples
    • test-fw-nrfconnect-nrf-iot_serial_lte_modem
    • test-fw-nrfconnect-nrf-iot_zephyr_lwm2m
    • test-fw-nrfconnect-ps
    • test-fw-nrfconnect-tfm
    • test-sdk-mcuboot
    • test-sdk-pmic-samples
    • test-sdk-wifi

Note: This message is automatically posted and updated by the CI

@e-rk e-rk force-pushed the auto-manifest-sdk-zephyr-2143 branch from 98efc5f to 70653fa Compare October 22, 2024 07:08
@e-rk e-rk requested review from koffes, rick1082, alexsven and gWacey and removed request for a team October 22, 2024 07:08
@e-rk e-rk added this to the 2.8.0 milestone Oct 22, 2024
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need to enable all of the DPPIC's and PPIB's here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without having all PPIB and DPPICs enabled, the nrfx_gppi_dppi_ppib_lumos.c won't build unfortunately. Maybe there could be a separate CONFIG_NRFX_GPPI config that automatically enables those instances on Lumos.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, then we should either use a separate CONFIG_NRFX_GPPI, or add a followup task to remove the ones that are not needed. The commit message should explain the reasoning behind adding all these

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added the CONFIG_NRFX_GPPI config and used it instead.

@NordicBuilder
Copy link
Contributor Author

You can find the documentation preview for this PR at this link. It will be updated about 10 minutes after the documentation build succeeds.

Note: This comment is automatically posted by the Documentation Publishing GitHub Action.

Comment on lines 19 to 21
#ifdef DPPI_PRESENT
static nrfx_dppi_t dppi = NRFX_DPPI_INSTANCE(0);
#endif
Copy link
Contributor

@ankuns ankuns Oct 22, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@e-rk The dppi variable is used only as a kind of a "handle" to given resources represented by nrfx_dppi_t.
See https://github.com/e-rk/hal_nordic/blob/d7317a9cd28a845dfd174e14c16ba3def1c02a78/nrfx/drivers/src/nrfx_dppi.c#L527
The nrfx_dppi_channel_alloc has const qualifier for the p_instance, so the dppi variable itself (not referring to resource it "points to") will not change.

nrfx_err_t nrfx_dppi_channel_alloc(nrfx_dppi_t const * p_instance, uint8_t * p_channel)

This is true for all other "nrfx_dppi_xxxxxx" calls.

Could the variable be moved to be inside appropriate function as a local variable?
In this case into mpsl_fem_utils_ppi_channel_alloc so that it is a local non-static variable (on stack).

This could be done for all places you introduce the dppi variable .

Justification:

  • The static nrfx_dppi_t dppi will exist for application lifetime, but the dppi object itself does not change.
  • The initializer NRFX_DPPI_INSTANCE is prepared by preprocessor.
  • There are multiple such variables, each takes space.
  • There is only one underlying allocator per given DPPIC regardless of how many nrfx_dppi_t dppi we have used.
  • They are used rather in non time-critical code, there is no need to have them precalculated.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved instance to local scope, with one exception.

@e-rk e-rk force-pushed the auto-manifest-sdk-zephyr-2143 branch 2 times, most recently from 9847e56 to 70b02a5 Compare October 23, 2024 17:01
@e-rk e-rk force-pushed the auto-manifest-sdk-zephyr-2143 branch from bdf0491 to d38e0e3 Compare October 23, 2024 19:19
@e-rk e-rk force-pushed the auto-manifest-sdk-zephyr-2143 branch from bda3a2a to 9b03ad7 Compare October 28, 2024 07:32
@e-rk e-rk modified the milestones: 2.8.0, 2.9.0 Oct 28, 2024
@e-rk e-rk force-pushed the auto-manifest-sdk-zephyr-2143 branch from b969ad7 to c3f8ffd Compare October 28, 2024 10:59
@e-rk e-rk force-pushed the auto-manifest-sdk-zephyr-2143 branch from c3f8ffd to 93cbe13 Compare November 4, 2024 12:52
@e-rk e-rk force-pushed the auto-manifest-sdk-zephyr-2143 branch from abc1e4d to 93cbe13 Compare November 4, 2024 12:53
@NordicBuilder NordicBuilder force-pushed the auto-manifest-sdk-zephyr-2143 branch 4 times, most recently from d3363f2 to 352adcb Compare November 6, 2024 15:00
@e-rk e-rk force-pushed the auto-manifest-sdk-zephyr-2143 branch from 352adcb to 05d3dfb Compare November 6, 2024 15:05
@e-rk e-rk force-pushed the auto-manifest-sdk-zephyr-2143 branch from 05d3dfb to 03aae38 Compare November 12, 2024 09:25
Updated the hal_nordic revision and adjusted the code base to use
multi-instance DPPI API.
Certain applications have to explicitly enable nrfx_dppi and nrfx_ppib
support with Kconfigs.
Updated the nrfxlib revision to add the softdevice_controller include
paths globally.

Signed-off-by: Rafał Kuźnia <[email protected]>
@e-rk e-rk force-pushed the auto-manifest-sdk-zephyr-2143 branch from 002d9b9 to 2b97e06 Compare November 12, 2024 10:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. DNM manifest manifest-nrfxlib manifest-zephyr
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants