Hi, all!
I have custom board based on DM816x EVM. On my board is placed PHY Ethernet chip KSZ8051MNL (instead LSI ET1011C on EVM).
Can I use DaVinci EMAC driver from davinci_emac.c source code. I replaced EMAC_MDIO_PHY_MASK to 0xFFFFFFFF and after that my PHY device was detected as GENERIC, and no more. Values of registers from PHY device and CPU MDIO is correct (to my mind). Board connected to local network. If I try use ping or dhcp command I have no any result. Please tell me, which parts of the DaVinci EMAC driver I need to change? I can provide any additional information - schematic, software code, and so on. Thank you.
Power up board
MMC: OMAP SD/MMC: 0
Net: board_eth_init()
Detected MACID:40:5f:c2:27:d:50
davinci_emac.c: davinci_emac_initialize()
davinci_emac.c: davinci_eth_mdio_enable()
davinci_emac.c: davinci_eth_phy_detect()
davinci_eth_phy_detect(), ALIVE = 0x00000080
davinci_emac.c: davinci_eth_mdio_info() - VERSION = 0x40070106
davinci_emac.c: davinci_eth_mdio_info() - CONTROL = 0x4104007c
davinci_emac.c: davinci_eth_mdio_info() - ALIVE = 0x80
davinci_emac.c: davinci_eth_mdio_info() - LINK = 0x80
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_mdio_info() - PHY_BMCR = 0x3500
davinci_emac.c: davinci_eth_mdio_info() - PHY_BMSR = 0x786d
davinci_emac.c: davinci_eth_mdio_info() - PHY_PHYIDR1 = 0x22
davinci_emac.c: davinci_eth_mdio_info() - PHY_PHYIDR2 = 0x1555
davinci_emac.c: davinci_eth_mdio_info() - PHY_ANAR = 0x1e1
davinci_emac.c: davinci_eth_mdio_info() - PHY_ANLPAR = 0x45e1
davinci_emac.c: davinci_eth_mdio_info() - PHY_ANER = 0x7
davinci_emac.c: davinci_eth_mdio_info() - PHY_ANNPTR = 0x2001
davinci_emac.c: davinci_eth_mdio_info() - PHY_ANLPNP = 0x0
davinci_emac.c: davinci_eth_mdio_info() - Extended registers
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_mdio_info() - 0x17 = 0xfe30
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_mdio_info() - 0x1B = 0x29
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_mdio_info() - 0x1D = 0x0
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
Ethernet PHY: GENERIC @ 0x07
miiphyutil.c: miiphy_register()
miiphy_register: added 'GENERIC @ 0x07', read=0xc070c01c, write=0xc070bf5c
DaVinci EMAC
Hit any key to stop autoboot: 0
Environment variables:
ethaddr=40:5f:c2:27:0d:50
ethact=DaVinci EMAC
ipaddr=192.168.0.99
netmask=255.255.255.0
Ping
#ping 192.168.0.39
davinci_emac.c: davinci_eth_close()
davinci_emac.c: davinci_eth_ch_teardown(1)
davinci_emac.c: davinci_eth_ch_teardown(0)
davinci_emac.c: davinci_eth_open()
davinci_emac.c: davinci_eth_mdio_enable()
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_write(0x7)
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_write(0x7)
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_write(0x7)
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: gen_get_link_speed(0x7) - Link is Up
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: davinci_eth_open() - set EMAC for Full Duplex
davinci_emac.c: davinci_eth_open() - MACCONTROL = 0x21
Using DaVinci EMAC device
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: gen_get_link_speed(0x7) - Link is Up
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: gen_get_link_speed(0x7) - Link is Up
davinci_emac.c: davinci_eth_send_packet() - send 60 bytes
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: gen_get_link_speed(0x7) - Link is Up
davinci_emac.c: davinci_eth_phy_read(0x7) - Ok
davinci_emac.c: gen_get_link_speed(0x7) - Link is Up
davinci_emac.c: davinci_eth_send_packet() - send 60 bytes
davinci_emac.c: davinci_eth_close()
davinci_emac.c: davinci_eth_ch_teardown(1)
davinci_emac.c: davinci_eth_ch_teardown(0)
ping failed; host 192.168.0.39 is not alive