-
-
Notifications
You must be signed in to change notification settings - Fork 8.3k
stm32: On Arduino boards, enable 4MiB ROMFS partition in external flash #16869
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
stm32: On Arduino boards, enable 4MiB ROMFS partition in external flash #16869
Conversation
Code size report:
|
We will deploy "stock" romfs images along with 1.25.0, which will likely corrupt the filesystem as you've expected. However, romfs will be the main storage for all embedded assets moving forward, as we're already running out of flash on some boards (like the Nicla), so this change is unavoidable. When we deploy 1.25.0 we could display a warning and erase the filesystem as well. |
We could indeed add a version check in our installer tool to at least warn the user and consequently perform an erase of the file system. |
For Mpflash it should be possible to detect the step-ups to 1.25.0 and then, after confirmation:
Other tools can do this as well, if they can check the fw version up-front |
OK, sounds good, you can manage user expectations on your side for this change. |
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
b1c66d3
to
96ce08e
Compare
@iabdalkader I have now updated this after #16903, to name the partition #0. Please can you review it? |
I can retest it again, later today. |
Seems to be working fine. I tested build, deploy and read. Anything else to test? Otherwise it's good.
|
Great, thanks, that should be enough. |
I tested the address as well, using
|
The address should be more like |
Yes, that's right. The CYW43 firmware for example is at |
Summary
Split out from #8381, and a follow up to #16857 (comment)
This enables a 4MiB ROMFS partition on all three stm32 Arduino boards, using external QSPI flash. The ROMFS partition sits near the end of flash:
Testing
TODO (although previously tested by @iabdalkader as part of #8381).
Trade-offs and Alternatives
This is most likely a breaking change for users, because the filesystem partition size has shrunk by 4MiB. And I don't think that will be easily detected because existing filesystems will mount and work correctly until the ROMFS is used. And then when ROMFS is used and the flash for that is written to, the original filesystem will probably still mount correctly because the initial filesystem data is unchanged.
@iabdalkader how do you want to manage this when users update the firmware? This is part of the reason why I didn't want to enable ROMFS on all the boards right now, because we don't have a good way of transitioning the flash partition from previous layout to new layout.