부팅 순서는 무엇입니까?


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.