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

samples: benchmarks: coremark: add FLPR support for nRF54H20 DK #20614

Merged
merged 3 commits into from
Mar 4, 2025

Conversation

kapi-no
Copy link
Contributor

@kapi-no kapi-no commented Feb 26, 2025

Added the FLPR core support for the nRF54H20 DK board target in the CoreMark sample.

Ref: NCSDK-30327

@kapi-no kapi-no requested review from a team as code owners February 26, 2025 09:45
@github-actions github-actions bot added the doc-required PR must not be merged without tech writer approval. label Feb 26, 2025
Copy link

After documentation is built, you will find the preview for this PR here.

Preview links for modified nRF Connect SDK documents:

https://ncsdoc.z6.web.core.windows.net/PR-20614/nrf/releases_and_maturity/releases/release-notes-changelog.html
https://ncsdoc.z6.web.core.windows.net/PR-20614/nrf/samples/benchmarks/coremark/README.html

@NordicBuilder
Copy link
Contributor

NordicBuilder commented Feb 26, 2025

CI Information

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

Inputs:

Sources:

sdk-nrf: PR head: 690e47963885221804f46c864545a6abc876edce

more details

sdk-nrf:

PR head: 690e47963885221804f46c864545a6abc876edce
merge base: 81607ffdd26a1629f0ffc8a42bb46476f3010fbc
target head (main): 200fdcd9a9d7cd1c869e1fe2779a870b31f23a57
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 (13)
doc
│  ├── nrf
│  │  ├── releases_and_maturity
│  │  │  ├── releases
│  │  │  │  │ release-notes-changelog.rst
samples
│  ├── benchmarks
│  │  ├── coremark
│  │  │  ├── Kconfig.sysbuild
│  │  │  ├── README.rst
│  │  │  ├── boards
│  │  │  │  ├── nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  │  ├── nrf54h20dk_nrf54h20_cpuflpr.conf
│  │  │  │  ├── nrf54h20dk_nrf54h20_cpuflpr.overlay
│  │  │  │  ├── nrf54h20dk_nrf54h20_cpuppr.conf
│  │  │  │  │ nrf54h20dk_nrf54h20_cpurad.conf
│  │  │  ├── prj.conf
│  │  │  ├── prj_flash_and_run.conf
│  │  │  ├── prj_heap_memory.conf
│  │  │  ├── prj_multiple_threads.conf
│  │  │  │ prj_static_memory.conf

Outputs:

Toolchain

Version: aedb4c0245
Build docker image: docker-dtr.nordicsemi.no/sw-production/ncs-build:aedb4c0245_bece0367df

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

  • ◻️ Toolchain - Skipped: existing toolchain is used
  • ✅ Build twister
    • sdk-nrf test count: 42
  • ✅ Integration tests
Disabled integration tests
    • desktop52_verification
    • doc-internal
    • test-fw-nrfconnect-apps
    • test-fw-nrfconnect-ble_mesh
    • test-fw-nrfconnect-ble_samples
    • test-fw-nrfconnect-boot
    • test-fw-nrfconnect-chip
    • test-fw-nrfconnect-fem
    • test-fw-nrfconnect-nfc
    • test-fw-nrfconnect-nrf-iot_libmodem-nrf
    • test-fw-nrfconnect-nrf-iot_lwm2m
    • test-fw-nrfconnect-nrf-iot_mosh
    • 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_thingy91
    • test-fw-nrfconnect-nrf-iot_zephyr_lwm2m
    • test-fw-nrfconnect-nrf_crypto
    • test-fw-nrfconnect-proprietary_esb
    • test-fw-nrfconnect-ps
    • test-fw-nrfconnect-rpc
    • test-fw-nrfconnect-rs
    • test-fw-nrfconnect-tfm
    • test-fw-nrfconnect-thread
    • test-fw-nrfconnect-zigbee
    • test-low-level
    • test-sdk-audio
    • test-sdk-dfu
    • test-sdk-find-my
    • test-sdk-mcuboot
    • test-sdk-pmic-samples
    • test-sdk-sidewalk
    • test-sdk-wifi
    • test-secdom-samples-public

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

@@ -577,7 +577,7 @@ Other samples
* Added:

* Support for the nRF54L05 and nRF54L10 SoCs (emulated on nRF54L15 DK).
* FLPR core support for the :ref:`zephyr:nrf54l15dk_nrf54l15` board target.
* FLPR core support for the :ref:`zephyr:nrf54l15dk_nrf54l15` and the :ref:`zephyr:nrf54h20dk_nrf54h20` board target.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
* FLPR core support for the :ref:`zephyr:nrf54l15dk_nrf54l15` and the :ref:`zephyr:nrf54h20dk_nrf54h20` board target.
* FLPR core support for the :ref:`zephyr:nrf54l15dk_nrf54l15` and :ref:`zephyr:nrf54h20dk_nrf54h20` board targets.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

