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.

DM6446+DP83848无法正常工作“ping failed; host 192.168.1.1 is not alive”

Other Parts Discussed in Thread: AM3358

芯片:DM6446 + PHY DP83848

硬件平台:   自主设计  

软件环境:  uboot下调试

阶段:处于硬件调试阶段

错误描述:无法ping:

提示:

ping failed; host 192.168.1.1 is not alive

通过查看文章,考虑是否是寄存器配置不一致,

也就是 说PHY(DP83848)和DM6446的EMAC相关控制寄存器配置不一致,导致无法正常工作。

请教 几个问题:

1、如何针对DP83848 如何配置 dm6446 emac或者mdio的寄存器

2、uboot中相关设置代码?

3、DM6446的EMAC控制寄存器地址?

  • 初始化信息(通过串口)

    添加了调试信息打印

    DM6446_810 initialization passed!

    Booting TI User Boot Loader

            UBL Version: 1.65

            UBL Flashtype: NAND

    Starting NAND Copy...

    Valid magicnum, 0x55424CBB, found in block 0x00000006.

       DONE

     

    umping to entry point at 0x81080000.

    U-Boot 1.2.0 (Apr 25 2013 - 09:27:52)

     

    U-Boot code: 81080000 -> 810A5570  BSS: -> 810B0DD4

    dram_init info:

     start:0x80000000, size:0x10000000

    RAM Configuration:

    Bank #0: 80000000 256 MB

    ******Init-1 NAND*******

    NAND:  256 MB

    ******Init-2 env_relocate*******

    env_relocate[197] offset = 0x0

    env_relocate[215] malloced ENV at 81051a60

    env_relocate[248] env_relocate_spec

    env_nand.c env_relocate_spec

    ******Init-3 IP and MAC*******

    ******Init-4 devices_init*******

    ******Init-5 jumptable*******

    ******Init-6 console_init_r*******

    In:    serial

    serial: 80000003 : 0

    tstc:810847e4

    getc:81084808

    putc:81084878

    puts:810848b0

    Out:   serial

    serial: 80000003 : 0

    tstc:810847e4

    getc:81084808

    putc:81084878

    puts:810848b0

    Err:   serial

    ******Init-7 misc_init_r*******

    ARM Clock : 405MHz

    DDR Clock : 189MHz

    dm644x_eth_phy_detect(), ALIVE = 0x00000002

    active_phy_addr = 0x01

    phy_id = 0x20005c90

    Ethernet PHY: DP83848 @ 0x01

    ******Init-8 ethenet init*******

    ### main_loop entered: bootdelay=10

     

    ### main_loop: bootcmd="nboot 0x80800000 0 0x168000"

    Hit any key to stop autoboot:  0

    Fanck_v1.2 #

    从打印的调试信息看出,DP83848初始化通过。

  • Ping 命令下的调试信息

    Fanck_v1.2 # ping 192.168.1.1

    + emac_close

    + emac_ch_teardown

    - emac_ch_teardown

    + emac_ch_teardown

    - emac_ch_teardown

    - emac_close

    + emac_open

    - emac_open

    sending ARP for 0101a8c0

    ARP broadcast 1

    ARP broadcast 2

    + emac_close

    + emac_ch_teardown

    - emac_ch_teardown

    + emac_ch_teardown

    - emac_ch_teardown

    - emac_close

    ping failed; host 192.168.1.1 is not alive

  • uboot下  使用mii命令

    Fanck _v1.2 # mii dump 0x01 0

    0.     (3100)                 -- PHY control register --

      (8000:0000) 0.15    =     0    reset

      (4000:0000) 0.14    =     0    loopback

      (2040:2000) 0. 6,13 =   b01    speed selection = 100 Mbps

      (1000:1000) 0.12    =     1    A/N enable

      (0800:0000) 0.11    =     0    power-down

      (0400:0000) 0.10    =     0    isolate

      (0200:0000) 0. 9    =     0    restart A/N

      (0100:0100) 0. 8    =     1    duplex = full

      (0080:0000) 0. 7    =     0    collision test enable

      (003f:0000) 0. 5- 0 =     0    (reserved)

  • 由于能用mii接口访问PHY,并且从dp83848的clkout能观测到波形,

    判断 电路正确

  • 考虑是控制寄存器配置的问题,手头有合纵达的板子。对此进行对比试验。

    PHY内部控制寄存器比较

    用mii显示phy内部控制寄存器值(合纵达大量修改了uboot代码,下面0x01应该不是其真正的地址,mii访问到的不是

    真实的值。

    SEED_DVS6446_v1.2 # mii dump 0x01 0

    0.     (ffff)                 -- PHY control register --

      (8000:8000) 0.15    =     1    reset

      (4000:4000) 0.14    =     1    loopback

      (2040:2040) 0. 6,13 =   b11    speed selection = ??? Mbps

      (1000:1000) 0.12    =     1    A/N enable

      (0800:0800) 0.11    =     1    power-down

      (0400:0400) 0.10    =     1    isolate

      (0200:0200) 0. 9    =     1    restart A/N

      (0100:0100) 0. 8    =     1    duplex = full

      (0080:0080) 0. 7    =     1    collision test enable

      (003f:003f) 0. 5- 0 =    63    (reserved)

    Fanck_v1.2 # mii dump 0x01 0

    dm644x_eth_phy_read(): phy_addr=0001, reg_num=0x0000 , data = 0x3100

    0.     (3100)                 -- PHY control register --

      (8000:0000) 0.15    =     0    reset

      (4000:0000) 0.14    =     0    loopback

      (2040:2000) 0. 6,13 =   b01    speed selection = 100 Mbps

      (1000:1000) 0.12    =     1    A/N enable

      (0800:0000) 0.11    =     0    power-down

      (0400:0000) 0.10    =     0    isolate

      (0200:0000) 0. 9    =     0    restart A/N

      (0100:0100) 0. 8    =     1    duplex = full

      (0080:0000) 0. 7    =     0    collision test enable

      (003f:0000) 0. 5- 0 =     0    (reserved)

  • DM6446的EMAC、MDIO控制寄存器访问

    Uboot中关于寄存器地址的定义

    #define EMAC_BASE_ADDR                      (0x01c80000)

    #define EMAC_WRAPPER_BASE_ADDR          (0x01c81000)

    #define EMAC_WRAPPER_RAM_ADDR           (0x01c82000)

    #define EMAC_MDIO_BASE_ADDR                  (0x01c84000)

    SEED_DVS6446_v1.2 # md 0x01c80000

    01c80000: 000c0a07 00000000 00000000 00000000    ................

    01c80010: 000c0a07 00000000 00000000 00000000    ................

    01c80020: 00000000 00000000 00000000 00000000    ................

     

    Fanck_v1.2 # md 0x01c80000

    01c80000: 000c0a07 00000000 00000000 00000000    ................

    01c80010: 000c0a07 00000000 00000000 00000000    ................

    01c80020: 00000000 00000000 00000000 00000000    ................

     基本一致

    其中  0h 000c0a07应该是Transmit Identification and Version Register (TXIDVER)

  • MDIO寄存器值 0x01c84000

    01c84000: 00070103 41040030 00000001 00000001    ....0..A........

    01c84010: 00000003 00000000 00000000 00000000    ................

    01c84020: 00000001 00000000 00000000 00000000    ................

    01c84030: 00000000 00000000 00000000 00000000    ................

    01c84040: 00000000 00000000 00000000 00000000    ................

    01c84050: 00000000 00000000 00000000 00000000    ................

    01c84060: 00000000 00000000 00000000 00000000    ................

    01c84070: 00000000 00000000 00000000 00000000    ................

    01c84080: 20003000 00000000 00000000 00000000    .0. ............

    01c84090: 00000000 00000000 00000000 00000000    ................

    01c840a0: 00000000 00000000 00000000 00000000    ................

    01c840b0: 00000000 00000000 00000000 00000000    ................

    01c840c0: 00000000 00000000 00000000 00000000    ................

    01c840d0: 00000000 00000000 00000000 00000000    ................

    01c840e0: 00000000 00000000 00000000 00000000    ................

    01c840f0: 00000000 00000000 00000000 00000000    ................

     

    Fanck_v1.2 # md 0x01c84000

    01c84000: 00070103 41000030 00000002 00000002    ....0..A........

    01c84010: 00000000 00000000 00000000 00000000    ................

    01c84020: 00000001 00000000 00000000 00000000    ................

    01c84030: 00000000 00000000 00000000 00000000    ................

    01c84040: 00000000 00000000 00000000 00000000    ................

    01c84050: 00000000 00000000 00000000 00000000    ................

    01c84060: 00000000 00000000 00000000 00000000    ................

    01c84070: 00000000 00000000 00000000 00000000    ................

    01c84080: 20013100 00000000 00000000 00000000    .1. ............

    01c84090: 00000000 00000000 00000000 00000000    ................

    01c840a0: 00000000 00000000 00000000 00000000    ................

    01c840b0: 00000000 00000000 00000000 00000000    ................

    01c840c0: 00000000 00000000 00000000 00000000    ................

    01c840d0: 00000000 00000000 00000000 00000000    ................

    01c840e0: 00000000 00000000 00000000 00000000    ................

    01c840f0: 00000000 00000000 00000000 00000000    ................

     

  • 1)MDIO (4h)  CONTROL

    (41040030 :0100 0001 0000 0100 0000 0000 0011 0000)

    (41000030 :0100 0001 0000 0000 0000 0000 0011 0000)

    区别

     

    2)MDIO(08h) ALIVE

    00000002 说明 Address 为0x1的PHY识别到

     

    3)MDIO(0ch) LINK

    00000002  说明 Address 为0x1的PHY识别到

     

    4)MDIO(80h)USERACCESS0

    20003000:0010 0000 0000 0000 0011 0000 0000 0000

    20013100:0010 0000 0000 0001 0011 0001 0000 0000

     

    PHYADR【20-16】:0 0001   说明PHY地址为0x01

     

  • 问题已经解决。

    最终在TI的英文网上上找到思路。

    是硬件上的一个问题,焊接工人的一个失误。

    寻找定位到这个问题,十分费劲。

  • 请问,是什么问题,我做的am3358+ar8031遇到同样的问题,如可以,请发qq8341248@163.com,谢谢

  • 你好,请问能把你的问题定位给我解释一下么?现在我调试网络这一块,肯定是硬件问题,但是AR8031的管脚信号都是正常的,但是ping不通,谢谢了!

  • 我也遇到相似问题 ,我是使用DM6467+88e1111.更改了phy.ping不同,能否把解决问题的方法发给我一份。邮箱sunhaichaook@163.com