-
Notifications
You must be signed in to change notification settings - Fork 6.9k
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
Initial support for STM32 FMC #29686
Initial support for STM32 FMC #29686
Conversation
c8efe97
to
3b52f82
Compare
cc: @matthew-koch @k0d |
ba2029f
to
f0f7659
Compare
dev-review (Nov 5 2020): @MaureenHelm to look at this from a NXP point of view. @galak to look at this from a devicetree and common linker script view point. |
1d0ab99
to
1177076
Compare
1177076
to
920f383
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.
Thanks for this great addition!
I don't have objections on the proposal.
One observation though: FMC_SDRAM_foo
functions are supposed to be internal LL API (with HAL API as the unique client). I'm not opposed to using it directly, but this raises some concerns as these internal APIs do not propose the same guarantees the public APIs (portability, stability).
Can you elaborate on the arguments that made you chose this API over HAL ?
Second point is that it would be nice to add some quick test if doable (could be added under tests/boards
) so this driver could be compiled in CI (and potential users can have a simple usage example)
4e1c42d
to
7dba81d
Compare
Looks ok to me. @jhqian @mmahadevan108 Do you see any issues with this for SEMC on RT1xxx? |
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.
LGTM, that's great contribution 👍 But I don't have HW to try this out.
Also needs rebase for the hal_stm32 PR repository to pass buildkite.
eaba078
to
1366faa
Compare
1366faa
to
0bd720f
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.
LGTM
Update hal_stm32 to have access to FMC pins. Signed-off-by: Gerard Marull-Paretas <[email protected]>
This commit adds a new driver category for memory controller peripherals. There is no API involved for now, as it has not been found necessary for first implementation. STM32 Flexible Memory Controller (FMC) is the only controller supported for now. This peripheral allows to access multiple types of external memories, e.g. SDRAM, NAND, NOR Flash... The initial implementation adds support for the SDRAM controller only. The HAL API is used, so the implementation should be portable to other STM32 series. It has only been tested on H7 series, so for now it can only be enabled when working on H7. Linker facilities have also been added in order to allow applications to easily define a variable in SDRAM. Signed-off-by: Gerard Marull-Paretas <[email protected]>
Add myself to memc (memory controller) drivers. Signed-off-by: Gerard Marull-Paretas <[email protected]>
Add integration test to check r/w operations on STM32 external SDRAM. Signed-off-by: Gerard Marull-Paretas <[email protected]>
Enable SDRAM on M7 core. Signed-off-by: Gerard Marull-Paretas <[email protected]>
0bd720f
to
c0885a1
Compare
This PR adds a new driver category for memory controller peripherals. There is no API involved as it has not been found
necessary for first implementation.
STM32 Flexible Memory Controller (FMC) is the only controller supported for now. This peripheral allows accessing multiple types of external memories, e.g. SDRAM, NAND, NOR Flash...
The initial implementation adds support for the SDRAM controller only. HAL API is used, so the implementation should be portable to other STM32 series. It has only been tested on H7 series, so it can only be enabled when working on H7.
Linker facilities have also been added in order to allow applications to easily define a variable in SDRAM, e.g.
Tested with STM32H747I-DISCO board (SDRAM parameters have been taken from HAL examples).
To be discussed:
Closes #15944