embeded/raspberry pi2015. 8. 17. 15:31

공식문서 활용!

역시 공식 문서는 위대한 겁니다!!! (어?)


1단계 부트로더가 SoC 안에 내장되어 있고 이녀석이 SD 카드 초기화 / FAT 인식을 담당한다.

2단계 부트로더는 bootcode.bin으로 FAT를 통해 config.txt / cmdline.txt 등의 환경설정파일로 부팅을 진행한다.

3단계 GPU 펌웨어는 GPU의 사용을 초기화 하고(단, GPU 메모리가 적을 경우 사용 기능이 제한됨)

4단계 커널이 불려오고(2단계의 cmdline.txt를 통해 커널 인자를 넘겨받음)

5단계 rootfs 마운트 이후 /sbin/init를 통해 시스템 부팅 과정을 밟음


First stage bootloader 

This is used to mount the FAT32 boot partition on the SD card so that the second stage bootloader can be accessed. It is programmed into the SoC itself during manufacture of the RPi and cannot be reprogrammed by a user.


Second stage bootloader (bootcode.bin) 

This is used to retrieve the GPU firmware from the SD card, program the firmware, then start the GPU.


GPU firmware (start.elf) 

Once loaded, this allows the GPU to start up the CPU. An additional file, fixup.dat, is used to configure the SDRAM partition between the GPU and the CPU. At this point, the CPU is release from reset and execution is transferred over.


User code

This can be one of any number of binaries. By default, it is the Linux kernel (usually named kernel.img), but it can also be another bootloader (e.g. U-Boot), or a bare-bones application.

[링크 : http://elinux.org/RPi_Software]



The start_cd.elf and fixup_cd.dat will be used when gpu_mem=16.

The latter are cutdown versions without opengles/openmax/openvg/codec etc built in. They are used when gpu_mem=16.

[링크 : https://www.raspberrypi.org/forums/viewtopic.php?p=198420]

Posted by 구차니