부팅 순서는 무엇입니까?


35

나는 Raspberry Pi의 부팅 순서가 일반적인 응용 프로그램 (NOOBS와 같은)에서 전원 응용 프로그램 (또는 다른 경우 웜 재설정)에서 로고의 표시에 이르기까지 무엇인지 궁금합니다. 또는 설명 된 곳.

이 시퀀스에서 가장 필요한 일반적인 그림 외에도 초기 단계에 가장 관심이 있습니다.

  1. ARM CPU의 리셋 벡터는 무엇이며 어떻게 / 어떻게 정의됩니까?
  2. 첫 번째 ARM CPU 명령어는 어떤 메모리에서 가져 옵니까? 이 코드는 어디에 있으며이 코드를 저장하는 데 어떤 기술이 사용됩니까?
  3. ARM32 또는 Thumb (또는 Jazelle) 코드입니까? 리셋 벡터의 하위 비트에 의존합니까?
  4. 초기 부팅 코드의 소스 (또는 분해 또는 덤프)를 사용할 수 있습니까? 그렇지 않은 경우 JTAG 포트를 사용하여이를 판별하는 데 기술적 문제가 있습니까? 법률에 관해서는, 본인은 본인이 거주하는 지역 (프랑스)에 적용되는 법률에 대한 나의 이해를 신뢰할 수있는 위험을 감수 할 준비가되어 있습니다. 요구하지 않아야합니다.
  5. 주변 장치는 어떤 순서로 초기화되며 어떤 코드 조각으로 초기화됩니까?
  6. ARM CPU 옆에 BCM2835에서 일부 프로세서 / 오토마타가 실행 중이고 부팅 순서가 ARM CPU와 어떤 관련이 있습니까?

ARM CPU의 기술 참조 설명서BCM2835 ARM 주변 장치 또는 기타 문서를 살펴볼 준비가되었습니다 .

업데이트 : 게시 한 후 BCM2835의 GPU가 ARM의 마스터 역할을하며 부팅 순서에 크게 관여한다는 것을 알았으며 이것이것을 발견 했습니다 .


4
그 정보의 대부분은 소스 코드, 부트 로더 및 SoC 펌웨어와 같은 비공개 소스라고 말할 수 있습니다. 지금은 할당량을 알 수 없습니다. 한 가지를 알아야합니다. BCM은 CPU가 아닌 GPU입니다. 부트 로더는 GPU 섹션에서 시작하여 그곳에서 RAM을 초기화 한 다음 소스 코드에 액세스 할 수있는 첫 번째 장소 인 Raspbian CPU로 핸드 오버합니다. 행운을 빕니다. 이 질문은 매우 광범위하고 대답하기가 어렵습니다.
Piotr Kula

답변:


38

Raspberry Pi의 부팅 순서는 기본적으로 다음과 같습니다.

  1. 1 단계 부팅은 온칩 ROM에 있습니다. L2 캐시에 2 단계를로드합니다
  2. 2 단계는 bootcode.bin입니다. SDRAM 활성화 및 3 단계로드
  3. 3 단계는 loader.bin입니다. .elf형식과로드 에 대해 알고 있습니다.start.elf
  4. start.elf로드합니다 kernel.img. 그런 다음도 읽고 config.txt, cmdline.txt그리고 bcm2835.dtb DTB 파일이 존재하는 경우에로드 0×100및 커널 @ 0×8000 경우 disable_commandline_tags그 부하는 커널 설정 @ 0×0 그렇지 않으면 커널 @로드 0×8000에 넣어 ATAGS을0×100
  5. kernel.img 그런 다음 ARM에서 실행됩니다.

kernel.imgARM에로드 될 때까지 모든 것이 GPU에서 실행됩니다 .

이 다이어그램이 매우 유용하다는 것을 알았습니다.

부팅 순서


2
유능한. 2 단계 부트 로더 bootcode.bin가 GPU, ARM (및 어떤 종류의 코드)에 의해 실행되는 코드인지 아니면 이들을 혼합 한 것인지 명확히 할 수 있습니까? 3 단계에서도 동일합니다 loader.bin(이것이 사라진 것처럼 보일 경우).
fgrieu

3
@ fgrieu 설명을 포함하도록 답변을 편집했습니다. ARM에서 실행될 때까지 GPU에서 모든 것이 실행됩니다 kernel.img.
SG60

1
에 따르면 loader.bin 더 이상 사용되지 않습니다. bootcode.bin직접 부하 start.elf에 따라 이 힘내 커밋
HeatfanJohn

@ SG60 : HeatfanJohn의 정보로 답변을 업데이트 할 수 있습니까?
Peter Mortensen

누구든지 NOOBS 부팅에 대해 알고 있습니까? recover.elf와 일부 소프트 부팅 antics를 포함하는 프로세스는 약간 다릅니다. uboot가 약간 낮은 수준에서 작동하는 것이 궁금합니다.
Sam
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.