반응형

🧠 부트로더의 두 가지 주요 역할

  1. 시스템 초기화
    • 최소한의 시스템만 초기화 (DRAM, 인터페이스 등 아직 미설정)
  2. 커널 로드
    • 커널을 메모리에 로드하고 실행 환경 구성

⚙️ 부트 순서 요약

  1. 전원 ON 또는 리셋 시점
    • 시스템은 매우 제한된 상태
    • 동작 가능한 자원: CPU 코어, 온칩 메모리, 부트 ROM
  2. 초기 부트 코드 실행
    • DRAM 컨트롤러 설정
    • 메모리 접근 가능하게 됨
    • 부트로더 코드를 DRAM으로 복사
  3. 커널 로드 및 실행 준비
    • 커널을 플래시에서 DRAM으로 복사
    • 하드웨어 설정 정보와 커널 커맨드 라인을 커널에 전달
    • 제어를 커널로 넘김 → 부트로더는 더 이상 필요 없음

🧱 예전의 단순한 부트 구조 (NOR Flash 사용 시)

 

🔹 특징

  • 부트로더를 리셋 벡터(0xFFFFFFFC) 위치에 배치
  • NOR Flash는 직접 주소 매핑 가능 → 실행 간편
  • 초기 점프 명령어로 부트로더 코드 실행 시작

🔸 동작 흐름

  1. NOR Flash에서 부트로더 실행
  2. DRAM 초기화 후, 부트로더를 DRAM으로 복사
  3. 커널을 플래시에서 DRAM으로 복사
  4. 커널 실행

🌀 복잡한 현대 부트 시퀀스

  • NOR Flash가 아닌 다른 저장장치 사용 시 (e.g. NAND, eMMC 등)
  • 부트 과정이 멀티 스테이지로 복잡해짐
  • SoC에 따라 부트 절차가 매우 다름
  • 일반적으로:
    1. 부트 ROM → 1단계 부트로더
    2. 1단계 → 2단계 부트로더
    3. 2단계 → 커널 로딩

 

반응형

+ Recent posts