Hi,
We are currently using the layerscape module ls1028a in our custom board these are the network configuration that we are interested to use in our project.
SRDS_PRTCL_S1 = 0x9999

Reset Configuration Word (RCW):
00000000: 34004010 00000030 00000000 00000000
00000010: 00000000 008e0000 0030c000 00000000
00000020: 01403150 00002580 00000000 000080de
00000030: 00000000 00000010 00000000 00000000
00000040: 00000000 00000000 00000000 00000000
00000050: 00000000 00000000 00000000 00000000
00000060: 00000000 00000000 000e7000 00000000
00000070: 99990000 03000000
Using SERDES1 Protocol: 39321 (0x9999)
Device tree:
&enetc_port0 {
status = "disabled";
};
&enetc_port1 {
status = "disabled";
};
&enetc_mdio_pf3 {
mdio1_sgmii_phy01: ethernet-phy@1 {
reg = <0x01>;
};
};
/* l2switch ports */
mxl8153_port0: &mscc_felix_port0 {
status = "okay";
phy-mode = "sgmii";
fixed-link {
speed = <1000>;
full-duplex;
};
};
rj45_port1: &mscc_felix_port1{
status = "okay";
phy-mode = "sgmii";
phy-handle = <&mdio1_sgmii_phy01>;
};
sfp_port3: &mscc_felix_port2 {
status = "okay";
phy-mode = "1000base-x";
sfp = <&sfp_neta>;
fixed-link {
speed = <1000>;
full-duplex;
};
};
&mscc_felix_port3{
status = "disabled";
phy-mode = "sgmii";
};
~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1520 qdisc mq state UP group default qlen 1000
link/ether 00:d0:93:5a:58:89 brd ff:ff:ff:ff:ff:ff
altname enp0s0f2
inet6 fe80::2d0:93ff:fe5a:5889/64 scope link
valid_lft forever preferred_lft forever
4: swp0@eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:d0:93:5a:58:89 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.99/24 brd 192.168.1.255 scope global swp0
valid_lft forever preferred_lft forever
inet6 fe80::2d0:93ff:fe5a:5889/64 scope link
valid_lft forever preferred_lft forever
5: swp1@eno2: <BROADCAST,MULTIpiCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:d0:93:5a:58:89 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.99/24 brd 192.168.3.255 scope global swp1
valid_lft forever preferred_lft forever
inet6 fe80::2d0:93ff:fe5a:5889/64 scope link
valid_lft forever preferred_lft forever
6: swp2@eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:d0:93:5a:58:89 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.99/24 brd 192.168.2.255 scope global swp2
valid_lft forever preferred_lft forever
inet6 fe80::2d0:93ff:fe5a:5889/64 scope link
valid_lft forever preferred_lft forever
~# dmesg | grep felix
[ 2.878838] mscc_felix 0000:00:00.5: Adding to iommu group 0
[ 3.938295] mscc_felix 0000:00:00.5: Found PCS at internal MDIO address 0
[ 3.945147] mscc_felix 0000:00:00.5: Found PCS at internal MDIO address 1
[ 3.951985] mscc_felix 0000:00:00.5: Found PCS at internal MDIO address 2
[ 3.982181] mscc_felix 0000:00:00.5: configuring for fixed/internal link mode
[ 3.989402] mscc_felix 0000:00:00.5: Link is Up - 2.5Gbps/Full - flow control rx/tx
[ 4.016168] mscc_felix 0000:00:00.5 swp1 (uninitialized): PHY [0000:00:00.3:01] driver [RTL8211F Gigabit Ethernet] (irq=POLL)
[ 4.028004] mscc_felix 0000:00:00.5 swp2 (uninitialized): switched to inband/1000base-x link mode
[ 7.462744] mscc_felix 0000:00:00.5 swp0: configuring for fixed/sgmii link mode
[ 7.482654] mscc_felix 0000:00:00.5 swp0: Link is Up - 1Gbps/Full - flow control off
[ 7.531142] mscc_felix 0000:00:00.5 swp1: configuring for phy/sgmii link mode
[ 7.586585] mscc_felix 0000:00:00.5 swp2: configuring for inband/1000base-x link mode
[ 7.663844] mscc_felix 0000:00:00.5 swp2: Link is Up - 1Gbps/Full - flow control rx/tx
[ 10.629362] mscc_felix 0000:00:00.5 swp1: Link is Up - 1Gbps/Full - flow control rx/tx
~# dmesg | grep enetc
[ 0.788902] pci 0000:00:00.0: enetc_fixup_clear_rss_rfs+0x0/0x5c took 105157 usecs
[ 0.896919] pci 0000:00:00.1: enetc_fixup_clear_rss_rfs+0x0/0x5c took 105457 usecs
[ 1.004395] pci 0000:00:00.6: enetc_fixup_clear_rss_rfs+0x0/0x5c took 104925 usecs
[ 2.885141] fsl_enetc 0000:00:00.2: Adding to iommu group 1
[ 2.891055] fsl_enetc_mdio 0000:00:00.3: Adding to iommu group 2
[ 3.004108] fsl_enetc_mdio 0000:00:00.3: enabling device (0400 -> 0402)
[ 3.014087] fsl_enetc_ptp 0000:00:00.4: Adding to iommu group 3
[ 3.020113] fsl_enetc_ptp 0000:00:00.4: enabling device (0404 -> 0406)
[ 3.544114] fsl_enetc 0000:00:00.2: enabling device (0400 -> 0402)
[ 4.037412] fsl_enetc 0000:00:00.2 eth0: entered promiscuous mode
[ 7.215724] fsl_enetc 0000:00:00.2 eno2: renamed from eth0
[ 7.427418] fsl_enetc 0000:00:00.2 eno2: configuring for fixed/internal link mode
[ 7.442037] fsl_enetc 0000:00:00.2 eno2: Link is Up - 1Gbps/Full - flow control rx/tx
~# ethtool swp1
Settings for swp1:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: slave
Port: Twisted Pair
PHYAD: 1
Transceiver: external
MDI-X: Unknown
Supports Wake-on: d
Wake-on: d
Link detected: yes
The problem that I’m facing is that I’m not able to ping (send/receive data) using the interface swp1 (RJ45).
We tried to remove the flow control rx/tx using the ethtool using the following command before assigning an ip address to the interface and I was able to ping :
~# ethtool -A swp1 autoneg off rx off tx off
~# [ 128.775236] mscc_felix 0000:00:00.5 swp1: Link is Down
[ 131.557587] mscc_felix 0000:00:00.5 swp1: Link is Up - 1Gbps/Full - flow control off ping 192.168.3.222
PING 192.168.3.222 (192.168.3.222): 56 data bytes
64 bytes from 192.168.3.222: seq=0 ttl=128 time=0.861 ms
64 bytes from 192.168.3.222: seq=1 ttl=128 time=0.674 ms
Unfortunately, I lose the connection (ping) if I remove and replug the cable, if I try to test the interface from ethtool
~# ethtool -t swp1
The test result is FAIL
The test extra info:
1. Carrier 0
2. PHY dev is present 0
3. PHY internal loopback, enab 0
4. PHY internal loopback, UDP -110
5. PHY internal loopback, MTU -110
6. PHY internal loopback, TCP -110
7. PHY internal loopback, disa 0
This behavior is the same for linux kernel version 5.15 , 6.1.35 and 6.5.7 (we wanted to make sure that it was not a driver issue that is fixed in a newer version)