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.
Thanks,
-Erich
Hi Erich,
SDK 1.4 don't provide support for P5040RDB board, only for P5040DS. I checked the rcw and there are differences between RDB and DS (this be a reason that fm1-gb2 is not working for your board).
You can try attached rcw file, which is for RDB board.
Adrian
Hey Adrian-Mihai,
After some more digging, it seems like the RCW file is loaded into flash
for u-boot. But I have not changed u-boot in my system. Does the RCW
file have an impact on the dtb file?
Thanks again,
-Erich
From:
Adrian-Mihai Stoica <admin@community.freescale.com>
To:
Erich M Nahum/Watson/IBM@IBMUS
Date:
11/12/2013 04:39 PM
Subject:
Re: - 3.8.13 kernel can't find Ethernet on p5040 DS
using SDK 1.4 QorIQ
3.8.13 kernel can't find Ethernet on p5040 DS using SDK 1.4 QorIQ
reply from Adrian-Mihai Stoica in QorIQ Processors - View the full
discussion
Hi Erich,
SDK 1.4 don't provide support for P5040RDB board, only for P5040DS. I
checked the rcw and there are differences between RDB and DS (this be a
reason that fm1-gb2 is not working for your board).
You can try attached rcw file, which is for RDB board.
Adrian
Reply to this message by replying to this email, or go to the message on
Freescale Community
Start a new discussion in QorIQ Processors by email or at Freescale
Community
Following 3.8.13 kernel can't find Ethernet on p5040 DS using SDK 1.4
QorIQ in these streams: Inbox
But I don't understand how this will help. The u-boot in the flash is
correctly built, the system boots using what seems to be the 1.2 SDK and
finds the interfaces.
It seems like what I need is the right recipes/configuration to produce
the proper uImage, dtd, and fs image.
Is there something key I'm not getting? (e.g., u-boot needs to be built in
sync with everything else)
Thanks again,
-Erich
From:
Adrian-Mihai Stoica <admin@community.freescale.com>
To:
Erich M Nahum/Watson/IBM@IBMUS
Date:
11/13/2013 09:17 AM
Subject:
Re: - Re: 3.8.13 kernel can't find Ethernet on p5040
DS using SDK 1.4 QorIQ
Re: 3.8.13 kernel can't find Ethernet on p5040 DS using SDK 1.4 QorIQ
reply from Adrian-Mihai Stoica in QorIQ Processors - View the full
discussion
Attached is the u-boot for 5040rdb board.
Please try this u-boot, together with the rcw file and let me know if this
combination works for you. May not work, since the dtb, rootfs and u-Image
are for 5040ds
Adrian
Reply to this message by replying to this email, or go to the message on
Freescale Community
Start a new discussion in QorIQ Processors by email or at Freescale
Community
Following Re: 3.8.13 kernel can't find Ethernet on p5040 DS using SDK 1.4
QorIQ in these streams: Inbox
To be 100% that everything works fine for 5040rdb, this board should the supported in SDK 1.4 (this means every thing was tested for this board version). Using the rcw and u-boot which I sent to you, is a chance to work.
Adrian
Hello, Adrian
I have same problem with 5040RDB. QorIQ SDK does not support it (even ver.1.5). There is usb flash shipped with the board. But it contains only QorIQ_SDK_V1.3.2_p5040rdb_20130517_NOR_FLASH.bin (prebuilt u-boot/Linux image). How to compile custom kernel and rootfs for this board? How to use the latest QorIQ SDK with it? Where are device tree sources, needed to complete our own board with P5040 cpu?
thanks
Hi,
Please contact your local Freescale representative to find the necessary steps for procuring the binary .iso image.
Adrian
Thanks for the response. I thought it might be that the board was a 5040 RDB, but someone told me it was the same as the DS.
Unfortunately, I'm new to embedded and don't know where to stick these files. I assume they go somewhere in the tree and I remake, but I don't know where.
Thanks again,
-Erich
You should program the rcw file in NOR starting with 0xE800_0000.
in u-boot:
=>tftp 1000000 <rcw_file_name>.bin
=>erase e8000000 +$filesize
=>cp.b 1000000 e8000000 $filesize
More information you can find at this link
Adrian