[BBB-Linux] 1. Beaglebone Black Boot Process Overview

 Embedded Linux Boot Process


Tổng quan sẽ gồm 5 giai đoạn theo mô tả trên hình, ta đi vào sâu hơn về từng giai đoạn

1. SoC ROM Bootloader

  • RBL (ROM Bootloader): cái này sẽ do bên vendor, hay bên sản xuất board code, không thể thay thế được nội dung
  • Đây là đoạn code đầu tiên sẽ chạy khi mở board lên 
  • Nhiệm vụ chính là để chạy khối tiếp theo First Stage Bootloader (SPL/MLO)

2. First Stage Bootloader (SPL/MLO)

SPL: Secondary Program Loader
MLO: Memory Loader
  • Nhiệm vụ chính là cấu hình RAM, clock, các ngoại vi ngoài và nạp Main Bootloader (U-boot, Grub ...)
  • Một số SPL còn triển khai các tính năng bảo mật như verify signature (secure boot)
  • Chọn chế độ boot 
Trên Beaglebone Black có tổng cộng 8 option cho việc boot. Thứ tự ưu tiên sẽ tùy vào việc Phím S2 được ấn lúc khởi động hay không 
Các bạn có thể đọc thêm về cái này trong Reference Manual của BeagleBone Black 
Table 26-7. SYSBOOT Configuration Pins[4] 

3. Second Stage Bootloader (U-boot + uEnv.txt)

  • Khởi tạo ngoại vi từ tất cả boot options : I2C, NAND, Flash , ... sẵn sàng cho việc load kernel image
  • Load kernel image : Load image đến DDR memory
  • Truyền Boot argument to Kernel
  • Có thể cấu hình lại u-boot bằng file uEnv.txt
  • U-boot sẽ luôn tìm uImage

4. Linux Kernel

  • Phân tích các boot arguments từ u-boot 
  • Sử dụng Device Tree Blob/Binary (DTB) để hiểu cấu trúc phần cứng của hệ thống
  • Mount Root File System
  • Chạy "init" process, process đầu tiên PID 1

5. Root Filesystem, Init Process

Root filesystem là file system mà được mount tới root (/)
File system là tập hợp các file theo quy chuẩn cấu trúc, ở đây là Linux File System



Đây là tổng quan về BBB Boot Process, với mỗi 1 mục trên, mình sẽ có các bài đi sâu tìm hiểu hơn

Đăng nhận xét

0 Nhận xét