[meta-xilinx] 2nd ethernet port not detected

Edward Wingate edwingate8 at gmail.com
Fri May 15 16:40:53 PDT 2015


Nathan, thanks again.  I did forget to delete the compatible="invalid"
line at the end of the file. With that line deleted, Linux probes and
detects the eth1 interface.

On Thu, May 14, 2015 at 9:11 PM, Nathan Rossi <nathan at nathanrossi.com> wrote:
> 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