Customized linux booting

Is the documenation of the boot sequence for the Apalis TK1 (HW: V1.1A, SW: Linux Image V2.7Beta1) http://developer.toradex.com/knowledge-base/linux-booting#boot-sequence still up to date?

The boot loader is copied from the boot device to RAM and control is passed to the boot loader. This is the earliest where customised code (in the boot loader) can be executed.

Does the “first point for customization” apply to the MLO then? Is there some documentation about how to customize the MLO?

Is the documentation of the boot sequence for the Apalis TK1 (HW: V1.1A, SW: Linux Image V2.7Beta1) http://developer.toradex.com/knowledge-base/linux-booting#boot-sequence still up to date?

The boot loader is copied from the boot device to RAM and control is passed to the boot loader. This is the earliest where customised code (in the boot loader) can be executed.

Yes.

Does the “first point for customization” apply to the MLO then? Is there some documentation about how to customize the MLO?

What exactly do you mean by MLO? I don’t think this is a term ever used in our context.

All our current Tegra modules really do boot off a SoC built-in boot ROM which can not be changed as such. Of course some behaviour thereof may be customised by either strapping pins (solely on-module in the Apalis TK1 case except of course the recovery mode pin) or irrevocable fusing. The boot ROM really executes on the so called AVP subsequently loading the so called boot configuration table (BCT) from secondary storage which is eMMC in the Apalis TK1 case. The BCT then contains tables to initialise the RAM and points to where the boot loader lays in storage to subsequently be loaded into RAM and executed. So the earliest to have any custom code being executed is in that boot loader which is U-Boot in our case. U-Boot itself is divided into a secondary program loader (SPL) which still executes on the AVP, initialises the regular ARM cores and then passes execution to them running the regular full-blown U-Boot.

Ah ok. (The SPL is then the 2nd stage loader after the boot ROM code which I called MLO / minimal bootloader / x-loader). Thanks for the detailed answer.