i.mx6UL start application program from bootloader

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

i.mx6UL start application program from bootloader

914 Views
hansonhe
NXP Employee
NXP Employee

Dear,

 

We want to start application program from bootloader, we have below questions:

 

 

  1. We use I.MX6UL bootrom start BootLoader, we need use mkimage.sh which could compile and generator bin file, then we convert bin to executable file.
  2. If we need use Bootloader run application program,whether application image file also need convert by mkimage.sh? 
  3. The file which convert by mkimage.sh is compressed file. we do not know its format, how about its start address, how to realize the the address jump, do you have example? Thanks.
Labels (1)
0 Kudos
3 Replies

563 Views
Yuri
NXP Employee
NXP Employee

Hello,

 

Do You mean bare metal or Linux applications ? Is the mentioned bootloader

Your own one or U-boot ?
It is possible to use i.MX boot ROM to load and run bare metal

applications. Generally, iMX6 UL boot process is described in Chapter 8 (System
Boot) of the Reference Manual. For example, for SD boot , the loading boot data
from boot SD card is performed in two stages :

  first read IVT, DCD, then read executable code, using the Boot Data Structure.

At first, boot ROM copies 4K byte (containing IVT and DCD ) from sector 0

of the boot SD card to internal buffer in OCRAM, located in reserved area

(0x00900000 0x00907000). This area must not be used by user application.

  Then, “after checking the Image Vector Table header value (0xD1) from Program

Image, the ROM code performs a DCD check. After successful DCD extraction,

the ROM code extracts from Boot Data Structure the destination pointer and length

of image to be copied to RAM device from where code execution occurs”.

  The IVT contains field entry as absolute address of the first instruction to execute

from the image.

  Note : according to Figure 8-3 (Internal ROM and RAM memory map), only OCRAM

Free Area (68KB) from 0x00907000 till 0x00918000 may be used by user’s application.

 

  U-boot may be considered as good example for bare metal application,

that may be load by i.MX6 UL boot ROM.

Have a great day,
Yuri

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

0 Kudos

563 Views
hansonhe
NXP Employee
NXP Employee

Dear Yuri,

Now we could jump from bootloader to APP program address. We have below questions:

1. If APP is running in DDR, how to copy the APP image file from external QSPI flash to DDR? What is the corresponding relationship between the QSPI flash address and DDR address.

2. If APP is runnning in QSPI nor flash, it will call the QSPI interface driver interface, init the QSPI register, when the app program running in nor flash, what need to be noticed about the QSPI register and QSPI interface driver code? Thanks.

When start APP in norflash, call the QSPI interface initializatioin, QSPI register will run crash.

 

0 Kudos

563 Views
hansonhe
NXP Employee
NXP Employee

Dear,

They use bare metal, and compile the application program in IAR, and got the bin file, we want to know the app startup address which use for Boot jump, and we got the _iar_program_start is 0x60005dac, whether 0x60005dac is address which use for boot jump to application address? Thanks.

0 Kudos