Olimex Support Forum

OLinuXino Android / Linux boards and System On Modules => iMX233 => Topic started by: architect on January 13, 2014, 09:35:03 PM

Title: Help with elftosb
Post by: architect on January 13, 2014, 09:35:03 PM
Hello,

I have the OLinuXino-MICRO board and trying to understand how the booting process works. I am looking at the u-boot implementation.

Can somebody explain the following command from (u-boot-imx23.bd)?

load ivt (entry = 0x0014) > 0x8000;

Why 0x0014 and 0x8000?

Thank you in advance,
Valentin

Title: Re: Help with elftosb
Post by: mbergmann on March 21, 2014, 10:55:41 AM
Hi Valentin,

first said: If you only want to boot your (unencrypted) bare metal code on iMX233 you probably don't need this information. If you look into imx-bootlets-src there is a much simpler, straight forward way to boot the SOC.

The Image Vector Table (IVT) is a table of pointers used by the boot ROM to locate other required data components. This stuff is used if you want to use the HAB (High Assurance Boot) to boot encrypted images.

The HAB boot process and IVT is described in: http://cache.freescale.com/files/32bit/doc/app_note/AN4581.pdf

As for the U-Boot SPL, on i.MX23/i.MX28, the SPL size is limited to 32 KiB (see Reference Manual for On Chip RAM), thus the IVT is placed at 0x8000 offset. The entry point is hard-coded to 0x0014. Normally you would set any entry point on an symbol e.g.

load ivt (entry = power_prep:_start) > 0x8000;

Kind Regards

Mike
Title: Re: Help with elftosb
Post by: architect on March 21, 2014, 07:18:03 PM
Hi Mike,

Thank you for the information!

Cheers,
Valentin