Hello,
This series disables the "serdes_wiz0" and "serdes_wiz1" device-tree nodes in the J722S SoC file and enables them in the board files where they are required along with "serdes0" and "serdes1". There are two reasons behind this change: 1. To follow the existing convention of disabling nodes in the SoC file and enabling them in the board file as required. 2. To address situations where a board file hasn't explicitly disabled "serdes_wiz0" and "serdes_wiz1" (example: am67a-beagley-ai.dts) as a result of which booting the board displays the following errors: wiz bus@f0000:phy@f000000: probe with driver wiz failed with error -12 ... wiz bus@f0000:phy@f010000: probe with driver wiz failed with error -12
Series is based on linux-next tagged next-20250408.
v1 of this series is at: https://lore.kernel.org/r/20250408060636.3413856-1-s-vadapalli@ti.com/ Changes since v1: - Added "Fixes" tag and updated commit message accordingly.
Regards, Siddharth.
Siddharth Vadapalli (2): arm64: dts: ti: k3-j722s-evm: Enable "serdes_wiz0" and "serdes_wiz1" arm64: dts: ti: k3-j722s-main: Disable "serdes_wiz0" and "serdes_wiz1"
arch/arm64/boot/dts/ti/k3-j722s-evm.dts | 8 ++++++++ arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 4 ++++ 2 files changed, 12 insertions(+)
In preparation for disabling "serdes_wiz0" and "serdes_wiz1" device-tree nodes in the SoC file, enable them in the board file. The motivation for this change is that of following the existing convention of disabling nodes in the SoC file and only enabling the required ones in the board file.
Fixes: 485705df5d5f ("arm64: dts: ti: k3-j722s: Enable PCIe and USB support on J722S-EVM") Cc: stable@vger.kernel.org Signed-off-by: Siddharth Vadapalli s-vadapalli@ti.com ---
v1 of this patch is at: https://lore.kernel.org/r/20250408060636.3413856-2-s-vadapalli@ti.com/ Changes since v1: - Added "Fixes" tag and updated commit message accordingly.
Regards, Siddharth.
arch/arm64/boot/dts/ti/k3-j722s-evm.dts | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j722s-evm.dts b/arch/arm64/boot/dts/ti/k3-j722s-evm.dts index 2127316f36a3..0bf2e1821662 100644 --- a/arch/arm64/boot/dts/ti/k3-j722s-evm.dts +++ b/arch/arm64/boot/dts/ti/k3-j722s-evm.dts @@ -843,6 +843,10 @@ &serdes_ln_ctrl { <J722S_SERDES1_LANE0_PCIE0_LANE0>; };
+&serdes_wiz0 { + status = "okay"; +}; + &serdes0 { status = "okay"; serdes0_usb_link: phy@0 { @@ -854,6 +858,10 @@ serdes0_usb_link: phy@0 { }; };
+&serdes_wiz1 { + status = "okay"; +}; + &serdes1 { status = "okay"; serdes1_pcie_link: phy@0 {
On 4/8/2025 4:06 PM, Siddharth Vadapalli wrote:
In preparation for disabling "serdes_wiz0" and "serdes_wiz1" device-tree nodes in the SoC file, enable them in the board file. The motivation for this change is that of following the existing convention of disabling nodes in the SoC file and only enabling the required ones in the board file.
Fixes: 485705df5d5f ("arm64: dts: ti: k3-j722s: Enable PCIe and USB support on J722S-EVM") Cc: stable@vger.kernel.org Signed-off-by: Siddharth Vadapalli s-vadapalli@ti.com
v1 of this patch is at: https://lore.kernel.org/r/20250408060636.3413856-2-s-vadapalli@ti.com/ Changes since v1:
- Added "Fixes" tag and updated commit message accordingly.
Regards, Siddharth.
arch/arm64/boot/dts/ti/k3-j722s-evm.dts | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j722s-evm.dts b/arch/arm64/boot/dts/ti/k3-j722s-evm.dts index 2127316f36a3..0bf2e1821662 100644 --- a/arch/arm64/boot/dts/ti/k3-j722s-evm.dts +++ b/arch/arm64/boot/dts/ti/k3-j722s-evm.dts @@ -843,6 +843,10 @@ &serdes_ln_ctrl { <J722S_SERDES1_LANE0_PCIE0_LANE0>; }; +&serdes_wiz0 {
- status = "okay";
+};
- &serdes0 { status = "okay"; serdes0_usb_link: phy@0 {
@@ -854,6 +858,10 @@ serdes0_usb_link: phy@0 { }; }; +&serdes_wiz1 {
- status = "okay";
+};
Reviewed-by: Udit Kumar u-kumar1@ti.com
&serdes1 { status = "okay"; serdes1_pcie_link: phy@0 {
Since "serdes0" and "serdes1" which are the sub-nodes of "serdes_wiz0" and "serdes_wiz1" respectively, have been disabled in the SoC file already, and, given that these sub-nodes will only be enabled in a board file if the board utilizes any of the SERDES instances and the peripherals bound to them, we end up in a situation where the board file doesn't explicitly disable "serdes_wiz0" and "serdes_wiz1". As a consequence of this, the following errors show up when booting Linux:
wiz bus@f0000:phy@f000000: probe with driver wiz failed with error -12 ... wiz bus@f0000:phy@f010000: probe with driver wiz failed with error -12
To not only fix the above, but also, in order to follow the convention of disabling device-tree nodes in the SoC file and enabling them in the board files for those boards which require them, disable "serdes_wiz0" and "serdes_wiz1" device-tree nodes.
Fixes: 628e0a0118e6 ("arm64: dts: ti: k3-j722s-main: Add SERDES and PCIe support") Cc: stable@vger.kernel.org Signed-off-by: Siddharth Vadapalli s-vadapalli@ti.com ---
v1 of this patch is at: https://lore.kernel.org/r/20250408060636.3413856-3-s-vadapalli@ti.com/ Changes since v1: - Added "Fixes" tag and updated commit message accordingly.
Regards, Siddharth.
arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi index 6850f50530f1..beda9e40e931 100644 --- a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi @@ -32,6 +32,8 @@ serdes_wiz0: phy@f000000 { assigned-clocks = <&k3_clks 279 1>; assigned-clock-parents = <&k3_clks 279 5>;
+ status = "disabled"; + serdes0: serdes@f000000 { compatible = "ti,j721e-serdes-10g"; reg = <0x0f000000 0x00010000>; @@ -70,6 +72,8 @@ serdes_wiz1: phy@f010000 { assigned-clocks = <&k3_clks 280 1>; assigned-clock-parents = <&k3_clks 280 5>;
+ status = "disabled"; + serdes1: serdes@f010000 { compatible = "ti,j721e-serdes-10g"; reg = <0x0f010000 0x00010000>;
On 4/8/2025 4:06 PM, Siddharth Vadapalli wrote:
Since "serdes0" and "serdes1" which are the sub-nodes of "serdes_wiz0" and "serdes_wiz1" respectively, have been disabled in the SoC file already, and, given that these sub-nodes will only be enabled in a board file if the board utilizes any of the SERDES instances and the peripherals bound to them, we end up in a situation where the board file doesn't explicitly disable "serdes_wiz0" and "serdes_wiz1". As a consequence of this, the following errors show up when booting Linux:
wiz bus@f0000:phy@f000000: probe with driver wiz failed with error -12 ... wiz bus@f0000:phy@f010000: probe with driver wiz failed with error -12
To not only fix the above, but also, in order to follow the convention of disabling device-tree nodes in the SoC file and enabling them in the board files for those boards which require them, disable "serdes_wiz0" and "serdes_wiz1" device-tree nodes.
Fixes: 628e0a0118e6 ("arm64: dts: ti: k3-j722s-main: Add SERDES and PCIe support") Cc: stable@vger.kernel.org Signed-off-by: Siddharth Vadapalli s-vadapalli@ti.com
v1 of this patch is at: https://lore.kernel.org/r/20250408060636.3413856-3-s-vadapalli@ti.com/ Changes since v1:
- Added "Fixes" tag and updated commit message accordingly.
Regards, Siddharth.
arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi index 6850f50530f1..beda9e40e931 100644 --- a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi @@ -32,6 +32,8 @@ serdes_wiz0: phy@f000000 { assigned-clocks = <&k3_clks 279 1>; assigned-clock-parents = <&k3_clks 279 5>;
status = "disabled";
Since you are disabling parent node.
Do you still want to carry status = "disabled" in child nodes serdes0 and serdes1.
serdes0: serdes@f000000 { compatible = "ti,j721e-serdes-10g"; reg = <0x0f000000 0x00010000>;
@@ -70,6 +72,8 @@ serdes_wiz1: phy@f010000 { assigned-clocks = <&k3_clks 280 1>; assigned-clock-parents = <&k3_clks 280 5>;
status = "disabled";
- serdes1: serdes@f010000 { compatible = "ti,j721e-serdes-10g"; reg = <0x0f010000 0x00010000>;
On Fri, Apr 11, 2025 at 07:31:52PM +0530, Kumar, Udit wrote:
Hello Udit,
On 4/8/2025 4:06 PM, Siddharth Vadapalli wrote:
Since "serdes0" and "serdes1" which are the sub-nodes of "serdes_wiz0" and "serdes_wiz1" respectively, have been disabled in the SoC file already, and, given that these sub-nodes will only be enabled in a board file if the board utilizes any of the SERDES instances and the peripherals bound to them, we end up in a situation where the board file doesn't explicitly disable "serdes_wiz0" and "serdes_wiz1". As a consequence of this, the following errors show up when booting Linux:
wiz bus@f0000:phy@f000000: probe with driver wiz failed with error -12 ... wiz bus@f0000:phy@f010000: probe with driver wiz failed with error -12
To not only fix the above, but also, in order to follow the convention of disabling device-tree nodes in the SoC file and enabling them in the board files for those boards which require them, disable "serdes_wiz0" and "serdes_wiz1" device-tree nodes.
Fixes: 628e0a0118e6 ("arm64: dts: ti: k3-j722s-main: Add SERDES and PCIe support") Cc: stable@vger.kernel.org Signed-off-by: Siddharth Vadapalli s-vadapalli@ti.com
v1 of this patch is at: https://lore.kernel.org/r/20250408060636.3413856-3-s-vadapalli@ti.com/ Changes since v1:
- Added "Fixes" tag and updated commit message accordingly.
Regards, Siddharth.
arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi index 6850f50530f1..beda9e40e931 100644 --- a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi @@ -32,6 +32,8 @@ serdes_wiz0: phy@f000000 { assigned-clocks = <&k3_clks 279 1>; assigned-clock-parents = <&k3_clks 279 5>;
status = "disabled";
Since you are disabling parent node.
Do you still want to carry status = "disabled" in child nodes serdes0 and serdes1.
I could drop it, but then the patches will look something like: 1) Patch 1: Same as the first patch in this series 2) Patch 2: Current patch + Remove status = "disabled" within serdes0/1 3) Patch 3: Removed redundant status = "okay" within serdes0/1 in k3-j722s-evm.dts
Updated Patch 2 and the new Patch 3 mentioned above aren't necessarily a complete "Fix" and have other changes in addition to the "Fix". For that reason, the changes associated with the updated patch 2 and the new patch 3 could be a separate series, unless you believe that they should go together in the current series. Please let me know.
Regards, Siddharth.
Hi
On 4/11/2025 7:47 PM, Siddharth Vadapalli wrote:
On Fri, Apr 11, 2025 at 07:31:52PM +0530, Kumar, Udit wrote:
Hello Udit,
On 4/8/2025 4:06 PM, Siddharth Vadapalli wrote:
Since "serdes0" and "serdes1" which are the sub-nodes of "serdes_wiz0" and "serdes_wiz1" respectively, have been disabled in the SoC file already, and, given that these sub-nodes will only be enabled in a board file if the board utilizes any of the SERDES instances and the peripherals bound to them, we end up in a situation where the board file doesn't explicitly disable "serdes_wiz0" and "serdes_wiz1". As a consequence of this, the following errors show up when booting Linux:
wiz bus@f0000:phy@f000000: probe with driver wiz failed with error -12 ... wiz bus@f0000:phy@f010000: probe with driver wiz failed with error -12
To not only fix the above, but also, in order to follow the convention of disabling device-tree nodes in the SoC file and enabling them in the board files for those boards which require them, disable "serdes_wiz0" and "serdes_wiz1" device-tree nodes.
Fixes: 628e0a0118e6 ("arm64: dts: ti: k3-j722s-main: Add SERDES and PCIe support") Cc: stable@vger.kernel.org Signed-off-by: Siddharth Vadapalli s-vadapalli@ti.com
v1 of this patch is at: https://lore.kernel.org/r/20250408060636.3413856-3-s-vadapalli@ti.com/ Changes since v1:
- Added "Fixes" tag and updated commit message accordingly.
Regards, Siddharth.
arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi index 6850f50530f1..beda9e40e931 100644 --- a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi @@ -32,6 +32,8 @@ serdes_wiz0: phy@f000000 { assigned-clocks = <&k3_clks 279 1>; assigned-clock-parents = <&k3_clks 279 5>;
status = "disabled";
Since you are disabling parent node.
Do you still want to carry status = "disabled" in child nodes serdes0 and serdes1.
I could drop it, but then the patches will look something like:
- Patch 1: Same as the first patch in this series
- Patch 2: Current patch + Remove status = "disabled" within serdes0/1
- Patch 3: Removed redundant status = "okay" within serdes0/1 in k3-j722s-evm.dts
Updated Patch 2 and the new Patch 3 mentioned above aren't necessarily a complete "Fix" and have other changes in addition to the "Fix". For that reason, the changes associated with the updated patch 2 and the new patch 3 could be a separate series, unless you believe that they should go together in the current series. Please let me know.
I don't see any use case where serdes_wiz0 is enabled and serdes0 is disabled.
So your comment 3) is valid. you can take this clean up in other series
For now
Reviewed-by: Udit Kumar u-kumar1@ti.com
Regards, Siddharth.
On Fri, Apr 11, 2025 at 09:22:00PM +0530, Kumar, Udit wrote:
Hi
On 4/11/2025 7:47 PM, Siddharth Vadapalli wrote:
On Fri, Apr 11, 2025 at 07:31:52PM +0530, Kumar, Udit wrote:
[...]
Since you are disabling parent node.
Do you still want to carry status = "disabled" in child nodes serdes0 and serdes1.
I could drop it, but then the patches will look something like:
- Patch 1: Same as the first patch in this series
- Patch 2: Current patch + Remove status = "disabled" within serdes0/1
- Patch 3: Removed redundant status = "okay" within serdes0/1 in k3-j722s-evm.dts
Updated Patch 2 and the new Patch 3 mentioned above aren't necessarily a complete "Fix" and have other changes in addition to the "Fix". For that reason, the changes associated with the updated patch 2 and the new patch 3 could be a separate series, unless you believe that they should go together in the current series. Please let me know.
I don't see any use case where serdes_wiz0 is enabled and serdes0 is disabled.
So your comment 3) is valid. you can take this clean up in other series
For now
Reviewed-by: Udit Kumar u-kumar1@ti.com
I have posted the cleanup series at: https://lore.kernel.org/r/20250412052712.927626-1-s-vadapalli@ti.com/ The cleanup series applies on top of the current series.
Regards, Siddharth.
linux-stable-mirror@lists.linaro.org