AnsweredAssumed Answered

Guide for using U-Boot Falcon Mode with Yocto?

Question asked by Alex Fox on Apr 4, 2018
Latest reply on Oct 3, 2018 by Brian Martins

Would love to see an up-to-date guide on using the U-Boot SPL Falcon Mode with the current Yocto build environment. I have an iMX6sxsabresd and I've tried to put details together from as many web pages and READMEs that I can find, yet I'm still having trouble getting this going. 


Some things I've tried over many hours:

1. Made a u-boot_2016.11.bbappend with the following settings:

    UBOOT_CONFIG[sd] = "mx6sxsabresd_spl_config,sdcard"

    KERNEL_IMAGETYPES = "zImage uImage"    (is this necessary? I keep hearing that U-Boot can natively handle the zImage now but it's difficult to figure out since so many changes have happened through the years)

2. This causes my final SD card to not boot any longer (removing the "_spl_" in the config name resolves that issue)

3. I've also tried the instructions from here (How to decrease boot time on iMX6 - i.MXDev Blog ) and here (ventana/bootloader/falcon-mode – Gateworks) with limited success -- I've built my own u-boot and uImage I can get the SPL and U-Boot.img running at the 1k and 69k marks, respectively, and load my DTB (uImage-imx6sx-sdb.dtb) and uImage(uImage-4.1.38-fslc+gee67fc7e072d -- built with make uImage LOADADDR=0x10800000, which is probably wrong), boot up U-Boot successfully and mmc write the uImage, but I try to do the spl export with my boot args, U-Boot reboots with a "Loading Kernel Image ... data abort" message. 


It's pretty frustrating to have burned so many hours on this already. The first guide is missing MANY, MANY steps that should at least be mentioned. I'm not sure who wrote it, but it's disappointing to see it so light on important details (i.e. why 5MB empty space instead of 10 or 15? Why a 15MB rootfs partition? How do those numbers relate to the load addr, if at all? etc.)


What ARE the correct load addresses and FDT addresses to use on the iMX6sxsabresd, and where can I find them? Why are they used and different per iMX6? 


Can you please provide detailed steps for getting this going, that can be easily adapted for any of your iMX6 processors?