【正文】
h a processor, the bootstrapper code needs to be boardspecific. – The second step lives in the onchip SRAM, so it can be up to 2KB. This is the bootstrapper. ? The bootstrapper downloads the actual bootloader image from an external host to the top of flash memory. The bootloader gets control when the processor powers on in normal operation mode. ? Many embedded controller chips do not support a bootstrap mode. Instead, the bootloader is written to flash via a JTAG interface. Primarily Embedded Bootloaders do not follow exact steps of System BIOS. Developing Embedded Bootloader ? Understand the hardware environment – Memory mapping, – I/O mapping, and – Interrupt Vectors. ? Understanding program loader: – the transition of control from ROM to RAM, – initializing the RAM, and – loading C code in RAM then transferring the control to C code. ? Necessary programming and debugging tools. ? Make sure programming and debugging tools are patible with the hardware environment. ? Board design meets the “proper” spec. – Perform some simple tests to verify that the hardware is working. Proper board design is very important for functional embedded bootloader. How Typical Embedded Bootloader Works? PowerON/ Reset start at 0xFFFFFFF0 Switch to Protected Mode – 32bits Initialize chipsets, SIO Configure serial for debug Initialize DRAM Execute payload (Linux, LILO, etherboot) Basic Bootloader Architecture/Flow Linux Boot in a nutshell System startup First Stage bootloader or Initial Boot Loader (IPL) Second Stage bootloader or Secondary Program Loader (SPL) Kernel Init Bootloader Master Boot Record LILO, GRUB, etc Linux User space PowerON/ Reset Functional Application Operation Source: Trego Ltd. Multistage bootloader brings flexibility! WinCE and Bootloader From performance scenario (projected): (loadcepc boot time ≈ 3040 sec]) (BIOS_load_image boot time ≈ 2030 sec) (IPL 10 sec) Source: Microsoft Today’s WinCE has specific bootloader steps. Available Bootloaders (relative list, not a prehensive one) Bootloader Video Support Description Architectures x86 ARM PowerPC MIPS SuperH m68k LILO No The main disk bootloader for Linux* X GRUB No GNU39。 BLDK Provides Flexibility to Scale System Initialization for Embedded Systems Legacy Compatibility Intel174。 BLDK 。s successor to LILO X Loadlin No Loads Linux from DOS X Etherboot No Loader to boot systems through Ether