Greetings! We're trying to integrate the ADIN1100 phy into our custom baseboard. We use an i.MX93-based SoM running an Yocto-based linux , currently on kernel version 6.1.
I think we got at least some things right, as right now we're able to bring up the eth interface and connect the MAC to the PHY sucessfully, but there are never any TX or RX packets. I'll list below the steps we've been through to configure the device.
1) In the image below there is part of our schematics, regarding the eth phy.
The imx93 processor has FEC (fast ethernet controller) MACs ( ENET1). We're using the enet1 pins (I'll provide some part of the device tree below).
2) The ADIN1100 driver (which supports the ADIN1100 IC) https://github.com/analogdevicesinc/linux/blob/master/drivers/net/phy/adin1100.c
3) Enabled driver through CONFIG_ADIN1100_PHY, compiled successfully.
4) Related device tree nodes:
&fec {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_fec>;
phy-mode = "rmii";
compatible = "fsl,imx93-fec";
phy-handle = <ðphy2>;
phy-reset-gpios = <&pcal6524_carrier2 14 GPIO_ACTIVE_LOW>;
phy-reset-duration = <10>;
phy-reset-post-delay = <100>;
fsl,magic-packet;
status = "okay";
mdio {
clock-frequency = <2500000>;
ethphy2: ethernet-phy@2 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <3>;
interrupt-parent = <&pcal6524_carrier2>;
interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
};
};
};
pinctrl_fec: fecgrp {
fsl,pins = <
MX93_PAD_ENET2_MDC__ENET1_MDC 0x07e
MX93_PAD_ENET2_MDIO__ENET1_MDIO 0x07e
MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0 0x51e
MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1 0x51e
MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL 0x51e
MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0 0x07e
MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1 0x07e
MX93_PAD_ENET2_TD2__ENET1_TX_CLK 0x07e
MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL 0x07e
MX93_PAD_CCM_CLKO2__GPIO3_IO27 0x51e
>;
};
root@isig:~# dmesg |grep eth
[ 0.000000] OF: reserved mem: initialized node ethosu_region@C0000000, compatible id shared-dma-pool
[ 0.000000] psci: probing for conduit method from DT.
[ 1.326123] ethosu ethosu: assigned reserved memory node ethosu_region@C0000000
[ 1.348101] optee: probing for conduit method.
[ 1.598554] imx-dwmac 428a0000.ethernet: IRQ eth_lpi not found
[ 1.604746] imx-dwmac 428a0000.ethernet: User ID: 0x10, Synopsys ID: 0x52
[ 1.611559] imx-dwmac 428a0000.ethernet: DWMAC4/5
[ 1.616348] imx-dwmac 428a0000.ethernet: DMA HW capability register supported
[ 1.623471] imx-dwmac 428a0000.ethernet: RX Checksum Offload Engine supported
[ 1.630593] imx-dwmac 428a0000.ethernet: TX Checksum insertion supported
[ 1.637284] imx-dwmac 428a0000.ethernet: Wake-Up On Lan supported
[ 1.643424] imx-dwmac 428a0000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[ 1.651076] imx-dwmac 428a0000.ethernet: Enabled L3L4 Flow TC (entries=8)
[ 1.657852] imx-dwmac 428a0000.ethernet: Enabled RFS Flow TC (entries=10)
[ 1.664632] imx-dwmac 428a0000.ethernet: Enabling HW TC (entries=256, max_off=256)
[ 1.672186] imx-dwmac 428a0000.ethernet: Using 32 bits DMA width
[ 2.473480] fec 42890000.ethernet: Invalid MAC address: 00:00:00:00:00:00
[ 2.480315] fec 42890000.ethernet: Using random MAC address: 0a:89:67:7c:71:70
[ 2.490022] fec 42890000.ethernet eth1: registered PHC device 0
[ 7.233892] ADIN1100 42890000.ethernet-1:03: attached PHY driver (mii_bus:phy_addr=42890000.ethernet-1:03, irq=POLL)
[ 7.241983] imx-dwmac 428a0000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0
[ 7.376742] imx-dwmac 428a0000.ethernet eth0: PHY [stmmac-1:00] driver [Microsemi VSC8541 SyncE] (irq=POLL)
[ 7.376787] imx-dwmac 428a0000.ethernet eth0: No Safety Features support found
[ 7.376807] imx-dwmac 428a0000.ethernet eth0: IEEE 1588-2008 Advanced Timestamp supported
[ 7.377025] imx-dwmac 428a0000.ethernet eth0: registered PTP clock
[ 7.395029] imx-dwmac 428a0000.ethernet eth0: FPE workqueue start
[ 7.395053] imx-dwmac 428a0000.ethernet eth0: configuring for phy/rgmii-id link mode
[ 7.395646] 8021q: adding VLAN 0 to HW filter on device eth0
root@isig:~# ethtool eth1
Settings for eth1:
Supported ports: [ TP MII ]
Supported link modes: 10baseT1L/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT1L/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT1L/Full
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 10Mb/s
Duplex: Full
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: slave
Port: Twisted Pair
PHYAD: 3
Transceiver: external
MDI-X: Unknown
Supports Wake-on: d
Wake-on: d
Link detected: yes
SQI: 7/7
root@isig:~#
root@isig:~# ifconfig eth1 up
[ 237.185639] ADIN1100 42890000.ethernet-1:03: attached PHY driver (mii_bus:phy_addr=42890000.ethernet-1:03, irq=POLL)
root@isig:~# [ 240.277110] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[ 240.278046] fec 42890000.ethernet eth1: Link is Up - 10Mbps/Full - flow control off
- ethtool -S eth0: everything is zero
Current Vdd voltage is 1.8v and iMX93 support 1.8/3.3v right.
Right now we don't know what else to investigate. Please help me for further investigation.
Thank you
Akash