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/DP83867IR: dp83867ir Ethernet-phy not recognized in Petalinux

Part Number: DP83867IR


Tool/software: Linux

I use xilinx's zynq chip.


We designed the board without reference to the reference board.
The most important point is that Linux does not recognize ethernet-phy (ti, dp83867).

Below is the part we checked.
Using petalinux version 17.3
It uses the Xilinx kernel provided by xilinx, and the kernel version is based on 4.9x.
u-boot also uses version 2017.1 from xilinx.

1. Ethernet works well in stand-alone mode.
2. We use the vivado tool to create a project based on a hardware logic design and a file (.hdf) with information about the hardware created using it
3. Add the ti (dp83867) gigabit ethernet driver from menuconfig in the kernel.
4. Using the created fsbl.elf, u-boot.elf [fpga] .bit files, create a BOOT.BIN boot file and insert it into the sd card and boot.

issue

-When we do not include the dp83867 driver, we have the phy attached and the ping command works, but the ping does not arrive normally.
-If you add the dp83867 driver, the eth0 device is not created at all with a NO PHY message. Also, a message "not link ..." is displayed and the device is not registered normally.



I modified the device tree to solve this problem. We use the rgmii interface and want to use 1g Ethernet.
So we checked how to register the ti device-tree located in [kernel_DIR] / Documentation / .. and created a device tree. (I can not currently show you how I created this device tree.

However, phy always sends a message saying no PHY, which does not solve the problem.

Of the same Xilinx family of products, the zcu102 of the zynqMP board uses the same ti, dp83867 chip, which is a reference board. I used this to create a device-tree, but it did not work the same.


When u-boot writes a value to the rw-authorized registers of the dp83867 datasheet and other values ​​through the mii command, ethernet-phy succeeds in auto-negotiation and the link-state is also 1.
However, ping still does not work.


Conclusion and Questions
- We designed without a reference board. However, defconfig in the kernel is targeted at a completely unrelated board called zc702. Do you think this will be a problem?

- Is ethernet-phy succeeding in auto-negotiation and succeeding in linking and finding an eth0 device in Linux is a different matter?

- u-boot also has a driver for ti, and the kernel also has a driver called dp83867. Are the two roles different?

- Do I need to fix the device driver itself to solve this problem?

I must solve this problem.
I would appreciate your help.
Thank you.