This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM5K2E02: udhcpd on keystone 2 network issues

Part Number: AM5K2E02

Tool/software: Linux

Hello,

I have a customer board with a keystone 2 and 6 1Gbe Ethernet interfaces.

I use a dhcp server on interface eth1 and it works if all interfaces are available on hardware.

dmesg on good case:

[   20.819884] net eth1: netcp device eth1 opened
[   20.819894] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   20.826255] net eth1: adding address ff:ff:ff:ff:ff:ff, type 4
[   20.826267] net eth1: adding address 02:18:31:7e:3e:00, type 1
[   20.831714] net eth1: adding address 33:33:00:00:00:01, type 3
[   20.831778] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   20.838143] net eth1: adding address 01:00:5e:00:00:01, type 3
[   20.838158] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[   20.847444] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   20.867225] net eth2: opened RX channel: eeb69c90
[   20.952381] netcp-1.0 2620110.netcp eth2: Link is Down
[   20.957723] net eth2: netcp device eth2 opened
[   20.957733] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   20.964094] net eth2: adding address ff:ff:ff:ff:ff:ff, type 4
[   20.964107] net eth2: adding address 1e:f3:64:ea:cc:40, type 1
[   20.969557] net eth2: adding address 33:33:00:00:00:01, type 3
[   20.969622] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   20.975982] net eth2: adding address 01:00:5e:00:00:01, type 3
[   20.976002] IPv6: ADDRCONF(NETDEV_UP): eth2: link is not ready
[   20.985345] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   21.005559] net eth3: opened RX channel: eeb69d10
[   21.592370] netcp-1.0 2620110.netcp eth3: Link is Down
[   21.597707] net eth3: netcp device eth3 opened
[   21.597717] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   21.604082] net eth3: adding address ff:ff:ff:ff:ff:ff, type 4
[   21.604094] net eth3: adding address ee:44:f2:06:72:7a, type 1
[   21.609541] net eth3: adding address 33:33:00:00:00:01, type 3
[   21.609603] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   21.615966] net eth3: adding address 01:00:5e:00:00:01, type 3
[   21.615981] IPv6: ADDRCONF(NETDEV_UP): eth3: link is not ready
[   21.625500] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   21.645740] net eth6: opened RX channel: eeb69f10
[   22.158100] netcp-1.0 2620110.netcp: phy not found on slave 6
[   22.163878] net eth6: module open failed
[   22.535632] net eth6: opened RX channel: eeb69f10
[   23.047821] netcp-1.0 2620110.netcp: phy not found on slave 6
[   23.053581] net eth6: module open failed
[   23.452606] net eth7: opened RX channel: eeb6d890
[   23.455992] PHY: Marvell  88X3120
[   23.460213] netcp-1.0 soc:netcp@2f00000 eth7: Link is Down
[   23.465733] netcp-1.0 soc:netcp@2f00000: link_recover process initiated: eth7 slave 0
[   23.473973] pps pps1: new PPS source ptp1
[   23.478001] cpts rftclk: sel(0),rate(625000000 HZ),mult(4096),shift(9),div(5)
[   23.486647] net eth7: netcp device eth7 opened
[   23.486660] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   23.493024] net eth7: adding address ff:ff:ff:ff:ff:ff, type 4
[   23.493037] net eth7: adding address ae:c4:34:32:08:65, type 1
[   23.493837] net eth7: adding address 33:33:00:00:00:01, type 3
[   23.494705] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   23.501053] net eth7: adding address 01:00:5e:00:00:01, type 3
[   23.501890] IPv6: ADDRCONF(NETDEV_UP): eth7: link is not ready
[   23.511331] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   23.531590] net eth8: opened RX channel: eeb6dc90
[   23.531615] netcp-1.0 soc:netcp@2f00000 eth8: Link is Down
[   23.537220] netcp-1.0 soc:netcp@2f00000: link_recover process initiated: eth8 slave 1
[   23.546548] net eth8: netcp device eth8 opened
[   23.546559] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   23.552925] net eth8: adding address ff:ff:ff:ff:ff:ff, type 4
[   23.552937] net eth8: adding address 7e:0f:fa:4d:b3:fa, type 1
[   23.553738] net eth8: adding address 33:33:00:00:00:01, type 3
[   23.553866] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   23.560215] net eth8: adding address 01:00:5e:00:00:01, type 3
[   23.560227] IPv6: ADDRCONF(NETDEV_UP): eth8: link is not ready
[   23.569568] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   23.812322] kserdes_phy_enable_rx
[   23.815781] netcp-1.0 2620110.netcp eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[   23.823932] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[   23.830734] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   23.837222] net eth1: adding address 33:33:ff:7e:3e:00, type 3
[   23.988753] random: sshd: uninitialized urandom read (32 bytes read, 8 bits of entropy available)
[   24.227969] random: nonblocking pool is initialized
[   24.341988] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   24.952220] kserdes_phy_enable_rx
[   24.955539] netcp-1.0 2620110.netcp eth2: Link is Up - 1Gbps/Full - flow control rx/tx
[   24.963481] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
[   24.969851] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   24.976222] net eth2: adding address 33:33:ff:ea:cc:40, type 3

if some interfaces are not available and then I use eth1 for dhcp server the service doesn't get the incoming news.

But if I switch the interface eth1 in promiscuous mode it works like case one:

The command to switch mode:

ifconfig eth1 promisc

dmesg on error case:

