![]() second stage loader. Regardless of whether the SPL is used, U-Boot performs both first-stage and second-stage booting. SPL would do initial hardware configuration and load the rest of U-Boot i.e. Stage 1 bootloader is sometimes called a small SPL (Secondary Program Loader). Since each platform is different and it is advised to look into the platforms datasheet for more details. This can be controlled through jumpers, though some resistor based methods also exists. And starts execution from the device which is capable of booting. The ROM code checks for the various bootable devices that is available. It is loaded by the system’s ROM code (this code resides inside the SoC’s and it is already preprogrammed) from a supported boot device. When U-Boot is compiled we get two images, first stage (MLO) and second stage (u-boot.img) images. Stages in boot loadingįor starters, U-Boot is both a first stage and second stage bootloader. Now its upto the designer to pick what device he wants and then use U-Boot to his advantage. You configure U-Boot for various boot methods like MMC, USB, NFS or NAND based and it allows you to test the physical RAM of any issues. ![]() Last but not least, it has a command line interface which gives you a very easy access to it and try many different things before finalizing your design. So you are covered in all aspects that is needed from a bootloader and more so. The list of filesystems supported by U-Boot is huge. It also has the support to boot linux kernel from the network using TFTP. It also supports different methods of booting which is pretty much needed on fallback situations.įor example, it has support to boot from USB, SD Card, NOR and NAND flash (non volatile memory). If your hardware design is based out of any of these processors and if you are looking for a bootloader the best bet is to try U-Boot first. It even supports FPGA based nios platforms. It supports a wide range of microprocessors like MIPS, ARM, PPC, Blackfin, AVR32 and x86. It is released as open source under the GNU GPLv2 license. U-Boot is the most popular boot loader in linux based embedded devices. In other words, it initializes the absolutely needed peripherals alone and hands over the control to the O.S aka kernel. To achieve this, it needs to initialize the required peripherals which helps the device to carry out its intended functionality. In embedded systems the bootloader is a special piece of software whose main purpose is to load the kernel and hand over the control to it. Everyone likes their devices to boot up fast. So much research and decision making time is spent on this to make sure that the devices which are initialized are absolutely needed. The reason I said there are so many ways to answer this question, is because the use case of each device is different, and we need to choose the bootloader carefully, which initializes the device. After all, everything has a beginning right? The hardware device can be anything, from your mobile phones, routers, microwave ovens, smart tv, and to the world’s fastest supercomputer. In short this is the piece of software which is executed as soon as you turn on your hardware device. There are so many answers to this question, but if you look at the core of all the answers it would contain some kind of initialization.
0 Comments
Leave a Reply. |