cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Explorer
Explorer
1,273 Views
Registered: ‎09-06-2019

MACB probe of multiple GEMs with shared MDIO

Jump to solution

We have a system that implements all 4 GEMs of the Zynq ultrascale with the MDIO on GEM2. We are running into issues where only the GEM2 and GEM3 drivers are properly initialzed.

There are problems upon boot where GEM0 and GEM1 MACB drivers are probed prior to GEM2. This is an issue beause they reference PHY handles that are intantiated later in the probe process in GEM2 adn there for are not initialized correctly are never available one we enter linux.

We currently use the 2019.1 toolset coupled with buildroot for our linux system.

Here is our device tree entry for the GEMs:

/* eth@ff0e0000 */
&gem3 {
	status = "okay";
	phy-handle = <&phy1>;
	phy-mode = "rgmii-id";
	local-mac-address = [00 0a 35 00 00 03];
};
/* eth@ff0d0000 */
&gem2 {
	status = "okay";
	phy-handle = <&phy0>;
	phy-mode = "rgmii-id";
	local-mac-address = [00 0a 35 00 00 02];
	phy0: phy@0 {
		reg = <0x0>;
		ti,rx-internal-delay = <0x8>;
		ti,tx-internal-delay = <0xa>;
		ti,fifo-depth = <0x1>;
		ti,rxctrl-strap-worka;
	};
	phy1: phy@1 {
		reg = <0x1>;
		ti,rx-internal-delay = <0x8>;
		ti,tx-internal-delay = <0xa>;
		ti,fifo-depth = <0x1>;
		ti,rxctrl-strap-worka;
	};
	phy2: phy@2 {
		reg = <0x2>;
	};
	phy8: phy@8 {
		reg = <0x8>;
	};
};

/* eth@ff0c0000 */
&gem1 {
	status = "okay";
	phy-handle = <&phy8>;
	phy-mode = "sgmii";
	pinctrl-names = "default";
	reset-gpios = <&gpio 45 0>;
	local-mac-address = [00 0a 35 00 00 01];
};

/* eth@ff0b0000 */	
&gem0 {
	status = "okay";
	phy-handle = <&phy2>;
	phy-mode = "sgmii";
	pinctrl-names = "default";
	reset-gpios = <&gpio 13 0>;
	local-mac-address = [00 0a 35 00 00 00];
};

As you can see the MDIO is set up in such a way where GEM2 controls the bus for all the other GEMs.

Here is the boot log during the MACB driver probing (with some debug prints added in the driver): 

[    3.203218] macb ff0b0000.ethernet: Not enabling partial store and forward
[    3.210660] libphy: MACB_mii_bus: probed
[    3.214577] mdio_bus ff0b0000.ethernet-ffffffff: Loop over the child nodes and register a phy_device for each phy
[    3.356082] macb ff0c0000.ethernet: Not enabling partial store and forward
[    3.363514] libphy: MACB_mii_bus: probed
[    3.367428] mdio_bus ff0c0000.ethernet-ffffffff: Loop over the child nodes and register a phy_device for each phy
[    3.500009] macb ff0d0000.ethernet: Not enabling partial store and forward
[    3.507411] libphy: MACB_mii_bus: probed
[    3.511332] mdio_bus ff0d0000.ethernet-ffffffff: Loop over the child nodes and register a phy_device for each phy
[    3.521583] mdio_bus ff0d0000.ethernet-ffffffff: address found. scan phy phyat address 0
[    3.529755] mdio_bus ff0d0000.ethernet-ffffffff: This child node is a phy node of mdio
[    3.540927] mdio_bus ff0d0000.ethernet-ffffffff: address found. scan phy phyat address 1
[    3.549113] mdio_bus ff0d0000.ethernet-ffffffff: This child node is a phy node of mdio
[    3.559888] mdio_bus ff0d0000.ethernet-ffffffff: address found. scan phy phyat address 8
[    3.568067] mdio_bus ff0d0000.ethernet-ffffffff: This child node is a phy node of mdio
[    3.576042] mdio_bus ff0d0000.ethernet-ffffffff: MDIO device at address 8 is missing.
[    3.583867] mdio_bus ff0d0000.ethernet-ffffffff: address found. scan phy phyat address 2
[    3.592036] mdio_bus ff0d0000.ethernet-ffffffff: This child node is a phy node of mdio
[    3.603382] TI DP83867 ff0d0000.ethernet-ffffffff:00: attached PHY driver [TIDP83867] (mii_bus:phy_addr=ff0d0000.ethernet-ffffffff:00, irq=POLL)[    3.616418] macb ff0d0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0d0000 irq 32 (00:0a:35:00:00:02)
[    3.626659] macb ff0e0000.ethernet: Not enabling partial store and forward
[    3.634066] libphy: MACB_mii_bus: probed
[    3.637985] mdio_bus ff0e0000.ethernet-ffffffff: Loop over the child nodes and register a phy_device for each phy
[    3.738185] TI DP83867 ff0d0000.ethernet-ffffffff:01: attached PHY driver [TIDP83867] (mii_bus:phy_addr=ff0d0000.ethernet-ffffffff:01, irq=POLL)
[    3.751235] macb ff0e0000.ethernet eth1: Cadence GEM rev 0x50070106 at 0xff0e0000 irq 33 (00:0a:35:00:00:03)