[   20.705957] net eth0: netcp device eth0 opened
[   20.705970] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   20.712335] net eth0: adding address ff:ff:ff:ff:ff:ff, type 4
[   20.712347] net eth0: adding address b4:99:4c:01:3f:f5, type 1
[   20.717793] net eth0: adding address 33:33:00:00:00:01, type 3
[   20.723296] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   20.729643] net eth0: adding address 01:00:5e:00:00:01, type 3
[   20.735106] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   20.744640] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   20.764676] net eth1: opened RX channel: eeb69c10
[   20.901879] cpts: unable to obtain a time stamp
[   21.352397] netcp-1.0 2620110.netcp eth1: Link is Down
[   21.357568] netcp-1.0 2620110.netcp: opened tx pipe tx-pipe-2620110
[   21.359541] netcp-1.0 2620110.netcp: opened tx pipe tx-pipe-2620110
[   21.359578] netcp-1.0 2620110.netcp: opened tx pipe tx-pipe-2620110
[   21.359613] netcp-1.0 2620110.netcp: opened tx pipe tx-pipe-2620110
[   21.359647] netcp-1.0 2620110.netcp: opened tx pipe tx-pipe-2620110
[   21.359681] netcp-1.0 2620110.netcp: opened tx pipe tx-pipe-2620110
[   21.359714] netcp-1.0 2620110.netcp: opened tx pipe tx-pipe-2620110
[   21.359918] net eth1: netcp device eth1 opened
[   21.359928] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   21.366290] net eth1: adding address ff:ff:ff:ff:ff:ff, type 4
[   21.366302] net eth1: adding address 02:18:31:7e:3e:00, type 1
[   21.371751] net eth1: adding address 33:33:00:00:00:01, type 3
[   21.371816] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   21.378179] net eth1: adding address 01:00:5e:00:00:01, type 3
[   21.378195] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[   21.387457] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   21.407543] net eth2: opened RX channel: eeb69c90
[   21.919860] netcp-1.0 2620110.netcp: phy not found on slave 2
[   21.925619] net eth2: module open failed
[   22.315906] net eth2: opened RX channel: eeb69c90
[   22.828837] netcp-1.0 2620110.netcp: phy not found on slave 2
[   22.834600] net eth2: module open failed
[   23.212505] net eth3: opened RX channel: eeb69d10
[   23.725923] netcp-1.0 2620110.netcp: phy not found on slave 3
[   23.731665] net eth3: module open failed
[   24.095707] net eth3: opened RX channel: eeb69d10
[   24.352222] kserdes_phy_enable_rx
[   24.355539] netcp-1.0 2620110.netcp eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[   24.609041] netcp-1.0 2620110.netcp: phy not found on slave 3
[   24.614800] net eth3: module open failed
[   24.971909] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[   24.978270] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   24.985916] net eth1: adding address 33:33:ff:7e:3e:00, type 3
[   25.001865] net eth6: opened RX channel: eeb69f10
[   25.513932] netcp-1.0 2620110.netcp: phy not found on slave 6
[   25.519674] net eth6: module open failed
[   25.925956] net eth6: opened RX channel: eeb69f10
[   26.437722] netcp-1.0 2620110.netcp: phy not found on slave 6
[   26.443483] net eth6: module open failed
[   26.812619] net eth7: opened RX channel: eeb6d890
[   26.816009] PHY: Marvell  88X3120
[   26.820229] netcp-1.0 soc:netcp@2f00000 eth7: Link is Down
[   26.825723] netcp-1.0 soc:netcp@2f00000: link_recover process initiated: eth7 slave 0
[   26.833905] pps pps0: new PPS source ptp0
[   26.837931] cpts rftclk: sel(0),rate(625000000 HZ),mult(4096),shift(9),div(5)
[   26.846567] net eth7: netcp device eth7 opened
[   26.846581] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   26.852941] net eth7: adding address ff:ff:ff:ff:ff:ff, type 4
[   26.852952] net eth7: adding address 3a:b4:0f:74:2c:85, type 1
[   26.853753] net eth7: adding address 33:33:00:00:00:01, type 3
[   26.854627] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   26.860975] net eth7: adding address 01:00:5e:00:00:01, type 3
[   26.861776] IPv6: ADDRCONF(NETDEV_UP): eth7: link is not ready
[   26.871260] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   26.891355] net eth8: opened RX channel: eeb6dc90
[   26.891380] netcp-1.0 soc:netcp@2f00000 eth8: Link is Down
[   26.896876] netcp-1.0 soc:netcp@2f00000: link_recover process initiated: eth8 slave 1
[   26.906180] net eth8: netcp device eth8 opened
[   26.906191] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   26.912552] net eth8: adding address ff:ff:ff:ff:ff:ff, type 4
[   26.912563] net eth8: adding address 3e:45:9a:6e:b8:c5, type 1
[   26.913364] net eth8: adding address 33:33:00:00:00:01, type 3
[   26.913429] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   26.919777] net eth8: adding address 01:00:5e:00:00:01, type 3
[   26.919789] IPv6: ADDRCONF(NETDEV_UP): eth8: link is not ready
[   26.929235] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c
[   27.347245] random: sshd: uninitialized urandom read (32 bytes read, 11 bits of entropy available)
[   27.583594] random: nonblocking pool is initialized
[   27.697445] netcp_set_rx_mode: Caller is __dev_set_rx_mode+0x64/0x9c

If I remove slave 2 and slave 3 it works again.

Can some help me?

Why does the incoming news only go to eth1 if i use the promisc mode, if slave 2 and slave 3 is not available?