[meta-xilinx] 2nd ethernet port not detected

Nathan Rossi nathan at nathanrossi.com
Thu May 14 21:11:06 PDT 2015


On Fri, May 15, 2015 at 8:41 AM, Edward Wingate <edwingate8 at gmail.com> wrote:
> Just to give more infomation on this, ps7_ethernet_0 goes out MDIO to
> the PHY chip, while ps7_ethernet_1 goes out EMIO to a GMII to RGMII IP
> block and then to another PHY chip.  Both PHY are the Marvell 88E1518.
> Is my device tree for ethernet_1 incorrect for this hardware
> configuration?

Hi Edward,

So one thing to note here is that the macb driver might not support
the GMII->RGMII wrapper, I believe there was some additional code
paths in the linux-xlnx emacps driver for it and at least one
additional device tree binding you might need.

https://github.com/Xilinx/linux-xlnx/blob/xlnx_3.14/drivers/net/ethernet/xilinx/xilinx_emacps.c#L2810

(If you need the linux-xlnx emacps driver there was a earlier thread
where disabling the macb driver was described:
https://lists.yoctoproject.org/pipermail/meta-xilinx/2015-May/000970.html)

>
> On Thu, May 14, 2015 at 3:10 PM, Edward Wingate <edwingate8 at gmail.com> wrote:
>> I have 2 ethernet devices on my custom Zynq board, but Linux only
>> detects 1 of them.
>>
>> [    1.832276] macb e000b000.ps7-ethernet eth0: Cadence GEM at
>> 0xe000b000 irq 54 (00:0a:35:00:01:22)
>> [    1.841161] macb e000b000.ps7-ethernet eth0: attached PHY driver
>> [Marvell 88E1510] (mii_bus:phy_addr=e000b000.ps7-eth:00, irq=-1)
>>
>> eth0 seems to work fine. I can ssh into the board.
>> There are no corresponding messages for eth1.
>>
>> My device tree for the ethernet devices looks like this:
>>
>> ps7_ethernet_0: ps7-ethernet at e000b000 {
>>     phy-handle = <&phy0>;
>>     phy-mode = "rgmii-id";
>>     phy0: phy at 0 {
>>         compatible = "marvell,88e1518";
>>         device_type = "ethernet-phy";
>>         reg = <0>;
>>     } ;
>> } ;
>>
>> ps7_ethernet_1: ps7-ethernet at e000c000 {
>>     phy-handle = <&phy1>;
>>     phy-mode = "rgmii-id";
>>     phy1: phy at 8 {
>>         compatible = "marvell,88e1518";
>>         device_type = "ethernet-phy";
>>         reg = <8>;
>>     } ;
>> } ;

So I am going to assume here that you are relying on the
zynq7-base.dtsi from the meta-xilinx layer. If that is the case the
above bindings will work as expected, however you might have copied
the following line from one of the other boards where "ps7_ethernet_1:
ps7-ethernet at e000c000 { compatible = "invalid"; };" that will cause
the kernel to ignore the ps7_ethernet_1 node entirely so you will need
to delete that line. That should get the kernel to probe the second
device.

If your still getting issues with the kernel not probing the device it
is worth providing the full device tree content to further debug the
issue.

Regards,
Nathan

>>
>> Is putting this information in the device tree all that's needed?  The
>> PHY address of 8 is what is configured in Vivado for the 2nd ethernet
>> port.
>>
>> Thanks for your help.
> --
> _______________________________________________
> meta-xilinx mailing list
> meta-xilinx at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-xilinx



More information about the meta-xilinx mailing list