As you can see in red the GEM0 and GEM1, located at the lower addresses, are probed first (0xFF0B0000 and 0xFF0C0000) in which the PHYs are not found and driver does not enable them.

Moving to GEM2, the driver properly identifies the PHY instaniations and finds the PHYs (blue), enables GEM2 and moves on to then enable GEM3 (green). 

Is there a way to prioritize the probe of a driver when multiple probes are required? We would like to prioritize the MACB probe to probe GEM2 (0xFF0D000) prior such that the PHYs intantiated are correctly identified for each GEM. Changing the driver intialization order seems like it should be a standard practice but am unclear how to go about it.

Another approach we may pursue if this is not possible is to enable a device tree overlay to enable GEMs 0 and 1 while keeping them disabled in the main device tree. What is the standard method to adding a .dtbo to the buildroot system?

 

 

 

 

 

 

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Explorer
Explorer
898 Views
Registered: ‎09-06-2019

The GEMs actually probe in numerical order of the memory mapped address of the module. After some testing we found re-arranging in the device tree won't make a difference - you can even see that gem3 is the first listed in my device tree yet the last to probe.

 

The work around is to only enable the GEM that owns the MDIO bus in the device tree and disable the rest. Once in the kernel we apply a device tree overlay to enable the remaining 3 GEMs. If anyone has alternative methods I would be interested in hearing about other ways to achieve this functionality.

View solution in original post

0 Kudos
10 Replies
Highlighted
Visitor
Visitor
964 Views
Registered: ‎05-07-2020

Hi @badFITimage ,

Have you solve this problem, It seems I was in the same situation.

Best reg,

0 Kudos
Highlighted
Moderator
Moderator
919 Views
Registered: ‎09-12-2007

The GEMs would be probed based on the order they are in the DT (I think). Can you try rearrage the order here?

 

0 Kudos
Highlighted
Explorer
Explorer
899 Views
Registered: ‎09-06-2019

The GEMs actually probe in numerical order of the memory mapped address of the module. After some testing we found re-arranging in the device tree won't make a difference - you can even see that gem3 is the first listed in my device tree yet the last to probe.

 

The work around is to only enable the GEM that owns the MDIO bus in the device tree and disable the rest. Once in the kernel we apply a device tree overlay to enable the remaining 3 GEMs. If anyone has alternative methods I would be interested in hearing about other ways to achieve this functionality.

View solution in original post

0 Kudos
Highlighted
Observer
Observer
639 Views
Registered: ‎08-09-2018

Hi @badFITimage,

We have a similar design where a common MDIO-0 bus of gem0 is shared with rest of the gems(gem1, gem2, gem3).

We are not facing any issue like yours, during kernel bootup all the 4 ethernets are getting listed up properly.

But we are not able to see the link status on ethernet 2, 3 &4. Link status is up only for ethernet 1 and ping is happening only for ethernet 1.

Could you mind in helping me in getting this issue resolved?

