fixed-link phy

在Linux网络驱动中,一些以太网MAC可能没有连接一个常见的使用MDIO管理的PHY,例如MAC对MAC、MAC对FPGA等。这种情况下,设备树提供了”fixed-link”绑定方法,其原理是当以太网驱动检测到设备树中存在”fixed-link”后,不会在配置流程中对PHY进行标准的MDIO操作,而是内核为MAC创建一个虚拟的有默认值的PHY设备

“fixed-link”的使用方法是在以太网MAC的设备节点下创建一个”fixed-link”的子节点,并编写以下属性

  • “speed” (整型 必须存在) 表明连接速率,可选的数值为10、100、1000

  • “full-duplex” (布尔 可选的) 表明是否使用全双工,如果没有该属性,默认是半双工

  • “pause” (布尔 可选的) 表明pause帧是否被启用

  • “asym-pause” (布尔 可选的) 表明是否启用 Asymmetric Pause帧功能

  • “link-gpios” (gpio-list 可选的) 表明是否可以通过gpio来读取是否link up

例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ethernet@0 {
...
fixed-link {
speed = <1000>;
full-duplex;
};
...
};

ethernet@1 {
...
fixed-link {
speed = <1000>;
pause;
link-gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
};
};