Fastboot is the Android's bootloader, requires non-standard partitioning scheme, see below
swarren_brain_dump explains a lot about how the device boots from eMMC
Fat installer collects ideas how to painless migrate to u-boot.
This explanation is based on http://www.muromec.org.ua/2011/03/blog-post.html, and updated by swarren.
- After power-on, a the embedded controller (EC/NVEC) starts running.
- If Ctrl-Esc is pressed, the EC signals this to Tegra by pulling a Tegra pin to a specific state, requesting recovery mode.
- The EC either powers on Tegra, or releases it from reset.
- A ROM bootloader integrated into Tegra IC starts.
- If the boot is to continue, the bootloader assess some fuse bits (and/or strapping pins) to see where it should boot from. On ac100 that's internal eMMC.
- It searches for BCT (Boot Config Table) and for PT (Partition Table) on the eMMC and finds EBT (4th) partition there. (swarren: I'm not sure if the bootloader actually uses the PT or not; it may get the bootloader details from fields in the BCT).
- Vendors fill EBT with Fastboot bootloader which then reads an image (in abootimg format) from the LNX (6th) (or if the “Home” button is pressed SOS (5th)) partition, copies the kernel and initramfs to the approprieate RAM locations and starts it supplying default command line parameters (with ATAGs).