aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authorJakov Petrina <jakov.petrina@sartura.hr>2020-04-24 14:38:58 +0200
committerLuka Perkov <luka.perkov@sartura.hr>2020-05-09 14:34:23 +0200
commitb1cfbff0a7d386a7b3d3aa19b9971e0ea6d1db65 (patch)
tree5b3d3f1b2ec84778e9651a129a04813f9b8e70a9 /target/linux
parent02656caa7b3c6da24a1c253b8d28887ab5c1bed1 (diff)
downloadupstream-b1cfbff0a7d386a7b3d3aa19b9971e0ea6d1db65.tar.gz
upstream-b1cfbff0a7d386a7b3d3aa19b9971e0ea6d1db65.tar.bz2
upstream-b1cfbff0a7d386a7b3d3aa19b9971e0ea6d1db65.zip
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 <jakov.petrina@sartura.hr> Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr> Cc: Luka Perkov <luka.perkov@sartura.hr>
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/mvebu/patches-4.19/550-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch20
-rw-r--r--target/linux/mvebu/patches-5.4/550-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch20
2 files changed, 40 insertions, 0 deletions
diff --git a/target/linux/mvebu/patches-4.19/550-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch b/target/linux/mvebu/patches-4.19/550-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch
new file mode 100644
index 0000000000..7ed0a54344
--- /dev/null
+++ b/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>;
diff --git a/target/linux/mvebu/patches-5.4/550-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch b/target/linux/mvebu/patches-5.4/550-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch
new file mode 100644
index 0000000000..82715312d8
--- /dev/null
+++ b/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>;