我正在寻找解决方案的问题是我必须升级主板上的以太网控制器,因为该组件已经过时了。
主板正在使用设备树运行u-boot和内核2.6。
我不得不提到新的以太网芯片放在新主板上的地址不同于以前的地址:
phy-handle =<& PHY1&gt ;; - 地址寄存器,
phy-handle =<& PHY0&gt ;; - 新地址注册:
dts文件:
mdio@e00 {
compatible = "fsl,mpc885-fec-mdio", "fsl,pq1-fec-mdio";
reg = <0xe00 0x188>;
#address-cells = <1>;
#size-cells = <0>;
PHY0: ethernet-phy@0 {
reg = <0x0>;
device_type = "ethernet-phy";
};
PHY1: ethernet-phy@1 {
reg = <0x1>;
device_type = "ethernet-phy";
};
PHY2: ethernet-phy@2 {
reg = <0x2>;
device_type = "ethernet-phy";
};
...
EMAC0: ethernet@1e00 {
device_type = "network";
compatible = "fsl,mpc885-fec-enet",
"fsl,pq1-fec-enet";
reg = <0x1e00 0x188>;
mac-address = [ 00 00 00 00 00 00 ];
interrupts = <7 1>;
interrupt-parent = <&PIC>;
phy-handle = <&PHY0>;
linux,network-index = <0>;
};
限制是我不希望每个主板都有2个单独的版本,而是一段智能代码,用于识别主板上存在哪个以太网控制器。
现在我的问题是应该在u-boot?,设备树文件?或内核以太网驱动程序中添加此标识代码?
在调试过程中我注意到的是,与只加载设备树指定的驱动程序的内核相比,u-boot足够智能扫描mii总线并识别以太网控制器。
感谢, 问候