====== Boot Loader====== ---- ===== Boot Media ===== On ODROID-XU3 is a DIP Switch (sw1) to select the [[en:xu3_bootmode_configuration|booting Device]] and CCI Disable/Enable. ^ SW1-1(Left of Dip Switch) ^ 1st Boot media ^ |OFF|MicroSD card| |ON|eMMC| ^ SW1-2(Right of Dip Switch) ^ CCI ^ |OFF|Disable| |ON|Enable| **SW1-2 MUST be ON(CCI Enable) in order to boot properly.** ===== Boot Sequence ===== Upon power on the board will search for the boot media. It will perform the following: * 1) iROM (Code inside the SoC) will attempt to read the boot media at the first 512 bytes of it. On those first 512 bytes fwbl1 should exist. * 2) fwbl1 will load bl2 (SPL) that is part of the U-boot. * 3) bl2 will load U-boot. * 4) U-Boot will do whats left, such as handle TrustZone, load kernel image if setted. === fwbl1 === This blob is the first thing that CPU will call, we don't have much information on it since its provided by Samsung.\\ Position on SD: 1 === bl2 === This is the SPL, part of the U-Boot, upon building U-Boot you'll have the mkspl program what will extract it from the u-boot.bin\\ Position on SD: 31 === u-boot.bin === This is the U-Boot itself built. For more information about U-Boot please check their website: http://www.denx.de/wiki/U-Boot\\ Position on SD: 63 === TrustZone Software === This is the blob done by Samsung/ARM to support Trustzone platform.\\ Position on SD: 719 === Default Env === The default env provided in U-Boot will attempt the following: * 1) Load boot.ini script from the first FAT type partition from the boot media. * 2) Load kernel from its on media/ramdisk position (This is the Android Boot)