Da eLinux.org:
http://elinux.org/Panda_How_to_MLO_%26_u-boot
Il bootloader di primo stadio viene eseguito direttamente sulla scheda dall'accensione. Non conosco il nome di questo bootloader (dal wiki ufficiale di TI, si chiama Boot Rom). Questo bootloader inizializza una quantità minima di CPU e hardware della scheda, quindi accede alla prima partizione della scheda SD (che deve essere in formato FAT), carica un file chiamato "MLO" e lo esegue. "MLO" è il bootloader di seconda fase.
Il bootloader di seconda fase può apparentemente essere uno tra l'X-loader o SPL. Questo bootloader apparentemente legge anche solo la prima partizione della scheda SD, carica un file chiamato "u-boot.bin" e lo esegue. "u-boot.bin" è il bootloader di terzo livello.
Il bootloader di terzo stadio è U-boot, che è un popolare bootloader per molte diverse schede e prodotti integrati. Questo bootloader ha molte caratteristiche diverse, tra cui una shell interattiva, variabili, la possibilità di accedere alla scheda SD e mostrarne il contenuto, ecc. Quello che succede dopo dipende dalla versione di U-boot che hai per la scheda Panda e da come è configurata. In una configurazione molto semplice, U-Boot cercherà il file "uImage" nella radice della prima partizione della scheda SD (che, ancora una volta, deve essere formattata come partizione FAT), ed eseguirlo. Questo è il kernel Linux. U-Boot passa al kernel un argomento della riga di comando. A seconda di come è configurato il kernel, potrebbe accettare la riga di comando da U-Boot o usarne una che è stata compilata al suo interno quando è stato compilato.
Questa è una "cosa della Panda Board", non necessariamente vera per Linux in generale.
Tuttavia, la maggior parte tutti i sistemi hanno una sorta di avvio "multistadio" come quello sopra. Ad esempio, avviando un PC con Windows, vedrai:
- Avvio del BIOS
- Il settore di avvio viene caricato da disco o USB; o un record di avvio PXE viene letto dalla rete
- Si avvia il kernel di Windows (quello che vedi prima/durante la "schermata iniziale")
- Infine, "Windows" si avvia
Quindi non è né "inefficiente", né insolito.
PS:Questo collegamento contiene anche una buona descrizione della sequenza di caricamento all'avvio:
- http://omappedia.org/wiki/Bootloader_Project
PPS:"MLO" sta per "Mmc LOader"
Quando la scheda si avvia, l'unità di gestione della memoria (MMU) deve ancora essere configurata prima che la CPU possa iniziare a utilizzare la SDRAM. Il SoC ha 56 KB di SRAM che possono essere utilizzati a quel punto, ma è troppo piccolo per l'esecuzione di u-boot. Il passaggio aggiuntivo è che il codice in esecuzione da SRAM verrà caricato e avvierà u-boot.