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?
I am currently finishing my MSc thesis, which consists of boot time reduction with Yocto Project (Boot2Qt/Poky) for i.MX6qsabresd.
To reduce boot time on the boot loading stage i had to activate the Falcon Mode.
After enabling SPL i used the same instructions that those two tutorials that you presented.
My biggest setback was on memory writing. On both tutorials they assume that you are writing a kernel and dtb without overlapping other partitions because they based on their own memory writing to use the mmc write command.
So i would recommend you to map all your memory blocks since the dd command at image copy to the mmc write on U-Boot command line and make sure you don't overlap partitions or files.
Other than that i didn't have any major problem activating the Falcon mode.
Hello Alex Fox,
The NXP boards do not support U-Boot Falcon Mode so the Ventana board from Gateworks would be one of the few examples to use although we do not have details on why for example the 5NB empty space. It is possible that’s it’s an arbitrary space while it is well below what’s necessary for the bootloader to be placed since it requires unallocated space and not a partition.
You can find the FDT for each of the NXP boards on the i.MX Linux User’s Guide that it’s part of the Linux BSP Releases, so I hope that helps.
Maybe another users on the communities can add a bit on their own experience.