If so, could you tell me whether your were able to ping  from ethernet 3 and 4 ?

Thanks in advance.

Mallikarjun

0 Kudos
Highlighted
Visitor
Visitor
605 Views
Registered: ‎05-07-2020

Hi Mallikarjun, 

Could you used `ethtool` to check can you read the register of the ethernet 2, 3 &4 ?  I have the same issue before, and resloved by update the fpga file.

Best Reg,

Yun

0 Kudos
Highlighted
Observer
Observer
595 Views
Registered: ‎08-09-2018

Hi @yun,

Below are the outputs for ethtool and phytool commands on linux for both eth0 and eth1. For eth2 and eth3 it is same as eth1

For the below system_user.dtsi file

&gem0 {
          status = "okay";
          local-mac-address = [00 0a 35 00 1e 53];
          phy-mode = "rgmii-id";
          phy-handle = <&phy0>;
          phy0: phy@1 {
          reg = <0x1>;
          ti,rx-internal-delay = <0x5>;
          ti,tx-internal-delay = <0x5>;
          ti,fifo-depth = <0x01>;
          };

         phy1: phy@2 {
         reg = <0x2>;
         ti,rx-internal-delay = <0x5>;
         ti,tx-internal-delay = <0x5>;
         ti,fifo-depth = <0x01>;
         };

        phy2: phy@3 {
        reg = <0x3>;
        ti,rx-internal-delay = <0x5>;
        ti,tx-internal-delay = <0x5>;
        ti,fifo-depth = <0x01>;
       };
       phy3: phy@4 {
       reg = <0x4>;
       ti,rx-internal-delay = <0x5>;
       ti,tx-internal-delay = <0x5>;
       ti,fifo-depth = <0x01>;
       };
};

&gem1 {
       status = "okay";
       local-mac-address = [00 0a 35 00 1e 54];
       phy-mode = "rgmii-id";
       phy-handle = <&phy1>;
};

&gem2 {
       status = "okay";
       local-mac-address = [00 0a 35 00 1e 55];
       phy-mode = "rgmii-id";
       phy-handle = <&phy2>;
};

&gem3 {
      status = "okay";
      local-mac-address = [00 0a 35 00 1e 56];
      phy-mode = "rgmii-id";
      phy-handle = <&phy3>;
};

Theses are the Kernel boot up prints:

[ 1.679456] CAN device driver interface
[ 1.680347] macb ff0b0000.ethernet: Not enabling partial store and forward
[ 1.680866] libphy: MACB_mii_bus: probed
[ 1.686990] macb ff0b0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0b0000 irq 30 (00:0a:35:00:21:01)
[ 1.687016] Generic PHY ff0b0000.ethernet-ffffffff:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ff0b0000.ethernet-ffffffff:01, irq=POLL)
[ 1.687393] macb ff0c0000.ethernet: Not enabling partial store and forward
[ 1.687877] libphy: MACB_mii_bus: probed
[ 1.728657] macb ff0c0000.ethernet eth1: Cadence GEM rev 0x50070106 at 0xff0c0000 irq 31 (00:0a:35:00:21:02)
[ 1.728688] Generic PHY ff0c0000.ethernet-ffffffff:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ff0c0000.ethernet-ffffffff:00, irq=POLL)
[ 1.729110] macb ff0d0000.ethernet: Not enabling partial store and forward
[ 1.729612] libphy: MACB_mii_bus: probed
[ 1.769817] macb ff0d0000.ethernet eth2: Cadence GEM rev 0x50070106 at 0xff0d0000 irq 32 (00:0a:35:00:21:03)
[ 1.769848] Generic PHY ff0d0000.ethernet-ffffffff:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ff0d0000.ethernet-ffffffff:00, irq=POLL)
[ 1.770270] macb ff0e0000.ethernet: Not enabling partial store and forward
[ 1.770775] libphy: MACB_mii_bus: probed
[ 1.810558] macb ff0e0000.ethernet eth3: Cadence GEM rev 0x50070106 at 0xff0e0000 irq 33 (00:0a:35:00:21:04)
[ 1.810590] Generic PHY ff0e0000.ethernet-ffffffff:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ff0e0000.ethernet-ffffffff:00, irq=POLL)

