Hi, We are trying to integrate a MAC to an external switch as following:
+-------------------+ +------------------+ | | RGMII | | | +------------+ KSZ9897 +------ 1000baseT MDI ("LAN1") | | PORT 6 | 7-port +------ 1000baseT MDI ("LAN2") | AM572x | | Ethernet +------ 1000baseT MDI ("LAN3") | CPSW |MIImgmt | switch +------ 1000baseT MDI ("LAN4") | +-------------+ +------ 1000baseT MDI ("LAN5") | | SPI | | | | | | | | | +------ 1000baseT MII ("LAN7") | | | | +------------------+ +------------------+ I have done all the configuration required for the MAC controller and enabled the KSZ driver in the kernel, I can see the following: ~$ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000 link/ether c4:f3:12:08:fe:7e brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether c4:f3:12:08:fe:7f brd ff:ff:ff:ff:ff:ff 4: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/sit 0.0.0.0 brd 0.0.0.0 5: lan1@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether c4:f3:12:08:fe:7e brd ff:ff:ff:ff:ff:ff 6: lan2@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether c4:f3:12:08:fe:7e brd ff:ff:ff:ff:ff:ff 7: lan3@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether c4:f3:12:08:fe:7e brd ff:ff:ff:ff:ff:ff 8: lan4@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether c4:f3:12:08:fe:7e brd ff:ff:ff:ff:ff:ff 9: lan5@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether c4:f3:12:08:fe:7e brd ff:ff:ff:ff:ff:ff 10: lan7@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether c4:f3:12:08:fe:7e brd ff:ff:ff:ff:ff:ff When I connect port 1 and port 5 to two different devices I can ping across them. But I am not able to ping the host/cpu port (eth0) from other ports. Do I need to create a bridge and then talk to host port ? Should CPU port come up as a different interface as cpu5 or should it remain eth0 itself ? When I get the port 1 up (ifconfig lan0 up), the device connected on other end of port1 says link is down, whereas the are connected. >> Log on host machine where switch is connected ~$ ifconfig lan0 up [ 3720.547985] ksz9477-switch spi3.0 lan0: Link is Down >> Log on device connected to port 1 [ 3629.045242] cpsw 48484000.ethernet eth0: Link is Down [ 3629.112376] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready Is the above behaviour expected ? Basically I want all the ports to talk to each other, should I be using DSA or look into swicthdev or something else. Could someone point me in the right direction. Cheers, --Prabhakar Lad