Part Number: TDA4VH-Q1
Hello
SDK:9.2
I am using the Linux device tree overlay k3-j784s4-evm-quad-port-eth-exp1.dtbo, with the following configuration:
- 2 × SGMII connected to 1Gbps PHYs
- 2 × SGMII connected to a 2.5Gbps switch.
Why am I getting the following error?
[ 2.072239] omap-mailbox 31f85000.mailbox: omap mailbox rev 0x66fca100
[ 2.080701] ------------[ cut here ]------------
[ 2.085308] WARNING: CPU: 2 PID: 9 at drivers/reset/core.c:766 __reset_control_get_internal+0x68/0x17c
[ 2.094606] Modules linked in:
[ 2.097651] CPU: 2 PID: 9 Comm: kworker/u16:0 Not tainted 6.1.80-ti-g2e423244f8c0 #1
[ 2.105373] Hardware name: Texas Instruments J784S4 EVM (DT)
[ 2.111014] Workqueue: events_unbound deferred_probe_work_func
[ 2.116837] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 2.123780] pc : __reset_control_get_internal+0x68/0x17c
[ 2.129076] lr : __of_reset_control_get+0x178/0x1d4
[ 2.133939] sp : ffff8000093d3910
[ 2.137240] x29: ffff8000093d3910 x28: 0000000000000000 x27: ffff0008bdd294b8
[ 2.144358] x26: 0000000000000001 x25: 0000000000000000 x24: 0000000000000001
[ 2.151476] x23: 0000000000000000 x22: ffff0008be697288 x21: 0000000000000003
[ 2.158594] x20: ffff0008be6972a8 x19: ffff0008bdd29180 x18: ffffffffffffffff
[ 2.165711] x17: 6472616820656874 x16: 2064616572206f74 x15: ffff0008be112a1c
[ 2.172828] x14: ffffffffffffffff x13: 0000000000000000 x12: 0000000000000019
[ 2.179946] x11: 0101010101010101 x10: ffff84000b17e958 x9 : 0000000000000020
[ 2.187063] x8 : 0101010101010101 x7 : 0000737465736573 x6 : 0000000000000000
[ 2.194181] x5 : fffffbfffdce9924 x4 : 0000000000000000 x3 : 0000000000000001
[ 2.201297] x2 : 0000000000000003 x1 : 0000000000000003 x0 : 0000000000000000
[ 2.208415] Call trace:
[ 2.210848] __reset_control_get_internal+0x68/0x17c
[ 2.215798] __of_reset_control_get+0x178/0x1d4
[ 2.220313] of_reset_control_array_get+0xac/0x1a0
[ 2.225089] cdns_torrent_phy_probe+0xb28/0x1bac
[ 2.229694] platform_probe+0x68/0xe0
[ 2.233343] really_probe+0xbc/0x2dc
[ 2.236904] __driver_probe_device+0x78/0x114
[ 2.241245] driver_probe_device+0xd8/0x15c
[ 2.245413] __device_attach_driver+0xb8/0x134
[ 2.249842] bus_for_each_drv+0x7c/0xdc
[ 2.253665] __device_attach+0xac/0x1d0
[ 2.257485] device_initial_probe+0x14/0x20
[ 2.261654] bus_probe_device+0x9c/0xa4
[ 2.265477] deferred_probe_work_func+0x88/0xc0
[ 2.269993] process_one_work+0x1d0/0x320
[ 2.273993] worker_thread+0x2c8/0x444
[ 2.277728] kthread+0x10c/0x110
[ 2.280944] ret_from_fork+0x10/0x20
[ 2.284508] ---[ end trace 0000000000000000 ]---
[ 2.289124] cdns-torrent-phy 5020000.serdes: phy@0: failed to get reset
[ 2.295792] cdns-torrent-phy: probe of 5020000.serdes failed with error -16
[ 2.304305] ti-udma 285c0000.dma-controller: Channels: 22 (tchan: 11, rchan: 11, gp-rflow: 8)
[ 2.314201] ti-udma 31150000.dma-controller: Channels: 66 (tchan: 33, rchan: 33, gp-rflow: 16)
[ 2.725856] spi-nand: probe of spi0.0 failed with error -110
[ 2.733378] spi-nor spi1.0: mt25qu512a (65536 Kbytes)
[ 2.738464] 7 fixed-partitions partitions found on MTD device 47050000.spi.0
[ 2.745500] Creating 7 MTD partitions on "47050000.spi.0":
[ 2.750972] 0x000000000000-0x000000100000 : "qspi.tiboot3"
[ 2.757049] 0x000000100000-0x000000300000 : "qspi.tispl"
[ 2.762891] 0x000000300000-0x000000700000 : "qspi.u-boot"
[ 2.768794] 0x000000700000-0x000000740000 : "qspi.env"
[ 2.774445] 0x000000740000-0x000000780000 : "qspi.env.backup"
[ 2.780694] 0x000000800000-0x000003fc0000 : "qspi.rootfs"
[ 2.786592] 0x000003fc0000-0x000004000000 : "qspi.phypattern"
[ 2.829763] davinci_mdio 46000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[ 2.837415] ======get_phy_device================
[ 2.842434] mdio_bus 46000f00.mdio: MDIO device at address 0 is missing.
[ 2.849142] am65-cpsw-nuss 46000000.ethernet: initializing am65 cpsw nuss version 0x6BA02102, cpsw version 0x6BA82102 Ports: 2 quirks:00000000
[ 2.861998] am65-cpsw-nuss 46000000.ethernet: initialized cpsw ale version 1.4
[ 2.869205] am65-cpsw-nuss 46000000.ethernet: ALE Table size 64
[ 2.875340] pps pps0: new PPS source ptp1
[ 2.879468] am65-cpsw-nuss 46000000.ethernet: CPTS ver 0x4e8a010b, freq:500000000, add_val:1 pps:1
[ 2.889369] am65-cpsw-nuss 46000000.ethernet: set new flow-id-base 48
[ 2.933761] davinci_mdio c000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[ 2.941329] mdio_bus c000f00.mdio: phy_device_create: addr 3 id 0x5043, is_c45 0
[ 2.949057] =========2112_probe============
[ 2.951597] ==retData1:0x80,retData2:0x4000
[ 2.961676] retData3:0x40,retData4:0x10
[ 2.973977] hwmon hwmon0: temp1_input not attached to any thermal zone
[ 2.980940] mdio_bus c000f00.mdio: phy_device_create: addr 2 id 0x5043, is_c45 0
[ 2.988491] =========2112_probe============
[ 2.990972] ==retData1:0x80,retData2:0x4000
[ 3.001050] retData3:0x40,retData4:0x10
[ 3.013855] hwmon hwmon1: temp1_input not attached to any thermal zone
[ 3.020804] davinci_mdio c000f00.mdio: phy[2]: device c000f00.mdio:02, driver Marvell 88Q2112
[ 3.029325] davinci_mdio c000f00.mdio: phy[3]: device c000f00.mdio:03, driver Marvell 88Q2112
[ 3.037852] am65-cpsw-nuss c000000.ethernet: initializing am65 cpsw nuss version 0x6BA03102, cpsw version 0x6BA82902 Ports: 9 quirks:00000000
[ 3.151160] cdns-torrent-phy 5050000.serdes: Timeout waiting for CMN ready
[ 3.158022] phy phy-5050000.serdes.13: phy poweron failed --> -110
[ 3.164652] am65-cpsw-nuss: probe of c000000.ethernet failed with error -110
dtso:
#include "k3-pinctrl.h"
&{/} {
aliases {
ethernet0 = "/bus@100000/ethernet@c000000/ethernet-ports/port@1";
ethernet1 = "/bus@100000/ethernet@c000000/ethernet-ports/port@2";
ethernet2 = "/bus@100000/ethernet@c000000/ethernet-ports/port@3";
ethernet3 = "/bus@100000/ethernet@c000000/ethernet-ports/port@4";
ethernet4 = "/bus@100000/ethernet@c000000/ethernet-ports/port@5";
ethernet5 = "/bus@100000/ethernet@c000000/ethernet-ports/port@6";
ethernet6 = "/bus@100000/ethernet@c000000/ethernet-ports/port@7";
ethernet7 = "/bus@100000/ethernet@c000000/ethernet-ports/port@8";
};
};
&main_cpsw0 {
status = "okay";
pinctrl-names = "default";
};
&main_cpsw0_port1 {
status = "disabled";//"okay";
phy-mode = "usxgmii";
mac-address = [00 00 00 00 00 00];
phys = <&cpsw0_phy_gmii_sel 1>, <&serdes2_usxgmii_link>;
phy-names = "mac", "serdes";
fixed-link {
speed = <10000>;
full-duplex;
};
};
&main_cpsw0_port2 {
status = "disabled";//"okay";
phy-mode = "usxgmii";
mac-address = [00 00 00 00 00 00];
phys = <&cpsw0_phy_gmii_sel 2>, <&serdes2_usxgmii_link>;
phy-names = "mac", "serdes";
fixed-link {
speed = <10000>;
full-duplex;
};
};
&main_cpsw0_port4 {
status = "okay";
// phy-handle = <&cpsw9g_phy1>;
phy-mode = "sgmii";
mac-address = [00 00 00 00 00 00];
phys = <&cpsw0_phy_gmii_sel 4>, <&serdes1_qsgmii_link>;
phy-names = "mac", "serdes";
fixed-link {
speed = <2500>;
full-duplex;
};
};
&main_cpsw0_port6 {
status = "okay";
phy-handle = <&cpsw9g_phy0>;
phy-mode = "sgmii";
mac-address = [00 00 00 00 00 00];
phys = <&cpsw0_phy_gmii_sel 6>, <&serdes2_qsgmii_link>;
phy-names = "mac", "serdes";
fixed-link {
speed = <1000>;
full-duplex;
};
};
&main_cpsw0_port7 {
status = "okay";
phy-handle = <&cpsw9g_phy0>;
phy-mode = "sgmii";
mac-address = [00 00 00 00 00 00];
phys = <&cpsw0_phy_gmii_sel 7>, <&serdes2_qsgmii_link>;
phy-names = "mac", "serdes";
fixed-link {
speed = <1000>;
full-duplex;
};
};
&main_cpsw0_port8 {
status = "okay";
// phy-handle = <&cpsw9g_phy3>;
phy-mode = "sgmii";
mac-address = [00 00 00 00 00 00];
phys = <&cpsw0_phy_gmii_sel 8>, <&serdes4_qsgmii_link>;
phy-names = "mac", "serdes";
fixed-link {
speed = <2500>;
full-duplex;
};
};
&main_cpsw0_mdio {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&mdio0_pins_default>;
bus_freq = <1000000>;
#address-cells = <1>;
#size-cells = <0>;
cpsw9g_phy0: ethernet-phy@2 {
reg = <2>;
compatible = "ethernet-phy-id0000.5043","ethernet-phy-ieee802.3-c22";
device_type = "ethernet-phy";
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
ti,min-output-impedance;
ethphy-mode = "master";
ethphy-speed = "10000";
};
cpsw9g_phy1: ethernet-phy@3 {
reg = <3>;
compatible = "ethernet-phy-id0000.5043","ethernet-phy-ieee802.3-c22";
device_type = "ethernet-phy";
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
ethphy-mode = "master";
ethphy-speed = "10000";
};
};
&cpsw9g_virt_mac {
status = "disabled";
};
&cpsw9g_virt_maconly {
status = "disabled";
};
&main_pmx0 {
mdio0_pins_default: mdio0-pins-default {
pinctrl-single,pins = <
J784S4_IOPAD(0x05c, PIN_INPUT, 4) /* (AC36) MCASP2_AXR0.MDIO1_MDIO */
J784S4_IOPAD(0x058, PIN_INPUT, 4) /* (AE37) MCASP2_AFSX.MDIO1_MDC */
>;
};
};
&serdes_ln_ctrl {
idle-states =
<J784S4_SERDES0_LANE0_PCIE1_LANE0>, <J784S4_SERDES0_LANE1_IP1_UNUSED>,
<J784S4_SERDES0_LANE2_PCIE3_LANE0>, <J784S4_SERDES0_LANE3_IP4_UNUSED>,
<J784S4_SERDES1_LANE0_PCIE0_LANE0>, <J784S4_SERDES1_LANE1_QSGMII_LANE4>,
<J784S4_SERDES1_LANE2_PCIE2_LANE0>, <J784S4_SERDES1_LANE3_IP4_UNUSED>,
<J784S4_SERDES2_LANE0_QSGMII_LANE5>, <J784S4_SERDES2_LANE1_QSGMII_LANE6>,
<J784S4_SERDES2_LANE2_QSGMII_LANE1>, <J784S4_SERDES2_LANE3_QSGMII_LANE2>,
<J784S4_SERDES4_LANE0_IP3_UNUSED>, <J784S4_SERDES4_LANE1_IP3_UNUSED>,
<J784S4_SERDES4_LANE2_QSGMII_LANE7>, <J784S4_SERDES4_LANE3_QSGMII_LANE8>;
};
&serdes_wiz2 {
status = "okay";
assigned-clock-parents = <&k3_clks 406 9>;
};
&serdes_wiz1 {
status = "okay";
};
&serdes_wiz4 {
status = "okay";
};
&serdes2 {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
serdes2_qsgmii_link: phy@0 {
reg = <2>;
cdns,num-lanes = <1>;
#phy-cells = <0>;
cdns,phy-type = <PHY_TYPE_SGMII>;
resets = <&serdes_wiz2 3>;
};
serdes2_usxgmii_link: phy@2 {
reg = <2>;
cdns,num-lanes = <2>;
#phy-cells = <0>;
cdns,phy-type = <PHY_TYPE_USXGMII>;
resets = <&serdes_wiz2 3>, <&serdes_wiz2 4>;
};
};
&serdes1 {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
serdes1_qsgmii_link: phy@0 {
reg = <2>;
cdns,num-lanes = <1>;
#phy-cells = <0>;
cdns,phy-type = <PHY_TYPE_SGMII>;
resets = <&serdes_wiz1 2>;
};
};
&serdes4 {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
serdes4_qsgmii_link: phy@0 {
reg = <4>;
cdns,num-lanes = <1>;
#phy-cells = <0>;
cdns,phy-type = <PHY_TYPE_SGMII>;
resets = <&serdes_wiz4 4>;
};
};
Is there any problem with this device tree?
On Linux, how can I use multiple lanes from the same SerDes, where one lane runs SGMII at 1Gbps and another lane runs SGMII at 2.5Gbps?
Best Regards,
jun