fixed

Copy link
Contributor

@zycz zycz left a comment

Choose a reason for hiding this comment

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

LGTM


# Reduce speed optimizations to fit the sample into the TCM of the FLPR core.
# Removed the following options from the default configuration (prj.conf):
# -funroll-loops
Copy link
Contributor

Choose a reason for hiding this comment

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

I wonder if we could add another optimizations to allow using -funroll-loops (we need to optimize RAM usage by ~10 kbytes). @zycz do you think we should open a follow-up ticket for it? Would it be worth to optimize it further?

@kapi-no kapi-no force-pushed the coremark_flpr_support_nrf54h branch from c2bb431 to 5d61f36 Compare February 26, 2025 12:47
@kapi-no kapi-no requested a review from annwoj February 26, 2025 12:48
@kapi-no kapi-no force-pushed the coremark_flpr_support_nrf54h branch from 5d61f36 to a3b3a70 Compare February 26, 2025 12:51
@kapi-no
Copy link
Contributor Author

kapi-no commented Feb 26, 2025

Rebase on top of the main branch to include the fix for double logs from the nRF54H20 cpuapp target. No file diff has changed.

Copy link

Copy link
Contributor

@tejlmand tejlmand left a comment

Choose a reason for hiding this comment

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

Looking fine, just an observation to be clarified.

# Reduce speed optimizations to fit the sample into the TCM of the FLPR core.
# Removed the following options from the default configuration (prj.conf):
# -funroll-loops
CONFIG_COMPILER_OPT="-O3 -fno-lto -fno-pie -fno-pic -ffunction-sections -fdata-sections"
Copy link
Contributor

Choose a reason for hiding this comment

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

-fno-pie -fno-pic are default in Zephyr, sop why are they added here ?
-ffunction-sections -fdata-sections" are default in Zephyr, sop why are they added here ?

Copy link
Contributor Author

@kapi-no kapi-no Mar 3, 2025

Choose a reason for hiding this comment

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

This is a copy-paste of the original options from prj.conf (minus -funroll-loops). @zycz, why did you add them?

Copy link
Contributor

Choose a reason for hiding this comment

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

I got them from SAG experiments.

We also wanted to mention them explicitly to show them in output logs - we use this variable here:

#define COMPILER_FLAGS CONFIG_COMPILER_OPT " + see compiler flags added by Zephyr"

but I guess we don't have to add it as we already mention that we use default zephyr flags

Copy link
Contributor Author

Choose a reason for hiding this comment

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

okay, so I will clean up these flags

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

kapi-no added 3 commits March 3, 2025 14:23
Corrected comments in the Radio, PPR and FLPR configurations regarding
the consistency between the DTS and Kconfig configurations for the UART
functionality.

Signed-off-by: Kamil Piszczek <Kamil.Piszczek@nordicsemi.no>
Removed compiler options in the CoreMark sample that are already
included by default in Zephyr.

Ref: NCSDK-30327

Signed-off-by: Kamil Piszczek <Kamil.Piszczek@nordicsemi.no>
Added the FLPR core support for the nRF54H20 DK board target in the
CoreMark sample.

Ref: NCSDK-30327

Signed-off-by: Kamil Piszczek <Kamil.Piszczek@nordicsemi.no>
@kapi-no kapi-no force-pushed the coremark_flpr_support_nrf54h branch from a3b3a70 to 690e479 Compare March 3, 2025 13:27
@kapi-no kapi-no requested a review from tejlmand March 3, 2025 13:28
Copy link

sonarqubecloud bot commented Mar 3, 2025

Copy link
Contributor

@peknis peknis left a comment

Choose a reason for hiding this comment

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

Approved with a nit.

* ``-ffunction-sections``
* ``-fdata-sections``

These options are enabled by default in Zephyr and do not need to be set with the dedicated Kconfig option.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
These options are enabled by default in Zephyr and do not need to be set with the dedicated Kconfig option.
These options are enabled by default in Zephyr.
You do not need to set them with a dedicated Kconfig option.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

discussed in the other comm channel, decide to keep it as it is

@kapi-no kapi-no merged commit 94533b8 into nrfconnect:main Mar 4, 2025
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
doc-required PR must not be merged without tech writer approval.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants