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

mcuboot incompatible with Nordic QSPI flash driver #25289

Closed
pabigot opened this issue May 13, 2020 · 0 comments · Fixed by #25292
Closed

mcuboot incompatible with Nordic QSPI flash driver #25289

pabigot opened this issue May 13, 2020 · 0 comments · Fixed by #25292
Assignees
Labels
bug The issue is a bug, or the PR is fixing a bug platform: nRF Nordic nRFx priority: low Low impact/importance bug

Comments

@pabigot
Copy link
Collaborator

pabigot commented May 13, 2020

mcuboot does not work with the Nordic QSPI flash API because the flash_area_read_is_empty() extended API that is in:

  • mcuboot: boot/zephyr/flash_map_extended.c
  • zephyr: subsys/dfu/boot/mcuboot.c

is being invoked to verify that a single byte is uninitialized. The Nordic QSPI flash API requires that all bus transactions be for a multiple of four bytes (this is a hardware limitation).

Consequently the read of an image state field fails, which causes mcuboot to panic.

Patching the call to read 4 bytes and only use the first allows mcuboot to work. However, the proper fix is likely to be to special-case transfers of less than 4 bytes in the QSPI driver.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug The issue is a bug, or the PR is fixing a bug platform: nRF Nordic nRFx priority: low Low impact/importance bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants