http://blog.csdn.net/ooonebook/article/details/52939100
[Uboot] uboot process series :
[Project X] tiny210 (s5pv210) power-on START process (BL0-BL2)
It is recommended that you look at the [Project X] tiny210 (s5pv210) power-up process (BL0-BL2) to see the BL0\BL1\BL2 phase after power-up, as well as the operating position and function of each stage.
=================================================================================
I. Concepts of bootloader & Uboot1 and Bootloader
Bootloader is a small program that executes before the operating system runs. And the ultimate goal of this small program, properly set up the hardware and software environment, so that it can successfully boot the operating system.
2, the core function of bootloader
The core function of bootloader is to boot the operating system, some of which work as follows
- Initializing part of the hardware, including clocks, memory, etc.
- Load Kernel to memory
- Load file system, Atags, or DTB to memory
- Properly configure some hardware based on operating system startup requirements.
- Start the operating system
3. Monitor function of bootloader
The above 2 is the core function of bootloader, which is the function of booting the operating system.
However, some bootloader also support the monitor function, providing more command line interface, the specific functions are as follows:
- For debugging
- Read/write Memory
- Burn Write Flash
- Configuring Environment variables
- command to boot the operating system
4, embedded several common bootloader
- Uboot
This is also the most common bootloader, open source, commonly used in arm,mips and other platforms.
Supports the monitor function and is also used in Project X bootloader
So the next two sections will explain this bootloader.
- Superboot
Not open source, friendly arm of the tiny210 code in the default use of this bootloader
- LK (Little Kernel)
It is commonly used in Qualcomm platforms to support monitor functions.
Second, UBOOT-SPL & Uboot1, UBOOT-SPL
generated by Uboot compilation, corresponding to the BL1 phase, that is, the BL1 mirror, Uboot-spl.bin.
According to the [Project X] tiny210 (s5pv210) power-up process (BL0-BL2), the code runs in Iram
- The main tasks are:
- Initializing part of the clock (and SDRAM correlation)
- Initialize DDR (external SDRAM)
- Loading the BL2 image onto the SDRAM from the storage medium (e.g. Sd\emmc\nand flash)
- Verifying the legitimacy of BL2 mirroring
- Jump to the address where the BL2 image is located
the follow-up will introduce UBOOT-SPL from both the compilation and the Code flow.
Corresponding article:
"[Uboot] (chapter II) uboot process--UBOOT-SPL compilation process"
"[Uboot] (chapter III) uboot process--UBOOT-SPL code Flow"
2, Uboot
generated by Uboot compilation, corresponding to the BL2 phase, that is, the BL2 mirror, Uboot.bin.
According to the [Project X] tiny210 (s5pv210) power-up process (BL0-BL2), its code runs in SDRAM.
- The main tasks are:
- Initializing part of the hardware, including clocks, memory, etc.
- Load Kernel to memory
- Load file system, Atags, or DTB to memory
- Properly configure some hardware based on operating system startup requirements.
- Start the operating system
- Monitor works primarily with command line commands, and the following are some of the operations:
- Flash operation
- Environment variable operation
- Start action
The follow-up will introduce UBOOT-SPL from the compilation, the overall code flow, and the specific flow of some features.
Corresponding article:
"[Uboot] (fourth) Uboot process--uboot compilation process"
[Uboot] (fifth) Uboot process--uboot overall code Flow "
[Uboot] (chapter I) uboot process--Overview