-
Notifications
You must be signed in to change notification settings - Fork 8.2k
boards: sam_e70_xplained: Enable L2 ethernet layer #6789
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
Conversation
Codecov Report
@@ Coverage Diff @@
## master #6789 +/- ##
==========================================
- Coverage 54.99% 54.99% -0.01%
==========================================
Files 456 456
Lines 43842 43842
Branches 8225 8225
==========================================
- Hits 24112 24111 -1
- Misses 16386 16387 +1
Partials 3344 3344
Continue to review full report at Codecov.
|
|
This needs more thinking, lot of tests are failing here and there after activating L2 ethernet by default for E70. |
82660f0 to
8bbf74e
Compare
|
New version fixing sanity issues. |
|
Some of the sanity tests need bigger network buffer limits when compiling for E70 Xplained board. |
|
@nashif are you ok with this PR? |
samples/net/nats/sample.yaml
Outdated
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.
dont like this, just settle on a default that works for everyone, this is just a sample, so please try to have 1 prj.conf.
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.
I would have done that if that would have been easy. The E70 ethernet driver checks that there is enough network buffers available and gives error if not. Unfortunately we have several prj.conf files in samples/tests that have less buffers configured.
This means that we either
- Remove the checks in E70 eth driver. I would like to avoid this as these checks make sense for this driver
or
- We increase the buf counts in various samples. This is not good either as then some of the smaller memory boards will start to fail
or
- Blacklist E70 in some of the failing tests. This is certainly an option but I preferred to just increase the buf counts for these couple of tests so that we get to compile them for E70.
If you have some other idea, please suggest.
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.
i would go with options 2:
We increase the buf counts in various samples. This is not good either as then some of the smaller memory boards will start to fail
samples/net/nats/sample.yaml
Outdated
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.
ditto
As we have E70 ethernet driver enabled, we need to enable the generic ethernet L2 driver too so that the ethernet is actually useful. Signed-off-by: Jukka Rissanen <[email protected]>
Some of the sanitycheck tests were having too small limit for network buffers when compiling for sam_e70_xplained board. Increase the buffer limits when testing this for this board. Signed-off-by: Jukka Rissanen <[email protected]>
3f0d233 to
22df3bc
Compare
|
Increased the default number of buffers if ethernet is enabled. This allowed us to remove various net_buf configs from prj.conf files. |
|
@nashif does this look better now? |
|
I missed this change. And it does not do what it advertises - it doesn't "Fix sanitycheck for sam_e70_xplained board". Instead, it works around bugs in the IP stack in a typical Zephyr way - by throwing large amounts of memory, to minimize probability of bugs and deadlocks of which the IP stack is full (#5857, etc.). Neither it masks it only for sam_e70_xplained, it does it for all boards with NET_L2_ETHERNET, which affects quite a number of boards, starting with qemu_x86 (which uses SLIP, which is NET_L2_ETHERNET).
Small limit of network buffers or large, it should work. Inability to work with small number of buffers points to bugs in the stack. |
|
At the same time, some long-standing issues were actually resolved/alleviated. I was able to run net/sockets/big_http_download sample (transferring megabytes of data from the Internet) with quite minimal buffer settings with qemu_x86, and then was able to use the same settings with frdm_k64f and Ethernet: pfalcon#3 (comment) . So, I'd suggest to revert this patch (specifically a0df4f6 commit), document what's wrong when running what samples on sam_e70_xplained, compare the behavior with other Ethernet boards like frdm_k64f, and then see if it's sam_e70_xplained specific issue, Ethernet specific issue, or bug in the IP stack. |
As we have E70 ethernet driver enabled, we need to enable the
generic ethernet L2 driver too so that the ethernet is actually
useful.
Signed-off-by: Jukka Rissanen [email protected]