Upgrading project from 2.7 to 4.0 - FEC not probed.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Upgrading project from 2.7 to 4.0 - FEC not probed.

Jump to solution
721 Views
mabar52
Contributor III

Our system is based on the sabresd i.MX6sx. 

After having upgraded YOCTO project from 2.7 to 4.0, kernel 4.9.87 to 5.15.87

Somehow now the FEC driver isnt probed.

DTS properties for the ethernet controller:

 

 

 

ethernet@2188000 {
                                fsl,num-tx-queues = <0x03>;
                                phy-handle = <0x2b>;
                                compatible = "fsl,imx6sx-fec\0fsl,imx6q-fec";
                                clocks = <0x02 0xac 0x02 0xe1 0x02 0xe4 0x02 0x11 0x02 0xe4>;
                                local-mac-address = [94 de 0e 03 01 a0];
                                eee-broken-100tx;
                                clock-names = "ipg\0ahb\0ptp\0enet_clk_ref\0enet_out";
                                fsl,num-rx-queues = <0x03>;
                                phy-reset-post-delay = <0x05>;
                                status = "okay";
                                interrupts = <0x00 0x76 0x04 0x00 0x77 0x04>;
                                eee-broken-1000t;
                                fsl,stop-mode = <0x06 0x10 0x03>;
                                pinctrl-assert-gpios = <0x11 0x10 0x00>;
                                reg = <0x2188000 0x4000>;
                                phy-mode = "rgmii-id";
                                pinctrl-0 = <0x28 0x29>;
                                phy-reset-duration = <0x0a>;
                                interrupt-names = "int0\0pps";
                                phy-reset-gpios = <0x2a 0x07 0x00>;
                                pinctrl-names = "default";

                                mdio {
                                        status = "okay";
                                        #address-cells = <0x01>;
                                        #size-cells = <0x00>;

                                        ethernet-phy@1 {
                                                phandle = <0x2b>;
                                                reg = <0x01>;
                                        };
                                };
                        };

 

 

 

 

 

 

Kernel CONFIG statements that I can imagine is relative to the FEC driver:

 

 

builder@ubuntu-linux-18:~/projects/src/smartware_yocto4.0/build$ grep FEC ./tmp/work/smartoptics_dcp-poky-linux-gnueabi/linux-fslc-imx/5.15.87+gitAUTOINC+0eb4504bd3-r21/build/.config
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
# CONFIG_XILINX_SDFEC is not set
CONFIG_FEC=y
# CONFIG_FEC_UIO is not set
builder@ubuntu-linux-18:~/projects/src/smartware_yocto4.0/build$
builder@ubuntu-linux-18:~/projects/src/smartware_yocto4.0/build$ grep PHYLIB ./tmp/work/smartoptics_dcp-poky-linux-gnueabi/linux-fslc-imx/5.15.87+gitAUTOINC+0eb4504bd3-r21/build/.config
CONFIG_PHYLIB=y
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
builder@ubuntu-linux-18:~/projects/src/smartware_yocto4.0/build$ grep PHY ./tmp/work/smartoptics_dcp-poky-linux-gnueabi/linux-fslc-imx/5.15.87+gitAUTOINC+0eb4504bd3-r21/build/.config | egrep -v ^#
CONFIG_ARM_PATCH_PHYS_VIRT=y
CONFIG_ARCH_HAS_PHYS_TO_DMA=y
CONFIG_PHYLIB=y
CONFIG_SWPHY=y
CONFIG_FIXED_PHY=y
CONFIG_MICROSEMI_PHY=y
CONFIG_AT803X_PHY=y
CONFIG_GENERIC_PHY=y
CONFIG_PHY_FSL_IMX_PCIE=y
builder@ubuntu-linux-18:~/projects/src/smartware_yocto4.0/build$ grep MDIO ./tmp/work/smartoptics_dcp-poky-linux-gnueabi/linux-fslc-imx/5.15.87+gitAUTOINC+0eb4504bd3-r21/build/.config | egrep -v ^#
CONFIG_MDIO_DEVICE=y
CONFIG_MDIO_BUS=y
CONFIG_FWNODE_MDIO=y
CONFIG_OF_MDIO=y
CONFIG_MDIO_DEVRES=y

 

 


For another configuration where we use phy fixed link, the FEC is probed, making the external MDIO phy configuration a hot bet, I guess.

Not sure what this could be and not sure howto troubleshoot either.

I have attached the entire Kconf and the DTS taken from a running host.

Appreciate immensely any help given.
Thanks and best regards,

 

Mattias

EDIT: It should be noted that we still use the same u-boot for both versions.

I feel that there is something fundamental missing since there are many more drivers that doesnt seem to be probed.

Here follows dmesg sections from both versions:
yocto 2.7

 

