[meta-freescale] Bootstrapping Linux on an unsupported board using Yocto (Linux)

Marco Pensallorto m.pensallorto at bmate.it
Wed Apr 29 07:37:34 PDT 2015


Hi there folks,

 My boss asked me to evaluate the process of tailoring a yocto-based
Linux distribution to support this iMX6 board:
https://www.embedded-world.de/en/ausstellerprodukte/embwld15/product-1537794/bf8a1/
we're using in a commercial project for an important customer.

 At first, I figured I could just get away with it just by using a
standard supported configuration and then proceed the extra mile from
there tweaking and fixing as necessary creating extra layers and so
forth... but it turned out it's waaaay harder than that! I've already
spent a couple of days on this thing and I could not achieve the board
to boot properly into Linux.

  At first I tried building for imx6qsabresd:

$ repo init -u https://github.com/Freescale/fsl-community-bsp-platform
-b fido && repo sync
$ source ./setup-environment build
$ bitbake core-image-minimal

.... crunch crunch crunch....

1. Tried to write the sdcard image but it doesn't even start u-boot
(no serial output on any port)
$ sudo dd if=core-image-minimal-imx6qsabresd-20150429122640.rootfs.sdcard
of=/dev/sdb bs=1M conv=fsync

2. Tried to bot into u-boot.imx alone. Again, nothing. (no serial output)
$ sudo dd if=u-boot.imx of=/dev/sdb seek=2 conv=fsync

3. Tried to boot into very-old-but-working vendor-provided u-boot load
kernel uImage and DTB from there and boot. Didn't work either, however
I read that older U-boot versions did not support DTB files so it is
not clear to me how to bundle together the kernel and the DTB into a
uImage. Of course it would be much better to be able the yocto version
of u-boot instead.  Moreover, would a generic dtb work for a different
piece of hardware anyways?? I am totally stuck here folks and I would
really appreciate some help on this. Sorry if this looks like a noob
question. It definitely is :-( Thanks.

U-Boot 2009.08-dirty (Feb 03 2015 - 10:50:48)

CPU: Freescale i.MX6 family TO1.5 at 792 MHz
Thermal sensor with ratio = 183
Temperature:   39 C, calibration data 0x5844eb69
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock     : 66000000Hz
ipg per clock : 66000000Hz
uart clock    : 80000000Hz
cspi clock    : 60000000Hz
ahb clock     : 132000000Hz
axi clock   : 264000000Hz
emi_slow clock: 132000000Hz
ddr clock     : 528000000Hz
usdhc1 clock  : 198000000Hz
usdhc2 clock  : 198000000Hz
usdhc3 clock  : 198000000Hz
usdhc4 clock  : 198000000Hz
nfc clock     : 24000000Hz
Board: i.MX6Q-SABRESD: unknown-board Board: 0x63015 [POR ]
Boot Device: SD
I2C:   ready
DRAM:   2 GB
MMC:   FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3
*** Warning - bad CRC or MMC, using default environment

In:    serial
Out:   serial
Err:   serial
Found PFUZE100! deviceid=10,revid=21
Net:   got MAC address from IIM: 00:00:00:00:00:00
FEC0 [PRIME]
Hit any key to stop autoboot:  0

MX6Q SABRESD U-Boot > printenv
bootdelay=3
baudrate=115200
ipaddr=192.168.1.103
serverip=192.168.1.101
netmask=255.255.255.0
loadaddr=0x10800000
rd_loadaddr=(0x1300000)
netdev=eth0
ethprime=FEC0
uboot=u-boot.bin
kernel=uImage
nfsroot=/opt/eldk/arm
bootargs_base=setenv bootargs console=ttymxc2,115200
bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs ip=dhcp
nfsroot=${serverip}:${nfsroot},v3,tcp
bootcmd_net=run bootargs_base bootargs_nfs; tftpboot ${loadaddr}
${kernel}; bootm
bootargs_mmc=setenv bootargs ${bootargs} root=/dev/mmcblk0p1 rootwait
rw video=mxcfb1:dev=ldb,LDB-XGA,if=RGB666
video=mxcfb0:dev=hdmi,1920x1080M at 60,if=RGB24
bootcmd_mmc=run bootargs_base bootargs_mmc; mmc dev 0; mmc read
${loadaddr} 0x800 0x2000; bootm
bootcmd=run bootcmd_mmc
stdin=serial
stdout=serial
stderr=serial
ethact=FEC0

Environment size: 784/8188 bytes
MX6Q SABRESD U-Boot >

I've created a FAT partition, put uImage and a DTB file there, loaded
into 2009 U-Boot Ok but it won't boot. It gets stuck just after
verifying the uImage checksum. Thought this could be related to the
missing/wrong DTB.

Addendum: tried a few more MACHINES (imx6dlsabresd, imx6qsabrelite,
imx6qsabresd, nitrogen6x). Still no pie :-(


More information about the meta-freescale mailing list