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.

DP83826I: DP83826 Change strapped value (of duplex) using SMI

Part Number: DP83826I

Hello,

I am trying to change the strapped configuration by modifying the PHY register through SMI (management) interface. Specifically, strap configuration is for half-duplex mode, PHY starts like this, and I wish to change it to full-duplex.

Without any register modification, I see at the link partner a negotiated speed of 10mbps+Half-duplex, and BMSR (register address 1) bits 14 and 12 are 0 (no duplex speeds advertised).

I try to change the duplex capability acquired by straps, by writing registers as follows (in 2 steps):

- first, modify BMCR.(register address 0) bit 8 to 1 to enable duplex mode

- then apply a software restart, by setting PHYRCR (register address 1F) bit 14 to 1

After the change (BMCR is verified after, and is indeed changed), everything stays the same:

I see a re-negotiation, but the net result is still 10mbp+half-duplex, BMSR bits 14 and 12 on 0.

My question is: shouldn't BMSR be affected by the procedure? Is it (generally) possible to change strap values using the software restart feature?

All comments are appreciated.

Alecsandru Neacsu

  • Hi Alecsandru,

    Can you read the following registers both before and after software restart and tell me the values?

    • 0x0, 0x1, 0x5, 0x10, 0x11, 0x467, 0x468

    Thanks,

    Lucas

    All information in this correspondence and in any related correspondence is provided “as is” and “with all faults”, and it is subject to TI’s Important Notice (http://www.ti.com/corp/docs/legal/important-notice.shtml).

  • Hello Lucas,

    Here you have the values:

    - after power-up, before any register write:

    0x0 (BMCR) = 0x3000

    0x1 (BMSR) = 0x786D

    0x5 (ANLPAR) = 0xCC61

    0x10 (PHYSTS) = 0x5913

    0x11 (PHYSCR) = 0x010B

    0x467 (SOR1) = 0x2001

    0x468 (SOR2) = 0x0000

    - after writing to 0x0 (BMCR) the value 0x3100, all register remain as above, except 0x0 (BMCR) = 0x3100

    - after writing to 0x1F (PHYRCR) the value 0x4000, and after waiting >10 seconds:

    0x0 (BMCR) = 0x3100

    0x1 (BMSR) = 0x786D

    0x5 (ANLPAR) = 0xCC61

    0x10 (PHYSTS) = 0x5913

    0x11 (PHYSCR) = 0x010B

    0x467 (SOR1) = 0x2001

    0x468 (SOR2) = 0x0000

    Thanks for the quick response.

    Alecsandru

    ------

    (later edit)

    ------

    Thanks for pointing out the ANLPAR register (0x5): it seems that link partner has some issues, I replaced the link partner and now duplex is activated after software reset.

    So, this problem is now solved (I have more to go).

    FYI, the link partner with problems was an Intel network card I218-V managed from Windows 7 x64 and assigned to a virtual machine "XP Mode" - apparently it behaves wrong in this state. Re-assigning it to native Windows 7 solved the problem.