[    1.257100] 0x000000000000-0x000000080000 : "u-boot"
[    1.263151] 0x000000080000-0x0000000a0000 : "u-boot-env1"
[    1.269631] 0x0000000a0000-0x0000000c0000 : "u-boot-env2"
[    1.276080] 0x0000000c0000-0x000008000000 : "ubi"
[    1.281817] fsl-quadspi 21e4000.qspi: n25q00 (131072 Kbytes)
[    1.287552] 1 ofpart partitions found on MTD device 21e4000.qspi
[    1.293564] Creating 1 MTD partitions on "21e4000.qspi":
[    1.298921] 0x000000000000-0x000008000000 : "ubi"
[    1.305939] spi_imx 2010000.ecspi: probed
[    1.310907] spi_imx 2014000.ecspi: probed
[    1.315770] libphy: Fixed MDIO Bus: probed
[    1.320957] 2188000.ethernet supply phy not found, using dummy regulator
[    1.345310] pps pps0: new PPS source ptp0
[    1.350849] libphy: fec_enet_mii_bus: probed
[    1.356681] fec 2188000.ethernet eth0: registered PHC device 0
[    1.363169] mousedev: PS/2 mouse device common for all mice
[    1.373307] rtc-ds1307 0-0068: rtc core: registered ds1338 as rtc0
[    1.379579] rtc-ds1307 0-0068: 56 bytes nvram
[    1.384037] i2c /dev entries driver
[    1.391324] i2c i2c-1: Added multiplexed i2c bus 4
[    1.396680] i2c i2c-1: Added multiplexed i2c bus 5
[    1.401943] i2c i2c-1: Added multiplexed i2c bus 6
[    1.407331] i2c i2c-1: Added multiplexed i2c bus 7
[    1.412565] i2c i2c-1: Added multiplexed i2c bus 8
[    1.417896] i2c i2c-1: Added multiplexed i2c bus 9
[    1.423148] i2c i2c-1: Added multiplexed i2c bus 10
[    1.428527] i2c i2c-1: Added multiplexed i2c bus 11
[    1.433418] pca954x 1-0070: registered 8 multiplexed busses for I2C switch pca9548
[    1.444239] i2c i2c-1: Added multiplexed i2c bus 12
[    1.449617] i2c i2c-1: Added multiplexed i2c bus 13
[    1.454943] i2c i2c-1: Added multiplexed i2c bus 14
[    1.460353] i2c i2c-1: Added multiplexed i2c bus 15
[    1.465792] i2c i2c-1: Added multiplexed i2c bus 16
[    1.471109] i2c i2c-1: Added multiplexed i2c bus 17
[    1.476474] i2c i2c-1: Added multiplexed i2c bus 18
[    1.481805] i2c i2c-1: Added multiplexed i2c bus 19
[    1.486738] pca954x 1-0071: registered 8 multiplexed busses for I2C switch pca9548
[    1.497477] i2c i2c-1: Added multiplexed i2c bus 20
[    1.502827] i2c i2c-1: Added multiplexed i2c bus 21
[    1.508266] i2c i2c-1: Added multiplexed i2c bus 22
[    1.513598] i2c i2c-1: Added multiplexed i2c bus 23
[    1.518820] i2c i2c-1: Added multiplexed i2c bus 24
[    1.523983] i2c i2c-1: Added multiplexed i2c bus 25
[    1.529190] i2c i2c-1: Added multiplexed i2c bus 26
[    1.534353] i2c i2c-1: Added multiplexed i2c bus 27
[    1.539278] pca954x 1-0072: registered 8 multiplexed busses for I2C switch pca9548
[    1.547104] Driver for 1-wire Dallas network protocol.
[   12.166967] imx2-wdt 20bc000.wdog: timeout 60 sec (nowayout=0)
[   12.180675] sdhci: Secure Digital Host Controller Interface driver
[   12.187785] sdhci: Copyright(c) Pierre Ossman
[   12.192268] sdhci-pltfm: SDHCI platform and OF driver helper
[   12.206625] sdhci-esdhc-imx 219c000.usdhc: could not get ultra high speed state, work on normal mode
[   12.275208] mmc3: SDHCI controller on 219c000.usdhc [219c000.usdhc] using ADMA
[   12.315327] caam 2100000.caam: ERA source: CAAMVID.
[   12.327333] caam 2100000.caam: Entropy delay = 3200
[   12.435173] mmc3: new DDR MMC card at address 0001
[   12.440451] mmcblk3: mmc3:0001 008G30 3.64 GiB
[   12.453768] caam 2100000.caam: Entropy delay = 3600
[   12.458850] mmcblk3boot0: mmc3:0001 008G30 partition 1 4.00 MiB
[   12.459050] mmcblk3boot1: mmc3:0001 008G30 partition 2 4.00 MiB
[   12.459239] mmcblk3rpmb: mmc3:0001 008G30 partition 3 4.00 MiB
[   12.465882]  mmcblk3: p1

 

 

 

