Draft for Information Only
Content
Raspberry Pi: Boot Process
Raspberry Pi: Boot ProcessBoot 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 SoCThe 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 ProcessFirst Stage BootLoader- ROMSince 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.binThe 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 Links
![]() ![]() ![]() ![]() ![]() |
![]() Home 5 Business Management HBR 3 Information Recreation Hobbies 8 Culture Chinese 1097 English 339 Travel 18 Reference 79 Computer Hardware 254 Software Application 213 Digitization 37 Latex 52 Manim 205 KB 1 Numeric 19 Programming Web 289 Unicode 504 HTML 66 CSS 65 SVG 46 ASP.NET 270 OS 431 DeskTop 7 Python 72 Knowledge Mathematics Formulas 8 Set 1 Logic 1 Algebra 84 Number Theory 206 Trigonometry 31 Geometry 34 Calculus 67 Engineering Tables 8 Mechanical Rigid Bodies Statics 92 Dynamics 37 Fluid 5 Control Acoustics 19 Natural Sciences Matter 1 Electric 27 Biology 1 |
Copyright © 2000-2025 Sideway . All rights reserved Disclaimers last modified on 06 September 2019