-
Notifications
You must be signed in to change notification settings - Fork 513
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
[E404X] Determine flash part at runtime #2456
Conversation
@XuGuohui Here is where I am with the GD25 flash part support. Feel free to use this PR if it is helpful to bring up the part. I wont have hardware to test on for a few more days |
594fe78
to
ff769cd
Compare
7ed5d02
to
f68614d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to also remove HAL_PLATFORM_FLASH_MX25L3233F
for Boron and the ESOM after rebasing on top of develop
.
To get rid of @XuGuohui @avtolstoy Could you please help re-review the driver to make sure it is implemented as we discussed yesterday? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Again, we need to remove HAL_PLATFORM_FLASH_MX25L3233F
for Boron and ESOMX after rebasing on top of develop
.
Pushed a fix to wake GD25 from sleep mode. Seems to work ok.
|
…lues. refactor common gd25 otp read/write function. Change init behavior to work with GD25 sleep mode
Tested latest changes with boron + GD25 flash, read/write OTP works, sleep/wake works. |
The |
Tested both MXIC and GD25 flash parts with Sleep, OTP read/write, and new Had to tweak the |
@scott-brust One additional thing to test is sleep: the flash should correctly be put into suspended/low power mode and correctly re-initialized on wake-up (STOP or ULP modes). |
Ok, I tested sleep using |
@scott-brust This is a pretty major change affecting not only new devices with GD25 part, but all other Gen 3 platforms as well, so let's do a proper test with STOP/ULP modes. I'd suggest going through |
Good point, ill run |
@scott-brust Note that sleep tests are manual and not runnable in automated fashion. |
Tested the following permutations with this branch
|
Problem
The ESOMX, B404X, B524X, T404X and other SKUs will need to support multiple different flash chips in order to avoid dependencies on a single supplier. Historically we have handled hardware variations using OTP, but we cannot use that as we will not know the flash variant at boot. The exflash driver will need to discover what flash part is attached, and update the driver to communicate with it accordingly.
Solution
This PR reads the flash Device ID from the part, then modifies the driver to account for any differences/quirks of that part. Right now the following flash parts are supported
MX25R6435FZNIL0
GD25WQ64EQFG
-- as of yet untestedSteps to Test
For ESOMX / other boron/NRF52840 platforms, this PR should be backwards compatible with the current 8 and 4mb MXIC parts (
MX25R6435FZNIL0
andMX25L3233F
)Example App
Any, tinker is fine
References
See AVL Components List in sheets
Completeness