and these are the output for ethtool and phytool commands:

root@M9_090120:~# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Link detected: no

root@M9_090120:~# ethtool eth1
Settings for eth1:
Supported ports: [ TP MII ]
Supported link modes: Not reported
Supported pause frame use: No
Supports auto-negotiation: No
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Link detected: no

root@M9_090120:~# phytool eth0/1/0
ieee-phy: reg:BMCR(0x00) val:0x1140
flags: -reset -loopback +aneg-enable -power-down -isolate -aneg-restart -collision-test
speed: 1000-full
root@M9_090120:~# phytool eth1/2/0
ieee-phy: reg:BMCR(0x00) val:0000
flags: -reset -loopback -aneg-enable -power-down -isolate -aneg-restart -collision-test
speed: 10-half

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

If suppose i declare seperate Phy handle nodes for eth1, eth2, and eth3, like below

&gem0 {
          status = "okay";
          local-mac-address = [00 0a 35 00 1e 53];
          phy-mode = "rgmii-id";
          phy-handle = <&phy0>;
          phy0: phy@1 {
          reg = <0x1>;
          ti,rx-internal-delay = <0x5>;
          ti,tx-internal-delay = <0x5>;
          ti,fifo-depth = <0x01>;
          };
};

&gem1 {
       status = "okay";
       local-mac-address = [00 0a 35 00 1e 54];
       phy-mode = "rgmii-id";
       phy-handle = <&phy1>;

       phy1: phy@2 {
         reg = <0x2>;
         ti,rx-internal-delay = <0x5>;
         ti,tx-internal-delay = <0x5>;
         ti,fifo-depth = <0x01>;
         };
};

&gem2 {
       status = "okay";
       local-mac-address = [00 0a 35 00 1e 55];
       phy-mode = "rgmii-id";
       phy-handle = <&phy2>;

        phy2: phy@3 {
        reg = <0x3>;
        ti,rx-internal-delay = <0x5>;
        ti,tx-internal-delay = <0x5>;
        ti,fifo-depth = <0x01>;
       };
};

&gem3 {
      status = "okay";
      local-mac-address = [00 0a 35 00 1e 56];
      phy-mode = "rgmii-id";
      phy-handle = <&phy3>;

       phy3: phy@4 {
       reg = <0x4>;
       ti,rx-internal-delay = <0x5>;
       ti,tx-internal-delay = <0x5>;
       ti,fifo-depth = <0x01>;
       };
};

 

Below is the kernel wrt ethernet bootup prints

where i could see corrent PHY addresses listed

[ 1.678984] CAN device driver interface
[ 1.679724] macb ff0b0000.ethernet: Not enabling partial store and forward
[ 1.680277] libphy: MACB_mii_bus: probed
[ 1.682621] macb ff0b0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0b0000 irq 30 (00:0a:35:00:22:01)
[ 1.682642] Generic PHY ff0b0000.ethernet-ffffffff:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ff0b0000.ethernet-ffffffff:01, irq=POLL)
[ 1.683003] macb ff0c0000.ethernet: Not enabling partial store and forward
[ 1.683466] libphy: MACB_mii_bus: probed
[ 1.685301] macb ff0c0000.ethernet eth1: Cadence GEM rev 0x50070106 at 0xff0c0000 irq 31 (00:0a:35:00:1e:54)
[ 1.685320] Generic PHY ff0c0000.ethernet-ffffffff:02: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ff0c0000.ethernet-ffffffff:02, irq=POLL)
[ 1.685663] macb ff0d0000.ethernet: Not enabling partial store and forward
[ 1.686113] libphy: MACB_mii_bus: probed
[ 1.687893] macb ff0d0000.ethernet eth2: Cadence GEM rev 0x50070106 at 0xff0d0000 irq 32 (00:0a:35:00:1e:55)
[ 1.687910] Generic PHY ff0d0000.ethernet-ffffffff:03: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ff0d0000.ethernet-ffffffff:03, irq=POLL)
[ 1.688315] macb ff0e0000.ethernet: Not enabling partial store and forward
[ 1.688750] libphy: MACB_mii_bus: probed
[ 1.690514] macb ff0e0000.ethernet eth3: Cadence GEM rev 0x50070106 at 0xff0e0000 irq 33 (00:0a:35:00:1e:56)
[ 1.690532] Generic PHY ff0e0000.ethernet-ffffffff:04: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ff0e0000.ethernet-ffffffff:04, irq=POLL)

root@M9_090120:~# phytool eth0/1/0
ieee-phy: reg:BMCR(0x00) val:0x1140
flags: -reset -loopback +aneg-enable -power-down -isolate -aneg-restart -collision-test
speed: 1000-full
root@M9_090120:~# phytool eth1/2/0
ieee-phy: reg:BMCR(0x00) val:0000
flags: -reset -loopback -aneg-enable -power-down -isolate -aneg-restart -collision-test
speed: 10-half

and these are the output for ethtool and phytool commands:

root@M9_090120:~# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Link detected: no

root@M9_090120:~# ethtool eth1
Settings for eth1:
Supported ports: [ TP MII ]
Supported link modes: Not reported
Supported pause frame use: No
Supports auto-negotiation: No
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 2
Transceiver: internal
Auto-negotiation: on
Link detected: no

For your information:

We have Same MDIO used for all gem0 to gem3

Thanks 

Mallikarjun

0 Kudos
Highlighted
Observer
Observer
559 Views
Registered: ‎08-09-2018

Hi @badFITimage,

 

With your design where your able to perform ping test on the working ethernets i.e for gem2 and gem3?

Can I know whether your able to successfully ping from board to testsetup??

Thanks in advance

Mallikarjun

0 Kudos
Highlighted
Explorer
Explorer
520 Views
Registered: ‎09-06-2019

Hi @mallikarjun 

I can confirm that we can indeed ping from all GEMs.

Here is our device tree:

&gem0 {
	status = "okay";
	phy-handle = <&phy2>;
	phy-mode = "sgmii";	
	phys = <&lane0 PHY_TYPE_SGMII 0 0 125000000>;
	local-mac-address = [00 0a 35 00 00 00];
	phy2: phy@2 {
		reg = <0x2>;
		ti,rx-internal-delay = <0x8>;
		ti,tx-internal-delay = <0xa>;
		ti,fifo-depth = <0x1>;
		ti,dp83867-rxctrl-strap-quirk;	
		xlnx,phy-type = <0x4>;
	};
	phy3: phy@3 {
		reg = <0x3>;
		ti,rx-internal-delay = <0x8>;
		ti,tx-internal-delay = <0xa>;
		ti,fifo-depth = <0x1>;
		ti,dp83867-rxctrl-strap-quirk;
		xlnx,phy-type = <0x4>;
	};		
	phy0: phy@0 {
		reg = <0x0>;
		ti,rx-internal-delay = <0x8>;
		ti,tx-internal-delay = <0xa>;
		ti,fifo-depth = <0x1>;
		ti,rxctrl-strap-worka;
	};
	phy1: phy@1 {
		reg = <0x1>;
		ti,rx-internal-delay = <0x8>;
		ti,tx-internal-delay = <0xa>;
		ti,fifo-depth = <0x1>;
		ti,rxctrl-strap-worka;	
	};	
};

&gem1 {
	status = "okay";
	phy-handle = <&phy3>;
	phy-mode = "sgmii";
	phys = <&lane1 PHY_TYPE_SGMII 1 1 125000000>;
	local-mac-address = [00 0a 35 00 00 01];
};

&gem2 {
	status = "okay";
	phy-handle = <&phy0>;
	phy-mode = "rgmii";
	local-mac-address = [00 0a 35 00 00 02];
	ti,dp83867-rxctrl-strap-quirk;		
};

&gem3 {
	status = "okay";
	phy-handle = <&phy1>;
	phy-mode = "rgmii";
	local-mac-address = [00 0a 35 00 00 03];
	ti,dp83867-rxctrl-strap-quirk;
};

 

And the PHYs in u-boot:

ZynqMP> mii info
PHY 0x00: OUI = 0x80028, Model = 0x23, Rev = 0x01,  10baseT, HDX
PHY 0x01: OUI = 0x80028, Model = 0x23, Rev = 0x01,  10baseT, HDX
PHY 0x02: OUI = 0x80028, Model = 0x23, Rev = 0x01, 1000baseT, FDX
PHY 0x03: OUI = 0x80028, Model = 0x23, Rev = 0x01,  10baseT, FDX

ZynqMP> mdio list
2 - TI DP83867 <--> ethernet@ff0b0000

 

dmesg (with debug prints in red I've added in the macb driver):

[    4.492372] macb ff0b0000.ethernet: Not enabling partial store and forward
[    4.499775] libphy: MACB_mii_bus: probed
[    4.503695] mdio_bus ff0b0000.ethernet-ffffffff: Loop over the child nodes and register a phy_device for each phy
[    4.513952] mdio_bus ff0b0000.ethernet-ffffffff: address found. scan phy phy at address 2
[    4.522124] mdio_bus ff0b0000.ethernet-ffffffff: This child node is a phy node of mdio
[    4.533270] mdio_bus ff0b0000.ethernet-ffffffff: address found. scan phy phy at address 3
[    4.541450] mdio_bus ff0b0000.ethernet-ffffffff: This child node is a phy node of mdio
[    4.552386] mdio_bus ff0b0000.ethernet-ffffffff: address found. scan phy phy at address 0
[    4.560561] mdio_bus ff0b0000.ethernet-ffffffff: This child node is a phy node of mdio
[    4.571396] mdio_bus ff0b0000.ethernet-ffffffff: address found. scan phy phy at address 1
[    4.579579] mdio_bus ff0b0000.ethernet-ffffffff: This child node is a phy node of mdio
[    4.592105] TI DP83867 ff0b0000.ethernet-ffffffff:02: attached PHY driver [TI DP83867] (mii_bus:phy_addr=ff0b0000.ethernet-ffffffff:02, irq=POLL)
[    4.605140] macb ff0b0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0b0000 irq 32 (00:0a:35:00:00:02)
[    4.615363] macb ff0c0000.ethernet: Not enabling partial store and forward
[    4.622770] libphy: MACB_mii_bus: probed
[    4.730478] TI DP83867 ff0b0000.ethernet-ffffffff:03: attached PHY driver [TI DP83867] (mii_bus:phy_addr=ff0b0000.ethernet-ffffffff:03, irq=POLL)
[    4.743526] macb ff0c0000.ethernet eth1: Cadence GEM rev 0x50070106 at 0xff0c0000 irq 33 (00:0a:35:00:00:01)
[    4.750898] ata2: SATA link down (SStatus 0 SControl 310)
[    4.753771] macb ff0d0000.ethernet: Not enabling partial store and forward
[    4.766141] libphy: MACB_mii_bus: probed
[    4.872350] TI DP83867 ff0b0000.ethernet-ffffffff:00: attached PHY driver [TI DP83867] (mii_bus:phy_addr=ff0b0000.ethernet-ffffffff:00, irq=POLL)
[    4.885403] macb ff0d0000.ethernet eth2: Cadence GEM rev 0x50070106 at 0xff0d0000 irq 34 (00:0a:35:00:00:02)
[    4.895650] macb ff0e0000.ethernet: Not enabling partial store and forward
[    4.903069] libphy: MACB_mii_bus: probed

 

Something I noticed is that the macb driver isn't recognizing your phy and registering it as a generic phy while your device tree has TI specific parameters.

I would also check the PS configuration that the the FSBL you are using match exactly what is represented in the device tree. We experienced issues not too different from yours when our kernel configuration for the gems did not match what was configured in the ps init used in the fsbl. How are you generating your FSBL? Can you confirm that the the PS config is correct for your application? 

Highlighted
Observer
Observer
347 Views
Registered: ‎08-09-2018

Hi @badFITimage, @yun 

Sorry for late reply, I was able to resolve it with the device tree modifications on the same day I raise this post but missed replying here

Thanks for your support

0 Kudos
Highlighted
Visitor
Visitor
235 Views
Registered: ‎03-21-2019

Hi

 

I facing same issue could please share the fixes that work with you?

 

Thanks

0 Kudos