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
driver: eth: Support for lan8651 T1S ETH (with OA TC6 library) #63614
driver: eth: Support for lan8651 T1S ETH (with OA TC6 library) #63614
Conversation
List of interested developers: @GeorgeCGV @uwearzt @lunn |
Setup LAN8670-USB dongle (to be connected to T1S host) - debian12 (kernel 6.1):
Design decisions:
Test scenarios:
What is missing:
Dependencies: Open Questions:
|
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.
Looks quite resonable. Please fix the compliance issues, there are several whitespace issues in the code.
Please change the driver commit subject to
driver: eth: Support for lan8651 T1S ETH
@@ -0,0 +1,52 @@ | |||
# Generic networking options |
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.
This sample board config should be in a separate commit.
Please only place here board specific stuff so that the main prj.conf in that sample will be the master information and here we just tweak things needed for this board. Do not place config options specific to your local setup here (like IP addresses etc).
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.
The prj.conf
file needs changes as shown in nucleo_g431rb.conf
, otherwise the sample will not build (excess of on-board RAM).
IMHO, it would be better to have a complete setup there for this particular development board, so other users can reproduce this setup easily.
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.
Sorry, but this is not a way here. The prj.conf will be the master of the config and the config in board/ directory can then add or adjust the configuration parameters. This way if any new config options are added in prj.conf, the compilation for this board will automatically use them and we do not need to adjust two files.
I suppose we could start with |
27e2ccc
to
c043401
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.
Please check the compliance issues
@@ -0,0 +1,52 @@ | |||
# Generic networking options |
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.
Sorry, but this is not a way here. The prj.conf will be the master of the config and the config in board/ directory can then add or adjust the configuration parameters. This way if any new config options are added in prj.conf, the compilation for this board will automatically use them and we do not need to adjust two files.
c043401
to
2054156
Compare
boards/shields/mikroe_twowire_eth_click/mikroe_twowire_eth_click_arduino.overlay
Outdated
Show resolved
Hide resolved
The aforementioned "shield" has been removed with this PR, as it has been pointed out that Zephyr will not accept non compatible combination of base board (nucleo) and MicroBus shield. Moreover, I would appreciate if we could finish with review of this PR. |
@erwango if you are not reviewing this any more, please remove your -1 |
f99c1b8
to
33475c1
Compare
@jukkar - I had to rebase those patches on top of newest origin/main branch. The only change was with Kconfig. |
33475c1
to
7200f6f
Compare
@jukkar - Please find list of enhancements for this driver (as I had to rebase it on top of newest 'main' branch):
|
Those files provide generic functions to handle transmission between chip conforming OA TC6 standard and Zephyr's network stack represented by struct net_pkt. The communication is performed via SPI and is focused on reduced memory footprint (works with SOC equipped with 32 KiB of RAM) and robustness of operation. Signed-off-by: Lukasz Majewski <lukma@denx.de>
7200f6f
to
457c2f0
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.
Nice 👍
This patch set provides support for T1S ethernet device - LAN8651. For SPI communication the implementation of Open Alliance TC6 specification is used. The driver implementation focuses mostly on reducing memory footprint, as the used SoC (STM32G491) for development has only 32 KiB RAM in total. Signed-off-by: Lukasz Majewski <lukma@denx.de>
457c2f0
to
f55f690
Compare
This patch set provides support for T1S ethernet device - LAN8651.
For communication the approach described in Open Alliance TC6 specification is used. This code (from oa_tc6.[ch]) can be reused with other ICs following this standard.
Test HW:
Build:
Test on host PC (one needs to first build echo-client program from net-tools):
Code required for testing and debugging:
https://github.com/lmajewski/zephyr/commits/t1s-lan8651-nucleo_g431rb-test