Sfoglia il codice sorgente

mvebu: uDPU: switch default kernel and U-Boot PHY mode

Certain SFP modules (most notably Nokia GPON ones) first check
connectivity on 1000base-x, and switch to 2500base-x afterwards. This
is considered a quirk so the phylink switches the interface to
2500base-x as well.

However, after power-cycling the uDPU device, network interface/SFP module
will not work correctly until the module is re-seated. This patch
resolves this issue by forcing the interface to be brought up in
2500base-x mode by default.

Signed-off-by: Jakov Petrina <[email protected]>
Signed-off-by: Vladimir Vid <[email protected]>
Cc: Luka Perkov <[email protected]>
Jakov Petrina 5 anni fa
parent
commit
b1cfbff0a7

+ 43 - 0
package/boot/uboot-mvebu/patches/220-arm-dts-uDPU-switch-default-PHY-speed-to-3.125Gbit.patch

@@ -0,0 +1,43 @@
+--- a/arch/arm/dts/armada-3720-uDPU.dts
++++ b/arch/arm/dts/armada-3720-uDPU.dts
+@@ -109,11 +109,11 @@
+ &comphy {
+ 	phy0 {
+ 		phy-type = <PHY_TYPE_SGMII1>;
+-		phy-speed = <PHY_SPEED_1_25G>;
++		phy-speed = <PHY_SPEED_3_125G>;
+ 	};
+         phy1 {
+                 phy-type = <PHY_TYPE_SGMII0>;
+-                phy-speed = <PHY_SPEED_1_25G>;
++                phy-speed = <PHY_SPEED_3_125G>;
+         };
+ 
+         phy2 {
+@@ -125,22 +125,16 @@
+ &eth0 {
+ 	pinctrl-0 = <&pcie_pins>;
+ 	status = "okay";
+-	phy-mode = "sgmii";
++	phy-mode = "sgmii-2500";
++	managed = "in-band-status";
+ 	phy = <&ethphy0>;
+-	fixed-link {
+-		speed = <1000>;
+-		full-duplex;
+-	};
+ };
+ 
+ &eth1 {
+ 	status = "okay";
+-	phy-mode = "sgmii";
++	phy-mode = "sgmii-2500";
++	managed = "in-band-status";
+ 	phy = <&ethphy1>;
+-	fixed-link {
+-		speed = <1000>;
+-		full-duplex;
+-	};
+ };
+ 
+ &i2c0 {

+ 20 - 0
target/linux/mvebu/patches-4.19/550-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch

@@ -0,0 +1,20 @@
+--- a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
++++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
+@@ -145,7 +145,7 @@
+ 
+ &eth0 {
+ 	status = "okay";
+-	phy-mode = "sgmii";
++	phy-mode = "2500base-x";
+ 	managed = "in-band-status";
+ 	phys = <&comphy1 0>;
+ 	sfp = <&sfp_eth0>;
+@@ -153,7 +153,7 @@
+ 
+ &eth1 {
+ 	status = "okay";
+-	phy-mode = "sgmii";
++	phy-mode = "2500base-x";
+ 	managed = "in-band-status";
+ 	phys = <&comphy0 1>;
+ 	sfp = <&sfp_eth1>;

+ 20 - 0
target/linux/mvebu/patches-5.4/550-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch

@@ -0,0 +1,20 @@
+--- a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
++++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
+@@ -144,7 +144,7 @@
+ };
+ 
+ &eth0 {
+-	phy-mode = "sgmii";
++	phy-mode = "2500base-x";
+ 	status = "okay";
+ 	managed = "in-band-status";
+ 	phys = <&comphy1 0>;
+@@ -152,7 +152,7 @@
+ };
+ 
+ &eth1 {
+-	phy-mode = "sgmii";
++	phy-mode = "2500base-x";
+ 	status = "okay";
+ 	managed = "in-band-status";
+ 	phys = <&comphy0 1>;