Bootloader in Embedded Systems

Bootloader is a software component that boots a device and launches the major softwares on the development board. It provides, in addition to booting capabilities, functions such as effective debugging, reading/writing memory, flash reprogramming, configuring, etc.
In this article we will take the U-Boot (on the SMDK2410 development board) for example to introduce the usage of bootloader in embedded systems.


     U-Boot is the universal, richest, most flexible, and most actively developed open-source bootloader, it supports hundreds kinds of development boards of the PowerPC、ARM、X86、MIPS architectures. Download it http://www.denx.de/wiki/UBoot for more information and http://www.denx.de/wiki/UBoot/SourceCode for current source code.


Code Analysis
Platform dependence:
board, cpu, lib_ppc,lib_arm, include
Platform independence:
common, net,fs,drivers
Tools and Documenttation
tolls, doc

board

 Board dependent files,

RPXlite(mpc8xx),

smdk2410(arm920t),

sc520_cdp(x86)

 netNetworking code
 cpu CPU secific files,
mpc8xx, pcc4xx, arm720t,
arm920t, xscale, i386
 fs File System Code
 lib_ppc File generic to Power PC architecture post Power On Self Test
 lib_arm File generic to ARM architecture drivers Common used device drivers
 LIB_I386 File generic to x86 architecture disk Hard disk interface code
 include Header Files and board configs rtc Real Time Clock drivers
 common Misc functions dtt Digital Thermometer and Thermostat drivers
 lib_generic Generic library functions