Help with elftosb

Started by architect, January 13, 2014, 09:35:03 PM

Previous topic - Next topic

architect

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


mbergmann

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

architect

Hi Mike,

Thank you for the information!

Cheers,
Valentin