|
|
 | | From: | funkymunky | | Subject: | why is a bootloader required? | | Date: | 30 Dec 2004 23:27:22 -0800 |
|
|
 | Hi,
Im new to the arm family and embedded systems in general,till now iv worked a bit on the 89c51. Ive been puzzled by the following: why is a bootloader required in controllers like the at91rm9200 im using right now? how come no bootloader is required in a controller like the 89c51? Iv read a bit on the need for a bootloader in a PC..but why would it be required on a controller? Also, the atmel manual mentions that a default bootloader is provided in controllers like the one im using..my project involves porting of Linux to this controller..why,then, is a seperate bootloader reqd?? thanx in anticipation Mayank
|
|
 | | From: | Joe | | Subject: | Re: why is a bootloader required? | | Date: | Fri, 31 Dec 2004 11:16:45 +0000 |
|
|
 | funkymunky wrote: > Hi, > > Im new to the arm family and embedded systems in general,till now iv > worked a bit on the 89c51. > Ive been puzzled by the following: why is a bootloader required in > controllers like the at91rm9200 im using right now? how come no > bootloader is required in a controller like the 89c51? Iv read a bit on > the need for a bootloader in a PC..but why would it be required on a > controller? > Also, the atmel manual mentions that a default bootloader is provided > in controllers like the one im using..my project involves porting of > Linux to this controller..why,then, is a seperate bootloader reqd?? > thanx in anticipation > Mayank >
Linux is a portable OS, while boot up sequences are architecture specific. Therefore boot loader is separated from the Linux Kernel. In 8051 world, the OS are usually not portable, therefore boot up code and OS can combine.
Also, in most cases the linux kernel image is compressed. Therefore you need a small program to decompress it and put it in the RAM (you don't want to execute it from ROM becasue ROM is ususally slower), and then start executing the kernel.
Bootloader can also perform a number of hardware initializations, self tests, verify the boot/OS image, or even allow you to select one of the OS if there are multiple OS kernel images available. Separating boot loader and Kernel can also make it easier for firmware upgrade.
In 8051 uP, the memory is so small that having a boot loader may reduce the maximum program size you can have.
Joe
|
|
 | | From: | paul.gotch at at-arm-dot.com | | Subject: | Re: why is a bootloader required? | | Date: | 31 Dec 2004 11:48:44 GMT |
|
|
 | Joe wrote: > Also, in most cases the linux kernel image is compressed. Therefore > you need a small program to decompress it and put it in the RAM > (you don't want to execute it from ROM becasue ROM is ususally slower), > and then start executing the kernel.
....however on many embedded devices you don't want to stuff that much RAM in there. The other alternative is Execute In Place (EIP) with places the readonly sections of the kernel in ROM and the readwrite sections in RAM. I believe that this is being worked on for Linux.
This gives you faster startup times because you don't have to copy everything out of ROM into RAM before you do anything. If you have got enough RAM to have the kernel resident then you can demand copy the kernel into RAM as you are running. > Bootloader can also perform a number of hardware initialisations,
In some cases the bootloader has to do processor setup such as enabling MMUs, enabling processor features which are disabled by default out of reset and so on.
-p -- Paul Gotch CoreSight Tools Development Systems ARM Limited.
This message is intended for the addressee(s) only and may contain information that is the property of, and/or subject to a confidentiality agreement between the intended recipient(s), their organisation and/or the ARM Group of Companies. If you are not an intended recipient of this message, you should not read, copy, forward or otherwise distribute or further disclose the information in it; misuse of the contents of this message may violate various laws in your state, jurisdiction or country. If you have received this message in error, please contact the originator of this message via email and delete all copies of this message from your computer or network, thank you. ---------------------------------------------------------------------
|
|
|