解决方案
Yes, this is expected.
Ethernet PHY information is board level and board-specific information that PetaLinux does not have access to without user input.
This information should be included in the system-top.dts file and should include the information relevant for your specific platform.
Below is an example of a well-formed system-top.dts file for a single Ethernet device routed through the Zynq PS7 MIO pins:
/dts-v1/;
/include/ "system-conf.dtsi"
/ {
};
&gem0 {
local-mac-address = [00 0a 35 00 c0 12];
phy-handle = <&phy0>;
phy-mode = "rgmii-id";
mdio {
#address-cells = <1>;
#size-cells = <0>;
phy0: phy@0 {
compatible = "marvell,88e1116r";
device_type = "ethernet-phy";
reg = <0>;
} ;
} ;
};
Below is an example of a well-formed system-top.dts file for a dual Ethernet configuration where GEM0 is routed through MIO, and GEM1 is routed through EMIO via the GMII2RGMII conversion IP:
/dts-v1/;
/include/ "system-conf.dtsi"
/ {
aliases {
ethernet1 = &gem1;
};
};
&gem0 {
local-mac-address = [00 0a 35 00 c0 12];
phy-handle = <&phy0>;
phy-mode = "rgmii-id";
mdio {
#address-cells = <1>;
#size-cells = <0>;
phy0: phy@0 {
compatible = "marvell,88e1116r";
device_type = "ethernet-phy";
reg = <0>;
} ;
} ;
};
&gem1 {
local-mac-address = [00 0a 35 00 c0 13];
phy-handle = <&phy1>;
gmii2rgmii-phy-handle = <&gmii_to_rgmii_0>;
ps7_ethernet_1_mdio: mdio {
#address-cells = <1>;
#size-cells = <0>;
phy1: phy@1 {
compatible = "marvell,88e1510";
device_type = "ethernet-phy";
reg = <0x1>;
};
gmii_to_rgmii_0: phy@8 {
device_type = "ethernet-phy";
reg = <8>;
};
};
};
Note: ensure that the device tree node name, MDIO address, and compatible strings correspond to the naming conventions used in your specific system and hardware.