yocto 4.0

 

[    1.601682] 21ec000.serial: ttymxc2 at MMIO 0x21ec000 (irq = 64, base_baud = 5000000) is a IMX
[    1.612096] imx sema4 driver is registered.
[    1.625678] brd: module loaded
[    1.634390] loop: module loaded
[    1.639445] spi-nor spi5.0: n25q00 (131072 Kbytes)
[    1.644748] 4 fixed-partitions partitions found on MTD device 21e4000.spi-0
[    1.651730] Creating 4 MTD partitions on "21e4000.spi-0":
[    1.657230] 0x000000000000-0x000000080000 : "u-boot"
[    1.663603] 0x000000080000-0x0000000a0000 : "u-boot-env1"
[    1.670313] 0x0000000a0000-0x0000000c0000 : "u-boot-env2"
[    1.677161] 0x0000000c0000-0x000008000000 : "ubi"
[    1.683917] spi-nor spi5.2: n25q00 (131072 Kbytes)
[    1.689150] 1 fixed-partitions partitions found on MTD device 21e4000.spi-2
[    1.696222] Creating 1 MTD partitions on "21e4000.spi-2":
[    1.701637] 0x000000000000-0x000008000000 : "ubi"
[    1.713270] i2c_dev: i2c /dev entries driver
[    1.717761] Driver for 1-wire Dallas network protocol.
[    1.724868] sdhci: Secure Digital Host Controller Interface driver
[    1.731063] sdhci: Copyright(c) Pierre Ossman
[    1.735477] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.745013] caam 2100000.crypto: Entropy delay = 12000
[    1.781784] mmc3: SDHCI controller on 219c000.mmc [219c000.mmc] using ADMA
[    1.796806] caam 2100000.crypto: Instantiated RNG4 SH0
[    1.843416] caam 2100000.crypto: Instantiated RNG4 SH1
[    1.848574] caam 2100000.crypto: device ID = 0x0a16010000000200 (Era 4)
[    1.855237] caam 2100000.crypto: job rings = 2, qi = 0
[    1.878685] caam algorithms registered in /proc/crypto
[    1.885790] caam 2100000.crypto: rng crypto API alg registered prng-caam
[    1.892638] caam 2100000.crypto: registering rng-caam
[    1.898792] Device caam-keygen registered
[    1.905223] caam-snvs 20cc000.caam-snvs: violation handlers armed - non-secure state
[    1.917285] NET: Registered PF_LLC protocol family
[    1.923594] NET: Registered PF_INET6 protocol family
[    1.929904] Segment Routing with IPv6
[    1.933832] In-situ OAM (IOAM) with IPv6
[    1.938052] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.944898] NET: Registered PF_PACKET protocol family
[    1.950125] 8021q: 802.1Q VLAN Support v1.8
[    1.954575] Key type dns_resolver registered
[    1.958922] mmc3: new DDR MMC card at address 0001
[    1.964479] mmcblk3: mmc3:0001 008G30 3.64 GiB
[    1.971328]  mmcblk3: p1
[    1.974565] mmcblk3boot0: mmc3:0001 008G30 4.00 MiB
[    1.980850] mmcblk3boot1: mmc3:0001 008G30 4.00 MiB
[    1.987099] mmcblk3rpmb: mmc3:0001 008G30 4.00 MiB, chardev (246:0)

 

 

 

Labels (1)
0 Kudos
1 Solution
658 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

 

Do you see below log in the last probe? Please check this gpio driver and dts config.

 

error -EPROBE_DEFER: supplier 20a0000.gpio not ready

 

View solution in original post

0 Kudos
3 Replies
662 Views
mabar52
Contributor III

Made some progress.

I built the kernel with driver/base/ CONFIG_DRIVER_DEBUG and got:

[    1.774829] bus: 'platform': __driver_probe_device: matched device 2188000.ethernet with driver fec
[    1.774856] platform 2188000.ethernet: error -EPROBE_DEFER: supplier 20a0000.gpio not ready
[    1.774873] platform 2188000.ethernet: Added to deferred list

Same for many other drivers depending on gpio.


I think either we lack a CONFIG_ for a gpio driver or a compatible property in DTS.

Tags (1)
0 Kudos
659 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

 

Do you see below log in the last probe? Please check this gpio driver and dts config.

 

error -EPROBE_DEFER: supplier 20a0000.gpio not ready

 

0 Kudos
655 Views
mabar52
Contributor III
Thanks Qmiller,

I added
CONFIG_GPIO_MXC=y
And now i2c and fec are probed.
0 Kudos