Sideway
output.to from Sideway
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: 1/4/2014 Revision: 0


Latest Updated LinksValid XHTML 1.0 Transitional Valid CSS!Nu Html Checker Firefox53 Chromena IExplorerna
IMAGE

Home 5

Business

Management

HBR 3

Information

Recreation

Hobbies 8

Culture

Chinese 1097

English 339

Reference 79

Computer

Hardware 249

Software

Application 213

Digitization 32

Latex 52

Manim 205

KB 1

Numeric 19

Programming

Web 289

Unicode 504

HTML 66

CSS 65

SVG 46

ASP.NET 270

OS 429

DeskTop 7

Python 72

Knowledge

Mathematics

Formulas 8

Algebra 84

Number Theory 206

Trigonometry 31

Geometry 34

Coordinate Geometry 2

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

Natural Sciences

Matter 1

Electric 27

Biology 1

Geography 1


Copyright © 2000-2024 Sideway . All rights reserved Disclaimers last modified on 06 September 2019