PHY KSZ8081: MDIO register writes have no effect in bootloader

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

PHY KSZ8081: MDIO register writes have no effect in bootloader

1,455 Views
cgudrian
Contributor I

Hello!

I have a custom board with an i.MX6S and a Microchip KSZ8081 PHY. Both are working fine when running the full linux-imx 4.14.98. However, I cannot make it work in the bootloader (Barebox). This is what I observe:

  1. Barebox correctly identifies the PHY and can read the register values (using the built-in miitool).
  2. However, writing to the PHY's registers has no effect. The write is considered successful, yet the register values do not change. Connecting to the network is not possible (auto-negotiation failed).
  3. Booting into Linux yields a working ethernet connection.
  4. When I now reboot into the bootloader (without a power cycle) the PHY is working in the bootloader.
  5. After a power cycle the PHY is again not working.

A comparison of the ENET registers from both the working and the non-working Barebox showed no differences. What can cause the PHY to reject register writes? The fact that I can successfully read registers indicates that the general setup is correct. What am I missing?

Thanks for any help?

Christian

0 Kudos
4 Replies

1,435 Views
igorpadykov
NXP Employee
NXP Employee

Hi Christian

 

one can try to check and compare in both cases aipstz permissions described in

Chapter 13 AHB to IP Bridge (AIPSTZ)

i.MX 6Solo/6DualLite Applications Processor Reference Manual

 

Best regards
igor

0 Kudos

1,417 Views
cgudrian
Contributor I

Hello, Igor!

Thanks for your quick reply. I have just compared the memory regions 0x207c000 to 0x207c060 and 0x217c000 to 0x217c060 in both cases and found no differences.

Since the PHY is answering read requests but obviously denies write request can there be some kind of priviledge handling in place on the PHY side? I've found nothing in the docs, though.

Christian

0 Kudos

1,400 Views
cgudrian
Contributor I

I've checked the communication between the i.MX6 and the PHY with an oscilloscope: the write request is transmitted correctly, yet has no effect.

So this might be the wrong place to ask since the i.MX6 is behaving as expected.

Christian

0 Kudos

1,238 Views
Almaz
Contributor I

I am facing same issue with KSZ8081:

If single PHY IC soldered on PCB u-boot able to ping network after power cycle.

If two PHY IC shares same MDIO bus u-boot able to ping network only after kernel loaded and rebooted back to u-boot.

Did you find a solution, @cgudrian ?

0 Kudos