-
Notifications
You must be signed in to change notification settings - Fork 6.5k
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
Network fails to transmit STM32H747DISC0 board zephyr v2.6.0 #36356
Comments
^^ @reloZid FYI. Would you mind to have a look ? |
What I can tell after a quick test is that for me the following boards are working:
Also used the telnet sample, Zephyr v2.6.0 and SDK v0.12.4 on Ubuntu 20.04. Unfortunately I don't have a H747 discovery board at hand. In my point of view the MCU should be very similar to the H745 though. Any ideas what could be the difference? I can check later whether I can spot something. |
Unfortunately the only board I have is an H747, however I will have a board with an H742 tomorrow, and I will try it with that - I am just wondering as a wild guess if this has some conflict between the 2 cores in the H747? I will also try completely disabling the M4 core and see if that makes any difference, but I am very new to the Zephyr and STM32 environments. My major skillset is embedded Linux on multiple platforms. |
I would say this is definitely worth a try. According to the board documentation, the M4 core can be disabled by modifying the option bytes using the STM32CubeProgrammer. Otherwise I'd suggest to at least make sure that the other core doesn't mess something up by flashing something simple. On the Nucleo H745 I just tested running the blinky sample on the M4 core in parallel with the telnet sample on the M7 core which worked for me. Another wild guess from my side is that the driver for the external RAM on the H747 discovery board could define additional MPU regions which might interfere with the MPU regions defined by the Ethernet driver. Therefore you could also try disabling the external RAM and the FMC in the device tree to check whether the bug is in this spot. |
I now suspect that I have a faulty STM32H747DISC0 board. I received this board (brand new) a few weeks ago. When I first received that board I was using Zephyr v2.5.0 and I was able to get networking running, however, if I built images using the Zephyr SDK, I could easily crash the device simply by pinging it, however, if I built using the GNUARMEMB toolchain it worked, which also puzzled me completely. Yesterday a colleague of mine in a different location built the telnet demo and tested it on his STM32H747DISC0 board, and that works as expected. I then sent him my binary which fails on my board and that works perfectly on his board. I checked and re-checked all of the option resistors and jumpers and they are identical to my colleague's board, so we have ordered a few new DISC0 boards, so once I have new boards I will test again and see if I still experience the same issues. |
I have now also managed to bring up our own custom board which has an H742 on it and the Ethernet works correctly. There is currently no support for the H742 in Zephyr, but I am working on support for that - as far as I can tell the only difference between that and the H743 is the amount of SRAM available, so I have created a new dts for the H742 and will make a pull request once I have it stable. I do not see any ST eval boards with the H742 on them, so there is no commonly available platform with that SoC, so I am not sure if my additions will be suitable for inclusion in upstream Zephyr? |
No issue, you can add this SoC support, even if no board is available. |
@hamishguthrie Did you had a chance to confirm that issue was coming from a faulty board ? |
Yes, this issue was from a faulty board |
Describe the bug
With the telnet sample built for the above board, the following error messages are seen shortly after startup:
To Reproduce
Steps to reproduce the behavior:
Expected behavior
As a minimum the network should come up cleanly and it should be possible to ping the DUT and from the device to ping other devices on the same network.
Impact
showstopper
Logs and console output
Environment (please complete the following information):
Additional context
I have modified my STM32H747DISC0 board as per the instructions https://docs.zephyrproject.org/latest/boards/arm/stm32h747i_disco/doc/index.html#ethernet
This example works perfectly when built with zephyr v2.5.0
I ran a git bisect between v2.5.0 and v2.6.0 and the commit where it stops working is c276088
The text was updated successfully, but these errors were encountered: