Hi!
Now that our secondary ethernet is working properly, we are trying to make our SFP+ cages work.
Both are directly connected to the PS GTR lanes (GEM1, GEM2) using SGMII, there is no PHY.
We are unsure if this could work at all or if we are just missing something in our configuration.
The kernel seems to do some communication (but probably only over I2C):
# dmesg | grep eth1
[ 3.679039] macb ff0c0000.ethernet eth1: Cadence GEM rev 0x50070106 at 0xff0c0000 irq 38 (xx:xx:xx:xx:xx:xx)
[ 4.439943] macb ff0c0000.ethernet eth1: validation of inband/1000base-x with support 0000000,00000200,00004440 failed: -22
[ 12.458391] macb ff0c0000.ethernet eth1: configuring for fixed/sgmii link mode
# dmesg | grep eth2
[ 3.705274] macb ff0d0000.ethernet eth2: Cadence GEM rev 0x50070106 at 0xff0d0000 irq 39 (xx:xx:xx:xx:xx:xx)
[ 12.402258] macb ff0d0000.ethernet eth2: configuring for fixed/sgmii link mode
# dmesg | grep sfp
[ 4.110090] sfp sfp-gem1: Host maximum power 1.0W
[ 4.142013] sfp sfp-gem2: Host maximum power 1.0W
[ 4.462082] sfp sfp-gem1: module AVAGO AFBR-5715APZ rev sn xxxxxxxxxxx dc 170812
Here is the device tree from our PetaLinux:
&gem1 {
sfp = <&sfp0>;
local-mac-address = [xx xx xx xx xx xx];
phy-mode = "sgmii";
is-internal-pcspma;
fixed-link {
speed = <1000>;
full-duplex;
};
};
&gem2 {
sfp = <&sfp1>;
local-mac-address = [xx xx xx xx xx xx];
phy-mode = "sgmii";
is-internal-pcspma;
fixed-link {
speed = <1000>;
full-duplex;
};
};
/ {
sfp0: sfp-gem1 {
compatible = "sff,sfp";
i2c-bus = <&i2c_sfp0>;
sfp,ethernet = <&gem1>;
tx-fault-gpios = <&gpio_sfp0 0 GPIO_ACTIVE_HIGH>;
tx-disable-gpios = <&gpio_sfp0 1 GPIO_ACTIVE_HIGH>;
rate-select0-gpios = <&gpio_sfp0 2 GPIO_ACTIVE_HIGH>;
los-gpios = <&gpio_sfp0 3 GPIO_ACTIVE_HIGH>;
mod-def0-gpios = <&gpio_sfp0 7 GPIO_ACTIVE_LOW>;
};
sfp1: sfp-gem2 {
compatible = "sff,sfp";
i2c-bus = <&i2c_sfp1>;
sfp,ethernet = <&gem2>;
tx-fault-gpios = <&gpio_sfp1 0 GPIO_ACTIVE_HIGH>;
tx-disable-gpios = <&gpio_sfp1 1 GPIO_ACTIVE_HIGH>;
rate-select0-gpios = <&gpio_sfp1 2 GPIO_ACTIVE_HIGH>;
los-gpios = <&gpio_sfp1 3 GPIO_ACTIVE_HIGH>;
mod-def0-gpios = <&gpio_sfp1 7 GPIO_ACTIVE_LOW>;
};
};
We also tried switching phy-mode to "moca", but that resulted in a "fixed link not detected" message in the dmesg.
Best regards