AnsweredAssumed Answered

3.8.13 kernel can't find Ethernet on p5040 DS using SDK 1.4 QorIQ

Question asked by Erich Nahum on Nov 11, 2013
Latest reply on Mar 6, 2014 by Adrian Stoica

Hi Folks,


I am trying to get a system up and running a Freescale P5040 RDB and having

a problem. The system came with the following in the flash and boots with

no problem:


Kernel 3.0.51-rt75 based on Yocto 1.2


However, I am using the QorIQ SDK 1.4 which uses 3.0.51-rt75. The P5040 is

a supported board in this SDK ("fsl-setup-poky -m p5040ds").


I have built everything from scratch using the stock configuration (i.e., I

have not changed any recipes and used the default .config generated),

following the SDK instructions as best I can.


I built fsl-image-core which produced uImage, uImage-p5040ds.dtb, and

fsl-image-core-p5040ds.ext2.gz.u-boot. I do not build or change u-boot. At

the uboot prompt, I tftp everything over as follows:


=> tftp 1000000 uImage

=> tftp 2000000 fsl-image-core-p5040ds.ext2.gz.u-boot

=> tftp c00000 uImage-p5040ds.dtb

=> bootm 1000000 2000000 c00000


The machine boots up fine but can't seem to find the network devices:


# ifconfig fm1-gb2

fm1-gb2: error fetching interface information: Device not found


I compared the dmesg logs from the original kernel in the flash and the

generated one. The original has the following:


| Freescale PowerQUICC MII Bus: probed mdio_bus mdio <at> ffe4e1120:

/soc <at> ffe000000/fman <at> 400000/mdio <at> e1120/hydra-rg has invalid PHY address

| mdio_bus mdio <at> ffe4e1120:

/soc <at> ffe000000/fman <at> 400000/mdio <at> e1120/hydra-sg-slot1 has invalid PHY address

| Freescale XGMAC MDIO Bus: probed mdio_bus mdio <at> ffe4f1000:

/soc <at> ffe000000/fman <at> 400000/mdio <at> f1000/hydra-xg-slot1 has invalid PHY address

| mdio_bus mdio <at> ffe4f1000: /soc <at> ffe000000/fman <at> 400000/mdio <at> f1000/hydra

xg-slot2 has invalid PHY address


but this doesn't seem to prevent it from finding the MACs:


fsl_mac: mac.c:411:mac_load() fsl_mac: FSL FMan MAC API based driver ()

fsl_mac ffe4e0000.ethernet: FMan dTSEC version: 0x08240101

fsl_mac ffe4e0000.ethernet: FMan MAC address: 00:04:9f:02:a9:a9


The dmesg log from the SDK-generated kernel, however, has the following:


[ 0.728635] mdio-mux-mmioreg fffdf0009.mdio-mux-emi1: failed to register

mdio-mux bus /localbus <at> ffe124000/board-control <at> 3,0/mdio-mux-emi1

[ 0.739675] platform fffdf0009.mdio-mux-emi1: Driver mdio-mux-mmioreg

requests probe deferral


[ 0.769892] libphy: Freescale XGMAC MDIO Bus: probed

[ 0.782012] FMAN(0) Fifo size settings:

[ 0.784621] - Total buffers available(512 - 256B/buffer)

[ 0.788796] - Total throughput(13Gbps)

[ 0.791408] - Max frame size(1522B)

[ 0.793758] - 1G ports TX 3(12 bufs set (min: 12))

[ 0.797408] - 1G ports RX 3(30 bufs set (min: 14))

[ 0.801078] - 10G ports TX 1(18 bufs set (min: 18))

[ 0.804819] - 10G ports RX 1(303 bufs set (min: 14))


[ 0.941550] fsl_mac: mac.c:417:mac_load() fsl_mac: FSL FMan MAC API based

driver ()

[ 0.948019] fsl_mac ffe4e0000.ethernet: No PHY (or fixed link) found

[ 0.953072] fsl_mac: probe of ffe4e0000.ethernet failed with error -22


That last few entries about fsl_mac is my guess as to where things are going

wrong, but I don't understand how. I've also compared the .config files for

the kernels, and everything looks OK, although there are a lot of

differences since there are a bunch of changes between 3.0.51 and 3.8.13.


Any help/suggestions appreciated.