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.

KSZ9031RNX: No Giga



Hey everyone,

I am a beginner with the ethernet protocol and I am doing a Internship where I use the PHY KSZ9031RNX to communicate with a PC. I currently have a 100Mps full duplex communication (RGMII). This communication is done without auto-negotiation. When I try to switch to Gigabit the auto-negotiation process is never completed. I don't know what the problem is. To begin with, I am not entirely sure that I am configuring the registers well for the 1Giga. (sorry for asking maybe obvious questions, but I can't find the configuration of the registers anywhere).

As I understand it from the IEEE 802.3 standard (clauses 28 and 40), I am using this configuration:

############################# Registre 0h ################################

0.15: reset phy =0

0.14 Loopback = 0

0.13 Speed Select  (LSB)= 0

0.12 Autonegotiation Enable = 1

0.11 Power down =0

0.10 Isolate = 0

0.9 Restart autonegotiation =1

0.8 Duplex Mode = 1

0.7 Reseverd =0

0.6 Speed Select (MSB) = 0

0.5:0 Reseverd = 00_0000

I put a 1000 speed and full duplex mode but I understand that if auto-negotiation is enabled, it has priority and the goal is to find a compatible speed and mode between the local and remote devices.

############################# Registre 4h ################################

4.15 Next page = 1

4.14 Reserved

4.13 Remote Fault= 1

4.12 Reserved

4.11:10 = 0.0 (No pause) -----> I use a MAC IP. The IP has no treatment for the pause mode. So I chose the option no pause

4.9 100BASE-T4 =0

4.8 100BASE-TX (full duplex) =1

4.7 1000BASE-TX (half duplex)=0  ------> The IP has no tretment for the half duplex mode

4.6 10BASE-T (full duplex)=1

4.5 10BASE-T (half duplex)=0

4.4:0 Selector Field = 00001 IEEE 802.3

Question 1: Is there a problem with auto-negotiation because I don't enable mode pause?

############################# Registre 7h ################################

7.15 Next Page = 1 (Additional next pages will follow)

7.14 Reserved

7.13 Message page = 1

7.12 Ack2=0

7.11 Toggle=0

7. 10:0 Message Field = 00000001000 -------> Clause 40 (40.5.1.2 1000BASE-T Auto-negotiation page use)

Question 2: I will use only the three pages provided for in clause 40 (page 0 -Message next page, page -1 Unformatted next page and page 2 (unformatted next page). Even if I put in the message field M10: M0 = 8, do I still need to add other following pages, that is, next page = 1 or would this option be valid only if I were to use extra pages in addition to the three necessary pages?

############################# Registre 9h ################################

9.15:13 Test mode = 000 (Nomal operation)

9.12 Master-Slave manual configuration = 0 (disable)

9.11 Master-Slave configuration value =0

9.10 Port type = 0

9.9 1000Base-T Full duplex = 1

9.8 1000Base-T Half duplex = 0

9.7:0 Reserverd 

Question 3: When I disable the manual master-slave configuration option, should the seed value be developed by me or is PHY KSZ9031rnx responsible for doing this?

I have already centralized the FLP time to 16 ms to avoid link failures and still it was not possible to obtain a complete autonegotiation process. Can anyone see any errors I am making in this configuration? or any other ideas that I can try? I thank you immensely for your patience and attention.