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

SDP MSPI driver #18893

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

Conversation

jaz1-nordic
Copy link
Contributor

@jaz1-nordic jaz1-nordic commented Nov 14, 2024

SDP MSPI driver
Based on and blocked by:

@jaz1-nordic jaz1-nordic requested a review from a team November 14, 2024 12:13
@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 Nov 14, 2024
@NordicBuilder
Copy link
Contributor

NordicBuilder commented Nov 14, 2024

The following west manifest projects have changed revision in this Pull Request:

Name Old Revision New Revision Diff
zephyr nrfconnect/sdk-zephyr@b476270 nrfconnect/sdk-zephyr#2260 nrfconnect/sdk-zephyr#2260/files

DNM label due to: 1 project with PR revision

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

@NordicBuilder
Copy link
Contributor

NordicBuilder commented Nov 14, 2024

CI Information

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

Inputs:

Sources:

sdk-nrf: PR head: 3b113cda86c5c5486e91b12671c641afd8a68035
zephyr: PR head: f345131bba98a90c2d76f1165362ce4f2ed223d5

more details

sdk-nrf:

PR head: 3b113cda86c5c5486e91b12671c641afd8a68035
merge base: c32a7da575b7fc8d751d1745c65efc3bc2d1293e
target head (main): c32a7da575b7fc8d751d1745c65efc3bc2d1293e
Diff

zephyr:

PR head: f345131bba98a90c2d76f1165362ce4f2ed223d5
merge base: 01976a7968bd9fa0a601079c35022e06bfc809e7
target head (main): bc80cbda202a69435c7333544c9c5359e4aef0fc
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 (33)
CODEOWNERS
applications
│  ├── sdp
│  │  ├── mspi
│  │  │  ├── CMakeLists.txt
│  │  │  ├── boards
│  │  │  │  ├── nrf54l15dk_nrf54l15_cpuflpr.conf
│  │  │  │  │ nrf54l15dk_nrf54l15_cpuflpr.overlay
│  │  │  ├── prj.conf
│  │  │  ├── sample.yaml
│  │  │  ├── src
│  │  │  │  ├── hrt
│  │  │  │  │  ├── hrt.c
│  │  │  │  │  ├── hrt.h
│  │  │  │  │  │ hrt.s
│  │  │  │  │ main.c
│  │  │  │ sysbuild.conf
cmake
│  ├── sysbuild
│  │  │ sdp.cmake
drivers
│  ├── CMakeLists.txt
│  ├── Kconfig
│  ├── mspi
│  │  ├── CMakeLists.txt
│  │  ├── Kconfig
│  │  ├── Kconfig.nrfe
│  │  │ mspi_nrfe.c
dts
│  ├── bindings
│  │  ├── mspi
│  │  │  │ nordic,nrfe-mspi-controller.yaml
include
│  ├── drivers
│  │  ├── mspi
│  │  │  │ nrfe_mspi.h
scripts
│  ├── twister
│  │  ├── alt
│  │  │  ├── zephyr
│  │  │  │  ├── tests
│  │  │  │  │  ├── drivers
│  │  │  │  │  │  ├── mspi
│  │  │  │  │  │  │  ├── api
│  │  │  │  │  │  │  │  │ testcase.yaml
snippets
│  ├── sdp
│  │  ├── mspi
│  │  │  ├── app.conf
│  │  │  ├── flpr.conf
│  │  │  ├── sdp-mspi-app.overlay
│  │  │  ├── snippet.yml
│  │  │  ├── soc
│  │  │  │  │ nrf54l15_cpuapp.overlay
sysbuild
│  ├── Kconfig.sdp
│  │ sdp.cmake
west.yml
zephyr
│  ├── drivers
│  │  ├── pinctrl
│  │  │  │ pinctrl_nrf.c
│  ├── include
│  │  ├── zephyr
│  │  │  ├── dt-bindings
│  │  │  │  ├── pinctrl
│  │  │  │  │  │ nrf-pinctrl.h
│  ├── tests
│  │  ├── drivers
│  │  │  ├── mspi
│  │  │  │  ├── api
│  │  │  │  │  ├── boards
│  │  │  │  │  │  │ nrf54l15dk_nrf54l15_cpuapp.overlay
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c

Outputs:

Toolchain

Version: b77d8c1312
Build docker image: docker-dtr.nordicsemi.no/sw-production/ncs-build:b77d8c1312_912848a074

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

  • ◻️ Toolchain - Skipped: existing toolchain is used
  • ❌ Build twister
  • ❌ Integration tests
    • ❌ test-sdk-audio
    • ❌ desktop52_verification
    • ❌ test-fw-nrfconnect-boot
    • ❌ test-fw-nrfconnect-apps
    • ❌ test_ble_nrf_config
    • ❌ test-fw-nrfconnect-ble_mesh
    • ❌ test-fw-nrfconnect-ble_samples
    • ❌ test-fw-nrfconnect-chip
    • ❌ test-fw-nrfconnect-nfc
    • ❌ test-fw-nrfconnect-nrf-iot_serial_lte_modem
    • ❌ test-fw-nrfconnect-nrf-iot_samples
    • ❌ doc-internal
    • ❌ test-fw-nrfconnect-nrf-iot_thingy91
    • ❌ test-fw-nrfconnect-nrf_crypto
    • ❌ test-fw-nrfconnect-rpc
    • ❌ test-fw-nrfconnect-rs
    • ❌ test-fw-nrfconnect-fem
    • ❌ test-fw-nrfconnect-tfm
    • ❌ test-fw-nrfconnect-thread
    • ❌ test-fw-nrfconnect-zigbee
    • ❌ test-sdk-find-my
    • ❌ test-fw-nrfconnect-nrf-iot_mosh
    • ❌ test-fw-nrfconnect-nrf-iot_positioning
    • ❌ test-sdk-sidewalk
    • ❌ test-sdk-wifi
    • ❌ test-low-level
    • ❌ test-fw-nrfconnect-nrf-iot_nrf_provisioning
    • ❌ test-sdk-pmic-samples
    • ❌ test-sdk-mcuboot
    • ❌ test-sdk-dfu
    • ❌ test-fw-nrfconnect-ps
    • ❌ test-secdom-samples-public

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

@NordicBuilder
Copy link
Contributor

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.

@jaz1-nordic jaz1-nordic force-pushed the nrfx-6633_mSPI_SDP branch 2 times, most recently from e660c0e to 04e12ea Compare November 18, 2024 09:55
@github-actions github-actions bot removed the changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. label Nov 18, 2024
@jaz1-nordic jaz1-nordic marked this pull request as ready for review November 18, 2024 09:56
@jaz1-nordic jaz1-nordic requested review from a team as code owners November 18, 2024 09:56
@NordicBuilder
Copy link
Contributor

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 Publish GitHub Action.

sysbuild/sdp.cmake Outdated Show resolved Hide resolved
drivers/mspi/mspi_nrfe.c Outdated Show resolved Hide resolved
drivers/mspi/mspi_nrfe.c Outdated Show resolved Hide resolved
Comment on lines +43 to +89
uint8_t *buffer = (uint8_t *)data;
uint8_t opcode = *buffer++;
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not a fan of copying everything to a buffer; it is quite misleading. What if we sent a structure that would have an opcode and a union of Zephyr structures (mspi_cfg , mspi_dev_cfg, mspi_xfer and mspi_xfer_packet ) since sending a pointer will not work on H20?

Copy link
Contributor

Choose a reason for hiding this comment

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

@jaz1-nordic have you changed it? It looks still the same.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There is no more buffer-to-buffer copying. One exception is opcode reading, because it is used in many places. The rest is casting the pointer to a pointer of another type uint8_t, so that you can cast to a struct with a single byte precision. Wasn't that your suggestion?

@jaz1-nordic jaz1-nordic force-pushed the nrfx-6633_mSPI_SDP branch 3 times, most recently from 91bb39f to c2e11f9 Compare November 21, 2024 15:23
@NordicBuilder
Copy link
Contributor

Memory footprint analysis revealed the following potential issues

sample.matter.template.release[nrf7002dk/nrf5340/cpuapp]: High ROM usage: 811934[B] - link (cc: @kkasperczyk-no @ArekBalysNordic @markaj-nordic)

Note: This message is automatically posted and updated by the CI (latest/sdk-nrf/PR-18893/3)

sysbuild/Kconfig.sdp Outdated Show resolved Hide resolved
drivers/mspi/mspi_nrfe.c Outdated Show resolved Hide resolved
drivers/mspi/mspi_nrfe.c Outdated Show resolved Hide resolved
drivers/mspi/mspi_nrfe.c Outdated Show resolved Hide resolved
drivers/mspi/mspi_nrfe.c Outdated Show resolved Hide resolved
@jaz1-nordic jaz1-nordic force-pushed the nrfx-6633_mSPI_SDP branch 5 times, most recently from 2df40f2 to 81dc879 Compare November 27, 2024 13:46
drivers/mspi/mspi_nrfe.c Outdated Show resolved Hide resolved
Comment on lines +43 to +89
uint8_t *buffer = (uint8_t *)data;
uint8_t opcode = *buffer++;
Copy link
Contributor

Choose a reason for hiding this comment

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

@jaz1-nordic have you changed it? It looks still the same.

@@ -11,6 +11,7 @@ add_subdirectory(hw_cc3xx)
if (CONFIG_MPSL AND NOT CONFIG_MPSL_FEM_ONLY)
add_subdirectory(mpsl)
endif()
add_subdirectory_ifdef(CONFIG_MSPI mspi)
Copy link
Contributor

Choose a reason for hiding this comment

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

Why this is added only if CONFIG_MSPI is enabled, while gpio is included by default? Is it because gpio should be enabled by default by Zephyr rules? @masz-nordic

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Because the SDP implementation depends on MSPI KConfigs and structures. So MSPI must be enabled.

@jaz1-nordic jaz1-nordic force-pushed the nrfx-6633_mSPI_SDP branch 4 times, most recently from 54d3dba to 22dc924 Compare December 2, 2024 12:22
magp-nordic and others added 7 commits December 2, 2024 13:28
Added initial mspi implementation with hard real time task running on
interrupts.

Signed-off-by: Michal Frankiewicz <[email protected]>
Signed-off-by: Magdalena Pastula <[email protected]>
Add changes related with SDP MSPI driver API test.

Signed-off-by: Jakub Zymelka <[email protected]>
Add SDP MSPI driver, dts and include files.

Signed-off-by: Jakub Zymelka <[email protected]>
Add new snippet files for SDP MSPI.

Signed-off-by: Jakub Zymelka <[email protected]>
Add cmake files to be able to include the SDP MSPI
application in solutions where SDP MSPI is required.

Signed-off-by: Jakub Zymelka <[email protected]>
Add IPC solution based on icmsg to application for FLPR core
to communicate with SDP MSPI driver.

Signed-off-by: Jakub Zymelka <[email protected]>
Add yaml configuration to enable SDP MSPI API test.

Signed-off-by: Jakub Zymelka <[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.

4 participants