返回
Android 11上移植rk3566-千兆网卡rtl8211f成功案例
Android
2023-05-20 12:32:21
通过 dts 配置在 RK3566 上使用 RTL8211F 以太网 MAC 和 PHY
简介
RK3566 是瑞芯微推出的一款高性能四核处理器,它集成了多种外设,包括以太网 MAC 和 PHY。本文档将指导您在 RK3566 开发板上使用 dts 配置来连接和配置 RTL8211F 以太网 MAC 和 PHY。
硬件连接
首先,您需要将 RTL8211F 与 RK3566 物理连接:
- 将 RK3566 的 GPIO0_C0 引脚连接到 RTL8211F 的 RST 引脚。
- 将 RK3566 的 GPIO1_B0 引脚连接到 RTL8211F 的 INT 引脚。
- 将 RK3566 的 GPIO1_C2 引脚连接到 RTL8211F 的 MDIO 引脚。
- 将 RK3566 的 GPIO1_C3 引脚连接到 RTL8211F 的 MDC 引脚。
- 将 RK3566 的 GPIO1_C6 引脚连接到 RTL8211F 的 GTXCLK 引脚。
- 将 RK3566 的 GPIO1_C7 引脚连接到 RTL8211F 的 GRXCLK 引脚。
- 将 RK3566 的 GPIO3_A3 引脚连接到 RTL8211F 的 GTX0 引脚。
- 将 RK3566 的 GPIO3_B3 引脚连接到 RTL8211F 的 GRX0 引脚。
- 将 RK3566 的 GPIO3_C3 引脚连接到 RTL8211F 的 GTX1 引脚。
- 将 RK3566 的 GPIO3_D3 引脚连接到 RTL8211F 的 GRX1 引脚。
dts 配置
接下来,您需要在设备树文件中添加以下配置:
&phy0 {
compatible = "realtek,rtl8211f-phy";
reg = <0x0 0x10000>;
interrupts = <20 0>;
};
&mac0 {
compatible = "realtek,rtl8211f-mac";
reg = <0x0 0x10000>;
interrupts = <19 0>;
phy-handle = <&phy0>;
};
&net0 {
compatible = "ethernet-phy-device";
#address-cells = <1>;
#size-cells = <0>;
phy-handle = <&phy0>;
};
软件配置
在内核配置文件中启用 CONFIG_ETHERNET_REALTEK_RTL8211F 选项。在设备树文件中添加以下内容:
ethernet@1d030000 {
compatible = "realtek,rtl8211f-mac";
reg = <0x1d030000 0x10000>;
interrupts = <23 0>;
phy-handle = <&phy0>;
};
net0: ethernet@1d030000 {
compatible = "ethernet-phy-device";
#address-cells = <1>;
#size-cells = <0>;
phy-handle = <&phy0>;
};
重新编译内核并烧录到设备中。
vcc_1v8 供电
如果您的硬件需要 1.8V 电源来为 MAC 供电,则需要配置软件以打开 vcc_1v8 供电。请参考 RK 提供的文档中的“电源管理”章节了解如何执行此操作。
注意事项
- 不正确的 dts 配置可能导致与 DMA 相关的错误。如果您遇到此问题,请检查 dts 配置是否与硬件连接匹配。
- 不正确的软件配置可能导致驱动程序加载失败。如果您遇到此问题,请检查软件配置是否正确。
- 不正确的硬件连接可能导致无法识别设备。如果您遇到此问题,请检查硬件连接是否正确。
常见问题解答
-
为什么我收到与 DMA 相关的错误?
这可能是由于不正确的 dts 配置引起的。请确保 dts 配置与硬件连接匹配。
-
为什么驱动程序加载失败?
这可能是由于不正确的软件配置引起的。请确保软件配置正确。
-
为什么无法识别设备?
这可能是由于不正确的硬件连接引起的。请检查硬件连接是否正确。
-
如何为 MAC 供电?
如果您需要为 MAC 供电,您需要配置软件以打开 vcc_1v8 供电。请参考 RK 提供的文档中的“电源管理”章节了解如何执行此操作。
-
如何配置 PHY?
PHY 配置可以通过修改 dts 配置文件中的相关属性来完成。有关详细信息,请参考特定 PHY 数据手册。