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/DP83822H: DP83822H: Ping is not happening

Part Number: DP83822H

Tool/software: Linux

Hi,

         We are using DP83822 Phy in our MPC8360 based customized  board in MII mode. We are able to see the link active (100Mbps )when connected to PC, but ping is not happening. We have verified all phy configuration registers and all seems fine. We have monitored all TX lines(TX CLK,TX_EN,TX_D0,TX_D1,TX_D2,TX_D3) and RX CLK looks fine. But no data is seen on RX lines(RX_D0,RX_D1,RX_D2,RX_D3,RX_DV). I have attached the schematic(processor side and PHY side). Please help us in resolving this issue. Following are the register  values of DP83822

REG DUMP:

BMCR (0x0): 3100

PHYRCR (0x1f): 0

Strap Latch-In Register #1 (SOR1) (0x467): ffff

Strap Latch-In Register #2 (SOR2) (0x468): ffff

6266.SCHEMATIC1 _ 06_MPC8360_PCI_I2C.pdf6787.SCHEMATIC1 _ 11_DP83822_C&C_FE_.pdf

  • Hi Veena,

    Link status is reflected in register 0x01. Does the Link LED glow when you connect DP83822 to PC?
    I think you may have some issue with reading registers. 0x467 and 0x468 are in extended register space. Please refer to the datasheet for extended register space access and verify that it has been taken into account in your register read mechanism.

    Regarding the schematics
    1. The required PHY address is 00010. For this RX_D0 should be in mode 3 or mode 4. Currently, RX_D0 has 10K pull up resistor(R659). For configuring the PHY in mode 4, R659 needs to be 2.49kohm.
    2. Verify the strap resistor connected to RX_ER, this will control RGMII mode. RGMII mode might be getting activated accidentally. This will be easy to verify once extended register access is implemented and 0x467-0x468 registers are read.

    -Regards,
    Aniruddha
  • Hi,

    1) 2.49K pullup resistor is connected to RX_D0.

     2) Link LED is glowing when we connect DP83822 to PC. But ping is not happening.  Problem is  0x0467 and 0x0468 registers are reading wrong values(0x0467 =ffff, 0x0468=ffff)

  • Hello Veena,

    The registers might be reading incorrect values due problem with implementation of Extended Register Space Access. As I mentioned in my previous post, 0x467-0x468 are in extended register space. There is a specific algorithm that needs to be followed to read and write to such registers. It is explained in detail in the datasheet under ' Extended Register Space Access' section. Can you check if this was accounted for in your software?

    Another way to verify is to read registers higher than 0x1F that are not modified by straps or your software and verifying that the read value matched the datasheet. E.g. Read register 0x403. This controls the line driver voltage swing and should be 0x9FCF by default. If the read value matches the datasheet then the software has been implemented correctly. Please check register 0x17 and send the value that you read. 0x17 is not in the extended register space and you should be able to read it.

    -Regards,
    Aniruddha
  • Hi,

    We have written 0x0002 value(address function field = 00, DEVAD = 2) to register 0x000D(REGCR)  and 0x0000 value to the register 0x000E(ADDAR) as per Extended Register Space Access section. Its reading 0x000D and 0x000E registers properly. But 0x0467 and 0x0468 registers are still reading as ffff value.

  • Hi Veena,

    To read register 0x467 and 0x468, please follow these steps:

    1. Write 0x1F to register 0xD
    2. Write 0x467 to register 0xE
    3. Write 0x401F to register 0xD
    4. Read register 0xE

    Value in 0xE is the value of 0x467.