RK3568百兆网口

文章讲述了如何将RK3568的默认千兆网口修改为百兆,涉及驱动配置、DTS调整以及使用PHY寄存器检查和Micrel百兆网口的相关代码,特别强调了50MHz时钟频率的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RK3568默认是千兆网口,我们需要改为百兆网口,芯片采用Micrel的百兆网口。

百兆网口驱动,根据我的资源文件,Rockchip-Developer-Guide-Linux-GMAC-CN

配置DTS后,发现网口还存在一些问题。ifconfig down , ifconfig up后,就不正常。

通过查看PHY寄存器地址:可以看出哪些值不对

cat  /sys/bus/mdio_bus/devices/stmmac-0\:01/phy_registers

root# cat  /sys/bus/mdio_bus/devices/stmmac-0\:01/phy_registers
 0: 0x3100
 1: 0x7849
 2: 0x22
 3: 0x1560
 4: 0x8de1
 5: 0x0
 6: 0x4
 7: 0x2001
 8: 0x0
 9: 0x0
10: 0x0
11: 0x0
12: 0x0
13: 0x0
14: 0x0
15: 0x0
16: 0x0
17: 0x0
18: 0x0
19: 0x0
20: 0x0
21: 0x0
22: 0x202
23: 0x3c02
24: 0x801
25: 0x7777
26: 0x7777
27: 0x0
28: 0x0
29: 0x0
30: 0x0
31: 0x8180

这是调试正常的网口了。

改的驱动部分./drivers/net/phy/micrel.c文件,使能这个块代码,时钟频率需要50MHz。

        /* Support legacy board-file configuration */
        if (phydev->dev_flags & MICREL_PHY_50MHZ_CLK) {
                priv->rmii_ref_clk_sel = true;
                priv->rmii_ref_clk_sel_val = true;
        }

### RK3568 芯片双网交换机实现方案和支持情况 #### 支持情况概述 RK3568 平台具备支持多网的能力,能够满足构建小型交换机的需求。该平台不仅提供了必要的硬件接,还拥有足够的处理能力和灵活性来管理多个网络连接[^1]。 #### 实现方案详情 对于双网交换机的具体实施方案,可以根据实际需求选择不同的设计路径: - **方案一:单MAC加外部交换芯片** 当希望减少内部组件数量并降低功耗时,可以选择让RK3568 的 GMAC 接直接与一个外置的以太网交换IC相连,如Marvell Mv88e6390。这种架构下,所有的端管理和流量控制都由专用的交换芯片完成,而CPU只需负责初始化配置以及高级别的协议栈操作[^3]。 - **方案二:双独立MAC模块** 如果应用场景更注重性能和实时响应,则可以利用RK3568 上集成的两个独立GMAC控制器分别连接至各自的物理层器件(PHY),形成两组完全隔离的数据通道。此方法虽然增加了物料清单成本,但却能提供更高的吞吐量和服务质量保障。 无论采取哪种方式,都需要确保电源域PMUIO2 和VCCIO1,VCCIO[3:7]得到适当供电,这是保证以太网功能正常运作的前提条件之一[^2]。 ```c // 示例代码片段展示如何在DTS文件中定义双MAC资源分配 &gmac { pinctrl-names = "default"; pinctrl-0 = <&gmac_rgmii_pins>; phy-mode = "rgmii-id"; /* 或者其他模式 */ }; /* 配置第二个MAC实例 */ &gmac1 { status = "okay"; }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值