Monday, 20 January 2014

Introduction of bootloader

Hi everybody !!

In my last post we have build uClinux for our EA-board, now we got kernel image which can run on LPC2468 processor. But this kernel image cannot run itself on the board because before running kernel, system has to initialize. That's why we need bootloader to initialize system and to load the krnel in the memory.

Here I am giving the basic understanding of bootloader and an introduction of U-Boot (one of the standard bootloader).

Bootloader : On many computer systems the first program that will run when the system powers up is the
boot loader ref . The boot loader’s responsibility is to load the operating system kernel into memory and start the kernel’s execution. To be able to achieve this the boot loader must begin by initializing the hardware, such as the processor, memory controller and the devices that are needed to be able to load the kernel image.

Besides loading the kernel image the boot loader might also need to load an initial root file system and make that available to the operating system. This is especially true when using Linux on an embedded system which doesn’t have a storage area for the file system.

Das U-Boot : Das U-boot also known as the Universal Boot Loader or u-boot for short, ref,  is an
open-source boot loader that supports a wide range of different architectures such as ARM, PowerPC, XScale, x86, MIPS, Coldfire, 68k, and MicroBlaze. The u-boot boot loader has actually become the most widely used boot loader on ARM based systems.
Besides supporting a wide range of architectures the u-boot also supports a wide range of booting options. Below is a list of some of these booting options:
• From Flash memory (for example NOR or NAND)
• From a USB mass storage device
• From an MMC/SD memory card
• From a harddisk or CDROM
• Using Ethernet: TFTP, BOOTP, DHCP or NFS
• Using a serial connection

A booting option means a location from where the u-boot searches for the kernel image to load. If a MMC/SD card has been selected the u-boot will initialize the memory card controller and try to read the image(s) from that device.

So guys this is the basic's of  bootloader to understand Why we need bootloader and what it will do !!
In my next blog i'll show how to build U-Boot image or executable !!

Thats all :)

Abhishek Mourya

5 comments:

  1. H!! abhi, arun surya here ,want to know about boot loader for PIC microcontroller

    ReplyDelete
    Replies
    1. Hii surya... You are using PICDEM board (PIC18F4550, PIC18F4455 etc..)
      Which is USB PIC controller so u can use Microchip's MCHPUSB Bootloader Firmware in your projects and u can modify it according to ur requirement....
      go through once on this reference if u want to use USB bootloader for ur PIC...
      http://www.picprojects.net/usbbootloader/

      and for PIC there are many others bootloader source code is available like Tiny bootloader, USB bootloader etc...
      check it out..
      http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm

      just read that information u'll get it :)

      Delete
    2. http://ww1.microchip.com/downloads/en/DeviceDoc/51526C.pdf

      check this PDF also

      Delete
  2. Hi Abhisek,
    Good blog for sharing Knowledge and getting the Knowledge on Embedded Linux.

    ReplyDelete