Boot time of i.MX6 SoloX SABRE-SDB

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Boot time of i.MX6 SoloX SABRE-SDB

2,330 Views
anjaunnasch
Contributor II

Hello .

I work with the i.MX6 SoloX SABRE-SDB and I need the M4 to boot much faster. I measure a time about 300 - 400 ms and i read it can be faster (System should be initialized after 11 ms).

The command 'run m4boot' is first at the u-boot environment variable bootcmd.

All I tried till now is the following:

in the File include/configs/mx6sxsabresd.h I undefined

CONFIG_VIDEO

CONFIG_VIDEO_GIS

CONFIG_SYS_LONGHELP

all USB configs

CONFIG_CMD_NET

CONFIG_CMD_MEMTEST

CONFIG_DISPLAY_CPUINFO

CONFIG_DISPLAY_BOARDINFO

But that didn't affect enought.

Maybe I could silent all output on serial while u-boot, but I tried and it didn't

work for all output.

I hope somebody has some experience with this and can help me.

Thank you.

Labels (1)
6 Replies

934 Views
anjaunnasch
Contributor II

So far I found something in iMX_Linux_user's_guide.pdf :

  

      "On i.MX 6SoloX boards, there are two ways to boot M4 images in U-Boot:

          1. M4 Normal Up [...]

          2. M4 Fast Up (only supported on i.MX 6SoloX SABRE-SD boards). Initiated by U-Boot at a very early boot phase to

          meet the requirement of M4 booting in 50 ms. No U-Boot command is involved. Requires:

               a. U-Boot M4 fast up image and A9 must boot from the QSPI2 NOR flash.

               b. Kernel DTB: imx6sx-sdb-m4.dtb

               c. Have the M4 image burned. (NOR flash of QuadSPI2 PortB CS0)

        "

Now i added the local.conf file with "UBOOT_CONFIG = "m4fastup"" and bitbake it.

My environment variables for this 'm4fastup' are:

setenv bootcmd 'run bootargsset; sf probe; sf read ${loadaddr} 0xA00000 0x2000; sf read ${fdt_addr} 0x800000 0x800; bootz ${loadaddr} - ${fdt_addr}'

setenv bootargsset 'setenv bootargs ${consoleinfo} ${rootfsinfo} ${displayinfo} ${special}'

setenv consoleinfo 'console=ttymxc0,115200'

setenv setenv special 'uart_at_osc'

But what do I have to do than?  I flash my DS card with the new .sdcard image but when i power the board nothing comes via serial.

I tried to change the switches  SW11 & SW12 as told in the Reference Manual but this had no affect.

If I do the normal boot with the default bootcmd M4 and A9 work fine. Just the boottime is too long.

I hope someone has some experience with this.

0 Kudos

934 Views
janhieber
Contributor I

Hi,

you can boot the M4 from QSPI flash? Thats a good start. Try putting the C-code from the last answer: Re: I.MX6SX start M4 from U-Boot with QSPI flash

somewhere early in uboot.

The m4fastup you found would be the correct solution, I also found this parameter 2 months ago when I was working on it. But the corresponding uboot config for m4fastup was not present in any uboot source. So until freescale does not release the m4fastup config + code you have no implement it yourself.

Maybe this helps: 4image=imx6sx_sdb_m4.bin mmcdev=2 mmcpart=1 loadaddr=0x80800000 loadm4image - Pastebin.com

Its the commands to flash and boot the M4 without the predefined commands. But again, look at the C-code in the link above.

0 Kudos

934 Views
anjaunnasch
Contributor II

thank you for your answer.

Can you tell me where in u-boot you wrote this c code?

i putted it in board/freescale/mx6sxsabresd.c in the funktion board_init() before return. Maybe that's too early, because it dosn't work. but if i want to run m4boot while u-boot it tells me  -## Auxiliary core is already up- so i know this c-code is processed.

0 Kudos

934 Views
janhieber
Contributor I

I did not try this with C code in the bootloader, sorry

0 Kudos

934 Views
CarlosCasillas
NXP Employee
NXP Employee

Hi,

On the i.MX6X devices, the A9 core is who starts executing after POR while M4 core stills on Reset. The iMX starts extracting the image from the non-volatile memory and loading it to RAM to start the execution and the instruction to remove the Reset from the M4 core must also be performed by the A9 core. So, an option for reduce the boot time of the M4 core could be checking the source/destination addresses of the ROM code movements (used by DDR calibration) to see if the instruction for removing the Reset from the M4 could be inserted there. Additionally, the bandwidth of the external memory where the image for the M4 execution is stored, impacts on the boot time. It could be reduced by loading the M4 image to the internal RAM of the i.MX.

You could also refer to the following threads regarding i.MX6X boot for additional details:

i.MX6SX boot Cortex M4 core from U-Boot

Re: I.MX6SX start M4 from U-Boot with QSPI flash

Hope this will be useful for you.
Best regards!
/Carlos

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

934 Views
w2vy
Contributor V

I am still trying to get my SoloX board working, but I have been reading a bit about it...

I do know that the M4 can execute out of the Quad SPI ROM interface and it has the advantage of being independent of the A9 core, at least when it is running, not sure about during boot time.

That may be controlled by Reset Configuration words or switch settings, I have no idea.

Just offering a path for you to consider

Tom

0 Kudos