Hi,
I am on 6X Sabre-SDB board. I flashed U-Boot from MQX: MQX/tools/u-boot-sdb.imx
I also built an MQX example application and was able to flash it to QSPI flash with the update command
and boot the M4 with: run m4boot
Now i want to do this with normal u-boot-fslc from yocto. I am on https://github.com/Freescale/fsl-community-bsp-platform master
After enabling the setexpr command in u-boot config i can flash the M4 image with this command:
update_m4_from_sd=if sf probe 1:0; then if run loadm4image; then setexpr fw_sz ${filesize} + 0xffff; setexpr fw_sz ${fw_sz} / 0x10000; setexpr fw_sz ${fw_sz} * 0x10000; sf erase 0x0 ${fw_sz}; sf write ${loadaddr} 0x0 ${filesize}; fi; fi
This works fine. With the u-boot from MQX i would run this to boot the M4 (works fine too): sf probe 1:0; bootaux 0x78000000
But in Freescale/u-boot-fslc at patches-2015.01 · GitHub the bootaux command is missing.
I have the following commands, i think they are used to boot the M4 from DDR, but i want to boot from QSPI flash:
mw.l 0x4006e028 0x3f000485; mw.l 0x4006b08c 0x00015a5a;
So my question is, what exactly does the bootaux command?
other question: How can i use "M4 Fast Up" with my u-boot-fslc in yocto?
In the machine config: meta-fsl-arm/conf/machine/imx6sxsabresd.conf
There is: UBOOT_CONFIG[m4fastup] = "mx6sxsabresd_m4fastup_config"
So i guess, the whole u-boot stuff for the SoloX is not yet in u-boot in Github.
would be nice to have the source code for all this stuff
Hello Jan,
I'm going through the same thing currently.
The source code for bootaux is the following:
boot_private_data = 0x78000000
M4_BOOTROM_BASE_ADDR = 0x007F8000
SRC_BASE_ADDR = 0x020D8000
struct src *src_reg;
u32 stack, pc;
if (!boot_private_data)
return 1;
stack = *(u32 *)boot_private_data;
pc = *(u32 *)(boot_private_data + 4);
/* Set the stack and pc to M4 bootROM */
writel(stack, M4_BOOTROM_BASE_ADDR);
writel(pc, M4_BOOTROM_BASE_ADDR + 4);
/* Enable M4 */
src_reg = (struct src *)SRC_BASE_ADDR;
setbits_le32(&src_reg->scr, 0x00400000);
clrbits_le32(&src_reg->scr, 0x00000010);
return 0;
To do this inside a u-boot version without the bootaux command, you can do something like
=> sf probe 1:0; cp 0x78000000 0x007F8000 8; mw.l 0x020D8000 0xA0480529;
This started the M4 from QSPI2 for me.
Nathan,
Looks like the u-boot still is not in u-boot-fsl, or I'm looking at the wrong repo?
Tim
You are correct
Hi Jan
bootaux command uses QuadSPI Configuration Parameters Table
for running image, sect.8.6.3 QuadSPI Configuration Parameters
IMX6SXRM. Attached Release Notes p.11, User Guide p.28
show its usage. Regarding SoloX support it may be useful to look below
Freescale OpenEmbedded/Yocto Layers discussion list ()
Best regards
igor
Hi Igor,
thanks for the reply. For our application booting the M4 from environment/bootscript is useful,
but what we really want to use is the "m4fastup" as seen here: meta-fsl-arm/imx6sxsabresd.conf at master · Freescale/meta-fsl-arm · GitHub
The m4fastup boots the M4 early in the U-Boot code, and for this we need the sourcecode.
The normal mx6sxsabresd_config is there but the mx6sxsabresd_m4fastup_config
is missing. When can we expect the source code for this?
Best regards
Jan Hieber