Sideway
output.to from Sideway

Raspberry Pi



Beginners Guide



Draft for Information Only

Content

  Raspberry Pi: Boot Process
   The BCM2835 SoC
  Raspberry Pi Board Normal Boot Process
   First Stage BootLoader- ROM
   Second Stage BootLoader- Bootcode.bin
   Third Stage BootLoader- Start.elf

Raspberry Pi: Boot Process

Boot process is the initial or start up program of a computer or a porcessor to load and run another program on the computer. The VideoCore processor used in the BCM2835 SoC are fully programmable, which allows the optimization the VideoCore processor for a specific multimedia application through programming or re-programming the application software. With the integration of the ARM processor, more complex application can be developed through ARM code. Since the ARM processor is only considered as an application processor of the BCM2835 SoC, the boot loader of the BCM2835 SoC may boot up the dual core VideoCore multimedia processor and its peripherls before starts the ARM CPU.

The BCM2835 SoC

The BCM2835 system on chip (SoC) is an assembly of central processing unit (CPU), random access memory (RAM), graphics processing unit (GPU), or Input and output (I/O), by Broadcom.com, the single ARM1176JZF-S CPU included in the high definition 1080p embedded multimedia BCM2835 applications processor may not be the main CPU of the SoC. The ARM CPU may be only acted as a modular data processor unit, like an application co-processor, to the central processing logic mechanism of the BCM2835 SoC. Similarly, the dual core VideoCore IV Multimedia Co-Processor is also acted as a modular digital signal processor unit, like a paired multimedia data processor, to the central processing logic mechanism of the BCM2835 SoC. Since, the technology used in VideoCore processeor is based on a fully modular programmable architecture, which enable the VideoCore processor to be programmed through an application software. Besides, the central processing logic mechanism and internal networking features used in modular and multi-core design also benefits the functionality and connectivity of the BCM2835 SoC to communicate with external and internal devices. 

Raspberry Pi Board Normal Boot Process

First Stage BootLoader- ROM

Since a Raspberry Pi is powered by a system on chip (SoC), BCM2835, the first stage bootloader is initiated by the BCM2835 SoC when the Raspberry Pi is first turned on. The VideoCore multimedia processor itself is already a self contained programmable multimedia processor based on the VideoCore processing engine and is constructed like a SoC for specified applications or devices. The additional of an ARM processor only provides a way to program the BCM2835 indirectly using ARM code without the need of re-programming the application program based on the VideoCore code. The ARM processor may be considered as the co-processor of the VideoCore multimedia processor and is not activiated at the first stage boot process. Besides, the embedded SDRAM, which is mainly for high quality media and ARM code, can also be turned off at the first stage boot process. In fact, after power on reset, the BCM2835 multimedia processor may execute the first stage bootloader which is stored in the ROM of the SoC, for configuring a Reduced Instruction Set Computer to start the second stage bootloader. One important function provided in the first stage bootloader is to mount the FAT32 boot partition of the SD card in the SD slot for accessing and a binary large object (BLOB) is then loaded from the SD card accordingly. 

Second Stage BootLoader- Bootcode.bin

The first BLOB is the bootcode.bin file stored in the SD card. The first BLOB is loaded to the L2 cache of the VideoCore multimedia processor. The first stage BootLoader may transfers the code execution to the loaded first BLOB and stops further execution. Since the loader.bin code is merged into the bootcode.bin code after 19th October 2012, the loader.bin is no longer requried, and the second stage bootloader becomes more complex. The second stage bootloader first brings up the most important peripherals of the VideoCore multimedia processor. One important function provided in the second stage is to enable the SDRAM such that the SDRAM is available for both the VideoCore multimedia processor and the ARM processor. The loader.bin code in the bootcode.bin can then load another binary large object (BLOB) from the SD card to the SDRAM.

Third Stage BootLoader- Start.elf

The second BLOB is the start.elf file stored in the SD card. The second BLOB is loaded to the SDRAM that will be mapped to the VideoCore multimedia processor only. The second stage BootLoader may transfers the code execution to the loaded second BLOB to continue the code execution. One important function provided in the third stage bootloader is to read the config.txt, cmdline.txt and kernel.img files. The config.txt file provides a way to configure the BCM2835 SoC through a text file without the need of programming code. Both the cmdline.txt and kernel.img will be loaded to the SDRAM that will be mapped to the ARM processor accordingly. The third stage bootloader will configures all the available peripherals, including the ARM processor, of the BCM2835 multimedia processor such that the VideoCore multimedia processor can work independently afterward. The third stage bootloader will also start up the ARM processor such that the ARM processor is released from reset and and execute its own code independently.

 


©sideway

ID: 140100001 Last Updated: 2014/1/4 Revision:

IMAGE

Home (5)

Business

Management

HBR (3)

Information

Recreation

Hobbies (7)

Culture

Chinese (1097)

English (336)

Reference (66)

Computer

Hardware (149)

Software

Application (187)

Digitization (24)

Numeric (19)

Programming

Web (618)new

CSS (SC)

ASP.NET (SC)

HTML

Knowledge Base

Common Color (SC)

Html Entity (Unicode) (SC)

Html 401 Special (SC)

OS (388)new

MS Windows

Windows10 (SC)

.NET Framework (SC)

DeskTop (7)

Knowledge

Mathematics

Formulas (8)

Number Theory (206)

Algebra (20)

Trigonometry (18)

Geometry (18)

Calculus (67)

Complex Analysis (21)

Engineering

Tables (8)

Mechanical

Mechanics (1)

Rigid Bodies

Statics (92)

Dynamics (37)

Fluid (5)

Fluid Kinematics (5)

Control

Process Control (1)

Acoustics (19)

FiniteElement (2)

Biology (1)

Geography (1)


Copyright © 2000-2019 Sideway . All rights reserved Disclaimers last modified on 10 Feb 2019