Tool/software: Code Composer Studio
Hi experts.
I have a strange problem on our custom board with C66AK2H14 chip (core Rev 11) instead of TCI6638K2K
present on yours evm k2h evaluation board.
It seems a wrong 1GSwitchSubSystem configuration error, there are some patch to add at uboot to do that?
or in QMSS or some device three wrong parameter? I don't know.
I have configured (I suppose well) our phy (88E1548) but the ethernet packets no enter/exit from our board.
I use wireshark for see eth packets and to send I use packETH (configured using my PC eth data and
netcp@2000000 eth parameter).
The phy is configured as 1000M Ful Duplex, the external switch show autonegotiation end with success,
(as show in latest log).
The same code wich some little difference (not in eth parts) and some little difference in DTS runs in
EVM board without any problem, in the same HW configuration (external SWITCH + PC connections).
PS: in our board we not use phy interrupt (in evaluation board this signal was connected at GPIO/SPI
adapter connected in uController, I hope also in EVM this signa wal not handled from SOC).
I have seen also a strange configuration in arp request message, the uboot use MAC broadcast eth
00:00:00:00:00:00 instead of FF:FF:FF:FF:FF:FF, I have also tried to change this, without any success
(then I have removed my patch).
uclass.c@246: uclass_find_device_by_seq: 0 1
U-Boot 2018.01-00558-gafce7b16cd-dirty (Dec 13 2019 - 11:09:56 +0100)
CPU: 66AK2Hx Rev11 (DRSP)
Model: Rheinmetall DRSP board (UBoot)
DRAM: DDR3A Speed will be configured for 1600 Operation.
DDR3A memory bank [DRSP-K2H-2G1600SED]
DDR3 speed 1600
DRAM: 2 GiB (includes reported below)
DRAM: 2 GiB
***************************************************************
Relocation Offset is: f3e86000
Relocating to ffe86000, new gd at fde75ed8, sp at fde75eb0
***************************************************************
uclass.c@246: uclass_find_device_by_seq: 0 -1
uclass.c@246: uclass_find_device_by_seq: 0 0
uclass.c@254: - -1 -1 'root_driver'
uclass.c@262: - not found
ofnode.c@136: ofnode_read_u32_array: ranges: ofnode.c@22: ofnode_read_u32: reg: ofnode.c@38: 0x0 (0)
ofnode.c@22: ofnode_read_u32: spi-max-frequency: ofnode.c@38: 0x337f980 (54000000)
ofnode.c@64: ofnode_read_bool: spi-cpol: ofnode.c@68: true
ofnode.c@64: ofnode_read_bool: spi-cpha: ofnode.c@68: true
ofnode.c@64: ofnode_read_bool: spi-cs-high: ofnode.c@68: false
ofnode.c@64: ofnode_read_bool: spi-3wire: ofnode.c@68: false
ofnode.c@64: ofnode_read_bool: spi-half-duplex: ofnode.c@68: false
ofnode.c@22: ofnode_read_u32: spi-tx-bus-width: ofnode.c@38: 0x1 (1)
ofnode.c@22: ofnode_read_u32: spi-rx-bus-width: ofnode.c@38: 0x1 (1)
eth_post_bind: Called
NAND: 1024 MiB
MMC:
uclass.c@246: uclass_find_device_by_seq: 0 0
uclass.c@254: - 0 -1 'spi@21000400'
uclass.c@254: - 1 -1 'spi@21000600'
uclass.c@254: - 2 -1 'spi@21000800'
uclass.c@262: - not found
uclass.c@246: uclass_find_device_by_seq: 1 0
uclass.c@254: - 0 -1 'spi@21000400'
uclass.c@258: - found
uclass.c@246: uclass_find_device_by_seq: 0 -1
uclass.c@246: uclass_find_device_by_seq: 0 0
uclass.c@254: - -1 -1 'soc'
uclass.c@262: - not found
uclass.c@246: uclass_find_device_by_seq: 0 0
uclass.c@254: - 0 -1 'spi@21000400'
uclass.c@254: - 1 -1 'spi@21000600'
uclass.c@254: - 2 -1 'spi@21000800'
uclass.c@262: - not found
ofnode.c@22: ofnode_read_u32: spi-max-frequency: ofnode.c@33: (not found)
uclass.c@246: uclass_find_device_by_seq: 0 -1
uclass.c@246: uclass_find_device_by_seq: 0 0
uclass.c@254: - -1 -1 'mt25qu256a@0'
uclass.c@262: - not found
SF: Detected mt25qu256a with page size 256 Bytes, erase size 64 KiB, total 32 MiB
uclass.c@246: uclass_find_device_by_seq: 0 1
uclass.c@254: - -1 -1 'netcp@2000000'
uclass.c@262: - not found
uclass.c@246: uclass_find_device_by_seq: 0 2
uclass.c@254: - -1 -1 'netcp@2000000'
uclass.c@262: - not found
uclass.c@246: uclass_find_device_by_seq: 0 3
uclass.c@254: - -1 -1 'netcp@2000000'
uclass.c@262: - not found
uclass.c@246: uclass_find_device_by_seq: 0 0
uclass.c@254: - -1 -1 'netcp@2000000'
uclass.c@262: - not found
Net: eth_initialize: Called
uclass.c@246: uclass_find_device_by_seq: 0 -1
uclass.c@246: uclass_find_device_by_seq: 0 0
uclass.c@254: - -1 -1 'netcp@2000000'
uclass.c@262: - not found
ks2_eth_ofdata_to_platdata: Called
ks2_eth_bind_slaves: Called
ks2_eth_parse_slave_interface: Called
ks2_eth_probe: Called
ks2_serdes_init_cfg: base=0x232A000 clk=0x3, rate=0x1
keystone2_mdio_reset: Called
create_phy_by_mask: r=0 phy_id=0x1410EC0
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0000 val=0x8000
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0000 val=0x0000
netcp@2000000 connected to Marvell 88E1548
m88e1145_config_daia: Called
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0016 val=0x00FF
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0011 val=0x214B
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0010 val=0x2144
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0011 val=0x0C28
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0010 val=0x2146
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0011 val=0xB233
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0010 val=0x214D
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0011 val=0xDC0C
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0010 val=0x2159
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0016 val=0x00FB
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0007 val=0xC00D
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0016 val=0x0000
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0010 val=0x3320
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0010 val=0x3020
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0010 val=0x3020
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0010 val=0x3020
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0016 val=0x0001
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0000 val=0x0140
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0000 val=0x1140
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0016 val=0x0000
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0004 val=0x01E1
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0004 val=0x01E1
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0009 val=0x0300
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0009 val=0x0300
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0016 val=0x0001
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0004 val=0x0901
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0004 val=0x0961
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0016 val=0x0000
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0009 val=0x0300
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0009 val=0x1F00
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0012 val=0x0000
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0016 val=0x0002
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0010 val=0x0008
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0015 val=0x0006
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0016 val=0x0000
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0014 val=0x0020
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0014 val=0x0020
genphy_config_aneg: Called
genphy_config_advert: Calleda
genphy_config_advert: phydev->supported=0x2ff
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0004 val=0x01E1
genphy_config_advert: adv=0x1e1
adv2=0x1e1
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x7949
bmsr=0x7949
bmsr2=0x7949
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0009 val=0x1F00
adv4=0x1f00
adv5=0x1f00
changed=0x0
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0009 val=0x1F00
err=0x0
genphy_config_aneg: return 1 0x0
genphy_config_aneg: return 2 0x0
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0000 val=0x0000
genphy_restart_aneg: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0000 val=0x0000
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0000 val=0x1200
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0000 val=0x1000
phy_write: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0000 val=0x9000
eth_post_probe: Called
ks2_eth_read_rom_hwaddr: Called
eth0: netcp@2000000ks2_eth_write_hwaddr: Called
Net IF Nr: 1
Hit any key to stop autoboot: 0
DRSP_UBoot> setenv ipaddr 192.168.99.23
DRSP_UBoot> setenv gatewayip 192.168.99.1
DRSP_UBoot> dhcp
ks2_eth_stop: Called
eth_init: Called
Trying netcp@2000000
ks2_eth_start: Called
keystone_sgmii_config: Called interface 1 port 0
netcp@2000000 Waiting for SGMII auto negotiation to complete.
Exit: mask=0x5 status=0x3D done
ethss_config: Called
keystone2_mdio_reset: Called
m88e1145_startup_daia: Called
genphy_update_link: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
genphy_update_link: Exit 1,phydev->link=0x1
genphy_update_link: Exit 1 phy.c @ 311, Link =1, speed=0, duplex=-1
m88e1xxx_parse_status: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0011 val=0xBC48
m88e1xxx_parse_status: Exit marvell.c @ 201, Link =1, speed=1000, duplex=1
keystone2_eth_gigabit_enable: Called
ethss_start: Called
mac_sl_reset: Called
mac_sl_config: Called
mac_sl_reset: Called
mac_sl_config: Called
mac_sl_reset: Called
mac_sl_config: Called
mac_sl_reset: Called
mac_sl_config: Called
BOOTP broadcast 1
eth_send: Called
genphy_update_link: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
genphy_update_link: Exit 0,phydev->link=0x1 mii_reg=0x796D
ks2_eth_send: Called keystone_net.c @ 846 link=1
ksnav_send: Called keystone_nav.c @ 289 ret OK
K2H PKT: "ff ff ff ff ff ff 50 33 8b 6b 35 7c 08 00 45 00 01 48 00 00 40 00 ff 11 7a a5 00 00 00 00 ff ff ff ff 00 44 00 43 01 34 00 00 01 01 06 00 8b 6c 77 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
BOOTP broadcast 2
eth_send: Called
genphy_update_link: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
genphy_update_link: Exit 0,phydev->link=0x1 mii_reg=0x796D
ks2_eth_send: Called keystone_net.c @ 846 link=1
ksnav_send: Called keystone_nav.c @ 289 ret OK
K2H PKT: "ff ff ff ff ff ff 50 33 8b 6b 35 7c 08 00 45 00 01 48 00 01 40 00 ff 11 7a a4 00 00 00 00 ff ff ff ff 00 44 00 43 01 34 00 00 01 01 06 00 8b 6c 78 61 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
BOOTP broadcast 3
eth_send: Called
genphy_update_link: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
genphy_update_link: Exit 0,phydev->link=0x1 mii_reg=0x796D
ks2_eth_send: Called keystone_net.c @ 846 link=1
ksnav_send: Called keystone_nav.c @ 289 ret OK
K2H PKT: "ff ff ff ff ff ff 50 33 8b 6b 35 7c 08 00 45 00 01 48 00 02 40 00 ff 11 7a a3 00 00 00 00 ff ff ff ff 00 44 00 43 01 34 00 00 01 01 06 00 8b 6c 7a 58 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
BOOTP broadcast 4
eth_send: Called
genphy_update_link: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
genphy_update_link: Exit 0,phydev->link=0x1 mii_reg=0x796D
ks2_eth_send: Called keystone_net.c @ 846 link=1
ksnav_send: Called keystone_nav.c @ 289 ret OK
K2H PKT: "ff ff ff ff ff ff 50 33 8b 6b 35 7c 08 00 45 00 01 48 00 03 40 00 ff 11 7a a2 00 00 00 00 ff ff ff ff 00 44 00 43 01 34 00 00 01 01 06 00 8b 6c 7e 43 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
BOOTP broadcast 5
eth_send: Called
genphy_update_link: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
genphy_update_link: Exit 0,phydev->link=0x1 mii_reg=0x796D
ks2_eth_send: Called keystone_net.c @ 846 link=1
ksnav_send: Called keystone_nav.c @ 289 ret OK
K2H PKT: "ff ff ff ff ff ff 50 33 8b 6b 35 7c 08 00 45 00 01 48 00 04 40 00 ff 11 7a a1 00 00 00 00 ff ff ff ff 00 44 00 43 01 34 00 00 01 01 06 00 8b 6c 86 16 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00
BOOTP broadcast 6
eth_send: Called
genphy_update_link: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
genphy_update_link: Exit 0,phydev->link=0x1 mii_reg=0x796D
ks2_eth_send: Called keystone_net.c @ 846 link=1
ksnav_send: Called keystone_nav.c @ 289 ret OK
K2H PKT: "ff ff ff ff ff ff 50 33 8b 6b 35 7c 08 00 45 00 01 48 00 05 40 00 ff 11 7a a0 00 00 00 00 ff ff ff ff 00 44 00 43 01 34 00 00 01 01 06 00 8b 6c 8d e9 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00
BOOTP broadcast 7
eth_send: Called
genphy_update_link: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
genphy_update_link: Exit 0,phydev->link=0x1 mii_reg=0x796D
ks2_eth_send: Called keystone_net.c @ 846 link=1
ksnav_send: Called keystone_nav.c @ 289 ret OK
K2H PKT: "ff ff ff ff ff ff 50 33 8b 6b 35 7c 08 00 45 00 01 48 00 06 40 00 ff 11 7a 9f 00 00 00 00 ff ff ff ff 00 44 00 43 01 34 00 00 01 01 06 00 8b 6c 95 bc 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00
BOOTP broadcast 8
eth_send: Called
genphy_update_link: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
genphy_update_link: Exit 0,phydev->link=0x1 mii_reg=0x796D
ks2_eth_send: Called keystone_net.c @ 846 link=1
ksnav_send: Called keystone_nav.c @ 289 ret OK
K2H PKT: "ff ff ff ff ff ff 50 33 8b 6b 35 7c 08 00 45 00 01 48 00 07 40 00 ff 11 7a 9e 00 00 00 00 ff ff ff ff 00 44 00 43 01 34 00 00 01 01 06 00 8b 6c 9d 8f 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00
ks2_eth_stop: Called
ethss_stop: Called
mac_sl_reset: Called
mac_sl_reset: Called
mac_sl_reset: Called
mac_sl_reset: Called
genphy_shutdown: Called
Abort
DRSP_UBoot> ping 192.168.99.150
ks2_eth_stop: Called
eth_init: Called
Trying netcp@2000000
ks2_eth_start: Called
keystone_sgmii_config: Called interface 1 port 0
netcp@2000000 Waiting for SGMII auto negotiation to complete.
Exit: mask=0x5 status=0x3D done
ethss_config: Called
keystone2_mdio_reset: Called
m88e1145_startup_daia: Called
genphy_update_link: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
genphy_update_link: Exit 0,phydev->link=0x1 mii_reg=0x796D
m88e1xxx_parse_status: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0011 val=0xAC48
m88e1xxx_parse_status: Exit marvell.c @ 201, Link =1, speed=1000, duplex=1
keystone2_eth_gigabit_enable: Called
ethss_start: Called
mac_sl_reset: Called
mac_sl_config: Called
mac_sl_reset: Called
mac_sl_config: Called
mac_sl_reset: Called
mac_sl_config: Called
mac_sl_reset: Called
mac_sl_config: Called
*** ERROR: `ipaddr' not set
ks2_eth_stop: Called
ethss_stop: Called
mac_sl_reset: Called
mac_sl_reset: Called
mac_sl_reset: Called
mac_sl_reset: Called
genphy_shutdown: Called
ping failed; host 192.168.99.150 is not alive
DRSP_UBoot> setenv ipaddr 192.168.99.23
DRSP_UBoot> ping 192.168.99.150
ks2_eth_stop: Called
eth_init: Called
Trying netcp@2000000
ks2_eth_start: Called
keystone_sgmii_config: Called interface 1 port 0
netcp@2000000 Waiting for SGMII auto negotiation to complete.
Exit: mask=0x5 status=0x3D done
ethss_config: Called
keystone2_mdio_reset: Called
m88e1145_startup_daia: Called
genphy_update_link: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
genphy_update_link: Exit 0,phydev->link=0x1 mii_reg=0x796D
m88e1xxx_parse_status: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0011 val=0xAC48
m88e1xxx_parse_status: Exit marvell.c @ 201, Link =1, speed=1000, duplex=1
keystone2_eth_gigabit_enable: Called
ethss_start: Called
mac_sl_reset: Called
mac_sl_config: Called
mac_sl_reset: Called
mac_sl_config: Called
mac_sl_reset: Called
mac_sl_config: Called
mac_sl_reset: Called
mac_sl_config: Called
ping_start: Called
Using netcp@2000000 device
ping_send: Called
set_icmp_header: Called
arp_raw_request: Called
MAC: target: 00:00:00:00:00:00 local: 50:33:8B:6B:35:7C
eth_send: Called
genphy_update_link: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
genphy_update_link: Exit 0,phydev->link=0x1 mii_reg=0x796D
ks2_eth_send: Called keystone_net.c @ 846 link=1
ksnav_send: Called keystone_nav.c @ 289 ret OK
K2H PKT: "ff ff ff ff ff ff 50 33 8b 6b 35 7c 08 06 00 01 08 00 06 04 00 01 50 33 8b 6b 35 7c c0 a8 63 17 00 00 00 00 00 00 c0 a8 63 96 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
arp_raw_request: Called
MAC: target: 00:00:00:00:00:00 local: 50:33:8B:6B:35:7C
eth_send: Called
genphy_update_link: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
genphy_update_link: Exit 0,phydev->link=0x1 mii_reg=0x796D
ks2_eth_send: Called keystone_net.c @ 846 link=1
ksnav_send: Called keystone_nav.c @ 289 ret OK
K2H PKT: "ff ff ff ff ff ff 50 33 8b 6b 35 7c 08 06 00 01 08 00 06 04 00 01 50 33 8b 6b 35 7c c0 a8 63 17 00 00 00 00 00 00 c0 a8 63 96 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
arp_raw_request: Called
MAC: target: 00:00:00:00:00:00 local: 50:33:8B:6B:35:7C
eth_send: Called
genphy_update_link: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
genphy_update_link: Exit 0,phydev->link=0x1 mii_reg=0x796D
ks2_eth_send: Called keystone_net.c @ 846 link=1
ksnav_send: Called keystone_nav.c @ 289 ret OK
K2H PKT: "ff ff ff ff ff ff 50 33 8b 6b 35 7c 08 06 00 01 08 00 06 04 00 01 50 33 8b 6b 35 7c c0 a8 63 17 00 00 00 00 00 00 c0 a8 63 96 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
arp_raw_request: Called
MAC: target: 00:00:00:00:00:00 local: 50:33:8B:6B:35:7C
eth_send: Called
genphy_update_link: Called
phy_read: devad=0xFFFFFFFF phydev->addr=0x0000 regnum=0x0001 val=0x796D
genphy_update_link: Exit 0,phydev->link=0x1 mii_reg=0x796D
ks2_eth_send: Called keystone_net.c @ 846 link=1
ksnav_send: Called keystone_nav.c @ 289 ret OK
K2H PKT: "ff ff ff ff ff ff 50 33 8b 6b 35 7c 08 06 00 01 08 00 06 04 00 01 50 33 8b 6b 35 7c c0 a8 63 17 00 00 00 00 00 00 c0 a8 63 96 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
arp_raw_request: Called
....
ks2_eth_stop: Called
ethss_stop: Called
mac_sl_reset: Called
mac_sl_reset: Called
mac_sl_reset: Called
mac_sl_reset: Called
genphy_shutdown: Called
Abort
ping failed; host 192.168.99.150 is not alive
DRSP_UBoot> <INTERRUPT>
DRSP_UBoot>
I had added some printout to check if this state is recognizd from u-boot:
I had added the following changes in code (in wireshark nothing appear of this packets):
int ksnav_send(struct pktdma_cfg *pktdma, u32 *pkt, int num_bytes, u32 swinfo2)
{
struct qm_host_desc *hd;
uchar *data = (uchar *)pkt;
hd = qm_pop(qm_cfg->qpool_num);
printf("%s: Called %s @ %d ret %s\n",
__func__, 1+strrchr(__FILE__, '/'), __LINE__, hd == NULL ? "Fail":"OK");
if (hd == NULL)
return QM_ERR;
hd->desc_info = num_bytes;
hd->swinfo[2] = swinfo2;
hd->packet_info = qm_cfg->qpool_num;
qm_buff_push(hd, pktdma->tx_snd_q, pkt, num_bytes);
int i ;
printf("K2H PKT: \"");
for (i = 0; i < num_bytes; i++ )
printf("%02x ", data[i]);
printf("\" \n");
return QM_OK;
}
I can't see the following also if I send arp req/arp reply or other eth packet from my PC,
I send arp messages when on board a ping command runs:
void arp_receive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len)
{
struct arp_hdr *arp;
struct in_addr reply_ip_addr;
int eth_hdr_size;
/*
* We have to deal with two types of ARP packets:
* - REQUEST packets will be answered by sending our
* IP address - if we know it.
* - REPLY packates are expected only after we asked
* for the TFTP server's or the gateway's ethernet
* address; so if we receive such a packet, we set
* the server ethernet address
*/
debug_cond(DEBUG_NET_PKT, "Got ARP\n");
printf("Got ARP\n");
arp = (struct arp_hdr *)ip;
if (len < ARP_HDR_SIZE) {
printf("bad length %d < %d\n", len, ARP_HDR_SIZE);
return;
}
if (ntohs(arp->ar_hrd) != ARP_ETHER)
return;
uchar *data =(uchar *)et;
int i, num_bytes = len;
printf("RCV PKT: \"");
for (i = 0; i < num_bytes; i++ )
printf("%02x ", data[i]);
printf("\" \n");
...
**** keystone-k2hk-drsp.dts: *****
....
&mdio {
status = "ok";
ethphy0: ethernet-phy@0 {
compatible = "marvell,88E1548", "ethernet-phy-ieee802.3-c22";
reg = <0>;
local-mac-address = [ 12 18 31 7e 3e 6a ];
};
};
**** keystone-drsp.dtsi: *****
....
mdio: mdio@0 { //2090300 {
compatible = "ti,keystone_mdio", "ti,davinci_mdio";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x02090300 0x100>, <0x02F90500 0x100>;
status = "disabled";
clocks = <&clkcpgmac>;
clock-names = "fck";
bus_freq = <2500000>;
};
/include/ "keystone-drsp-netcp.dtsi"
};
};
**** keystone-drsp-netcp.dtsi: *****
qmss: qmss@2a40000 {
compatible = "ti,keystone-navigator-qmss";
dma-coherent;
#address-cells = <1>;
#size-cells = <1>;
clocks = <&chipclk13>;
ranges;
queue-range = <0 0x4000>;
linkram0 = <0x100000 0x8000>;
linkram1 = <0x0 0x10000>;
qmgrs {
#address-cells = <1>;
#size-cells = <1>;
ranges;
qmgr0 {
managed-queues = <0 0x2000>;
reg = <0x2a40000 0x20000>,
<0x2a06000 0x400>,
<0x2a02000 0x1000>,
<0x2a03000 0x1000>,
<0x23a80000 0x20000>,
<0x2a80000 0x20000>;
reg-names = "peek", "status", "config",
"region", "push", "pop";
};
qmgr1 {
managed-queues = <0x2000 0x2000>;
reg = <0x2a60000 0x20000>,
<0x2a06400 0x400>,
<0x2a04000 0x1000>,
<0x2a05000 0x1000>,
<0x23aa0000 0x20000>,
<0x2aa0000 0x20000>;
reg-names = "peek", "status", "config",
"region", "push", "pop";
};
};
queue-pools {
qpend {
qpend-0 {
qrange = <658 8>;
interrupts =<0 40 0xf04 0 41 0xf04 0 42 0xf04
0 43 0xf04 0 44 0xf04 0 45 0xf04
0 46 0xf04 0 47 0xf04>;
};
qpend-1 {
qrange = <8704 16>;
interrupts = <0 48 0xf04 0 49 0xf04 0 50 0xf04
0 51 0xf04 0 52 0xf04 0 53 0xf04
0 54 0xf04 0 55 0xf04 0 56 0xf04
0 57 0xf04 0 58 0xf04 0 59 0xf04
0 60 0xf04 0 61 0xf04 0 62 0xf04
0 63 0xf04>;
qalloc-by-id;
};
qpend-2 {
qrange = <8720 16>;
interrupts = <0 64 0xf04 0 65 0xf04 0 66 0xf04
0 59/*67*/ 0xf04 0 68 0xf04 0 69 0xf04
0 70 0xf04 0 71 0xf04 0 72 0xf04
0 73 0xf04 0 74 0xf04 0 75 0xf04
0 76 0xf04 0 77 0xf04 0 78 0xf04
0 79 0xf04>;
};
};
general-purpose {
gp-0 {
qrange = <4000 64>;
};
netcp-tx {
qrange = <640 9>;
qalloc-by-id;
};
netcpx-tx {
qrange = <8752 8>;
qalloc-by-id;
};
};
};
descriptor-regions {
#address-cells = <1>;
#size-cells = <1>;
ranges;
region-12 {
id = <12>;
region-spec = <8192 128>; /* num_desc desc_size */
link-index = <0x4000>;
};
};
}; /* qmss */
knav_dmas: knav_dmas@0 {
compatible = "ti,keystone-navigator-dma";
clocks = <&papllclk>/*, <&clkxge>*/;
//clocks = <&papllclk>, <&clkxge>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
ti,navigator-cloud-address = <0x23a80000 0x23a90000
0x23aa0000 0x23ab0000>;
dma_gbe: dma_gbe@0 {
reg = <0x2004000 0x100>,
<0x2004400 0x120>,
<0x2004800 0x300>,
<0x2004c00 0x120>,
<0x2005000 0x400>;
reg-names = "global", "txchan", "rxchan",
"txsched", "rxflow";
};
};
gbe_subsys: subsys@2090000 {
compatible = "syscon";
reg = <0x02090000 0x100>;
};
xgbe_subsys: subsys@2f00000 {
status = "ok";
compatible = "syscon";
reg = <0x02f00000 0x100>;
};
xgbe_pcsr: pcsr@2f00000 {
status = "disabled";
compatible = "syscon";
reg = <0x02f00600 0x100>;
};
netcp: netcp@2000000 {
reg = <0x2620110 0x8>;
reg-names = "efuse";
compatible = "ti,netcp-1.0";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x2000000 0x100000>;
clocks = <&papllclk>, <&clkcpgmac>, <&chipclk12>;
dma-coherent;
ti,navigator-dmas = <&dma_gbe 22>, <&dma_gbe 23>,
<&dma_gbe 24>, <&dma_gbe 25>,
<&dma_gbe 8>;
ti,navigator-dma-names = "netrx0", "netrx1",
"netrx2", "netrx3",
"nettx";
netcp-devices {
ranges;
#address-cells = <1>;
#size-cells = <1>;
gbe@90000 { // ETHSS
#address-cells = <1>;
#size-cells = <1>;
label = "netcp-gbe";
compatible = "ti,netcp-gbe";
reg = <0x90000 0x300>, <0x90400 0x400>, <0x90800 0x700>;
// enable-ale;
tx-queue = <648>;
tx-channel = "nettx";
interfaces {
gbe0: interface-0 {
slave-port = <0>;
link-interface = <1>;
phy-handle = <ðphy0>;
};
};
secondary-slave-ports {
};
};
};
netcp-interfaces {
interface-0 {
rx-channel = "netrx0";
rx-pool = <1024 12>;
tx-pool = <1024 12>;
rx-queue-depth = <128 128 0 0>;
rx-buffer-size = <1518 4096 0 0>;
rx-queue = <8704>;
tx-completion-queue = <8708>;
efuse-mac = <1>;
netcp-gbe = <&gbe0>;
};
};
};
PS: I has configured only the first phy to reduce debug prints, but also to enable them the
situation not change, then some parameter in DTS are present to support multiphy.
I use ti-processor-sdk-linux-k2hk-evm-05.02.00.10 for host linux version.
I have some suggest to check to solve this "little" problem?
Every suggestion are welcome.
Best regards,
Dario