-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
imxrt: added write back d-cache support for Ethernet #3005
base: master
Are you sure you want to change the base?
Conversation
I've just tried this PR with imxrt1060-evk:netnsh. It works with CONFIG_ARMV7M_DCACHE_WRITETHROUGH=y which is the current configuration Actually, if I tried to log in to the board with telnet from PC, it failed. |
Hi @masayuki2009, thanks. I can actually connect to console via telnet (I use imxrt1060-evk:netnsh with write back d-cache and
|
Signed-off-by: Michal Lenc <[email protected]>
FInally got some time to take a closer look at this. Still not quite there, but at least I have an idea now where the problem might be. It seems like either the message is not transmited after exiting imxrt_transmit or either it is, but we does not receive interrupt. That couses txtail to get stuck at one value and thus we soon get -EBUSY warning. |
Hi @michallenc, I took a look at the ethernet driver code for zephyr and MCUXpresso SDK and found that both define a non-cacheable area for the descriptors. |
Summary
Added correct d-cache cleaning and invalidation to imxrt Ethernet driver for write back support. This seems to be working well as imxrt1060-evk gets IP addres correctly and then is able to ping other devices (or being pinged by others), but I´d welcome some other opinion about cleaning and invalidating those segments of cache before merging.
Testing
Tested on imxrt1060-evk with ping example.