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

Reply via email to