完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在开发一个基于 SMARC 格式计算机模块和 Rockchip RK3399 CPU 的项目。在同一块主板上,我们有一个 SJA1105 开关。CPU 运行 Linux (5.4) 并使用 NET_DSA_SJA1105 驱动程序。
我们的 CPU 需要通过以太网与其他设备通信,因此 CPU 需要连接到交换机。 在 SJA1105 数据表和 Linux 内核设备树示例中,主机 cpu 始终作为直接通过 xMII 的固定链路连接到交换机 我们不能这样做,因为我们的 SMARC 模块只为我们提供 RK3399 以太网集成 PHY 的引脚输出,无论我们多么想要,我们都无法直接物理访问 CPU 上的 xMII 接口。 同样在 SJA1105 数据表中,它表示如下: “请注意,仅当系统必须支持 AVB 操作或其他桥接管理协议(如 STP/RSTP)时,才需要与主机处理器的以太网连接。如果不需要此类操作,则所有端口都可用于数据流量。” 由于我们不需要 AVB 或 STP/RSTP,并且无论如何我们都无法访问 cpu xMII 接口,因此我们决定将该交换机用作普通的 5 端口交换机,每个端口上都有 PHY 接口。4 个端口,PHY 实际上连接到真正的 RJ45 连接器,1 个端口,PHY 在电路板上硬连线到我们从 SMARC 板上的 CPU 获得的 PHY。这会给我们一个看起来像这样的 Linux 设备树: (只显示SJA1105相关部分,贴到这里压痕也变歪了) &spi2 {这个设备树是有效的并且可以编译,但是在探测期间 NET_DSA_SJA1105 失败,因为它找不到主机 CPU 端口(因为我们没有指定一个)。这个错误来自 net/dsa/dsa2.c *dsa_tree_find_first_cpu(struct dsa_switch_tree *dst) 所以它不是特定于驱动程序的 sja1105 部分,而是更深层次的 Linux 分布式交换机架构。 在所有 devicetree 示例中,始终有一个端口配置为通过 xMII 与固定链路连接的主机 cpu,例如: port@4 { /* 连接到 eth2 的内部端口 */ ethernet = <&enet2>; phy-mode = "rgmii"; 注册 = <4>; /* 隐式“sja1105,role-phy;” */ 固定链接 { 速度 = <1000>; 全双工; }; }; 如果我尝试修改我的设备树以使端口看起来更像这样: 端口{ #address-cells = <1>; #size-cells = <0>; port@0 { /* 隐式“sja1105,role-phy;” */ 以太网 = <&gmac>; phy-mode = "rmii"; 注册 = <0>; 固定链接 { 速度 = <100>; 全双工; }; }; port@1 { /* 隐式“sja1105,role-mac;” */ 标签 = "lan1"; phy-handle = <&rmii_phy1>; phy-mode = "rmii"; 注册 = <1>; }; port@2 { /* 隐式“sja1105,role-mac;” */ 标签 = "lan2"; phy-handle = <&rmii_phy2>; phy-mode = "rmii"; 注册 = <2>; }; port@3 { /* 隐式“sja1105,role-mac;” */ phy-handle = <&rmii_phy3>; 标签=“局域网3”; phy-mode = "rmii"; 注册 = <3>; }; port@4 { /* 隐式“sja1105,role-mac;” */ phy-handle = <&rmii_phy4>; 标签 = "lan4"; phy-mode = "rmii"; 注册 = <4>; }; }; 然后驱动程序满意并成功探测并设置 SJA1105 开关。端口 1-4 工作 但端口 0(CPU 通过 PHY 连接)当然不工作,因为它现在配置为 xMII 将直接连接到它,而实际上我们在 SJA1105 和主机 CPU 之间有一个 PHY . 这是 DSA SJA1105 Linux 驱动程序的限制,您始终必须通过 xMII 配置固定链接吗?我能以某种方式直接从设备树配置我根本不希望有一个专用的 cpu 主机端口,而是只有 5 个普通端口(其中一个恰好通过 PHY 连接到 CPU ...)或者我可以将 CPU 主机端口配置为固定链路,但明确指定那里实际上也有一个 PHY 而不是 xMII 接口吗?我已经尝试了几十种组合,但仍然没有找到任何方法来配置它,以便它可以与我们认为非常简单的设置一起工作。我只是在这里遗漏了一些非常简单的东西吗?任何想法如何进行?或者这对 Linux DSA SJA1105 驱动程序来说是不可能的吗? |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1829个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36041 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4171 浏览 0 评论
5765 浏览 1 评论
6543 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4004 浏览 0 评论
449浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
418浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
424浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
507浏览 2评论
544浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 10:42 , Processed in 1.517942 second(s), Total 75, Slave 60 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号