2011-09-26 45 views
11

Tôi muốn hệ thống hóa kiến ​​thức U-Boot/linux của mình. Có đúng là các giai đoạn khởi động tối thiểu 2 là cần thiết trong mỗi nền tảng nhúng? Hoặc quá trình sau có thể khác nhau?Embedded Linux - Các giai đoạn khởi động

  1. Bộ tải khởi động đầu tiên (có thể là U-Boot) được lưu trữ trong ROM của bộ xử lý và không thể cập nhật. Nó sẽ chạy từ bộ nhớ cache nội bộ. U-Boot này cần (ít nhất): khởi tạo RAM, khởi tạo flash ngoài, khởi tạo giao diện điều khiển nối tiếp, đọc và chạy bộ nạp khởi động giai đoạn 2.

  2. Bộ nạp khởi động giai đoạn 2 (có thể là U-Boot) được lưu trong bộ nhớ flash RW. Nó sẽ xử lý các chức năng ethernet, flash RW, vv. U-Boot này có thể được tùy chỉnh và ghi đè. Nhiệm vụ chính là tải nhân Linux vào RAM và chạy nó.

  3. khởi động hạt nhân Linux.

Trình tải khởi động ở giai đoạn 1 luôn là Chỉ đọc?

Trả lời

11

Vị trí, cách bộ nạp khởi động đầu tiên phụ thuộc nhiều vào hệ thống. Bạn có thể có một số loại thiết bị có khả năng khởi động USB liệt kê và tải xuống chương trình cơ sở để ram tất cả trong phần cứng, sau đó khởi động bộ xử lý từ ram đó.

Thông thường, khởi động đầu tiên là loại flash nào đó. Đó là một ý tưởng tốt để có bộ nạp khởi động đầu tiên uber đơn giản, về cơ bản 100% lỗi miễn phí và bền và đáng tin cậy với một số nối tiếp hoặc cách khác để bạn có thể sử dụng nó để thay thế bộ nạp khởi động thứ hai/thực.

Lý tưởng nhất bộ nạp khởi động thứ hai cũng muốn flash, bộ nạp khởi động thứ hai muốn thực hiện phần lớn công việc, khởi tạo ddr, thiết lập ethernet nếu muốn có một số loại gỡ lỗi dựa trên ethernet hoặc chuyển tệp, bootp, vv Là lớn hơn đáng kể và phức tạp hơn nó dự kiến ​​sẽ có cả hai lỗi và cần phải được nâng cấp thường xuyên hơn so với bộ nạp khởi động chính. Điều quan trọng là hy vọng được bảo vệ khỏi bị ghi đè, do đó bạn có thể thoải mái thay thế bộ nạp khởi động thứ hai mà không cần bricking hệ thống.

Tất cả các hệ thống có sử dụng các điều trên không? Không, một số/nhiều người chỉ có thể sử dụng một bộ nạp khởi động duy nhất, có thể tạm dừng rất sớm để một phím tắt trên một cổng nối tiếp có thể làm gián đoạn bộ tải khởi động đưa bạn đến một nơi mà bạn có thể tải lại bộ nạp khởi động. Cho phép phát triển bộ nạp khởi động với ít cơ hội hơn trong việc gạch nhưng vẫn là một cơ hội nếu bạn làm hỏng bit đầu tiên trước đó và bao gồm cả phím tắt và bộ nạp flash nối tiếp. Ở đây một lần nữa rằng điều bộ nạp nối tiếp không phải lúc nào cũng có mặt, chỉ là sự tiện lợi cho các nhà phát triển bộ nạp khởi động. Thường thì dự phòng sẽ là jtag, hoặc một prom có ​​thể tháo rời hoặc một số cách hệ thống khác để vào và lập trình lại prom khi bạn brick nó (cũng vậy, đôi khi giống như cách bạn lập trình lần đầu tiên trong hệ thống khi bảng được sản xuất, một số thiết kế có thể gạch để tiết kiệm chi phí và sử dụng các flash được lập trình sẵn trong quá trình sản xuất để công việc khởi động đầu tiên).

Trình tải khởi động Linux không yêu cầu bất kỳ/tất cả điều này, một ram rất nhỏ, thiết lập, chuẩn bị dòng lệnh hoặc atags hoặc bất kỳ thứ gì và nhánh tới linux.

Đây là câu hỏi được tải vì câu trả lời phụ thuộc nhiều vào hệ thống, bộ xử lý, kỹ sư thiết kế của bạn (bao gồm cả bạn). Các bộ vi xử lý truyền thống khởi động từ flash và bộ nạp khởi động nhận được bộ nhớ và một số thứ khác để mã tiếp theo có thể chạy.Đó là bit tiếp theo của mã có thể đến từ nhiều nơi, usb, đĩa, flash/rom, ethernet/bootp/tftp, pcie, mdio, spi, i2c, vv Và có thể có nhiều lớp giữa quyền lực trên thiết lập lại và linux bắt đầu như mong muốn thiết kế hoặc yêu cầu.

6

Trình tải khởi động đầu tiên không phải chỉ đọc - nhưng đặt bộ nạp khởi động chỉ đọc vào ROM với một số chế độ khôi phục hữu ích trong trường hợp bạn làm hỏng các phần ghi của đèn flash; nếu không bạn sẽ cần phải gắn một lập trình vật lý vào chip flash để khôi phục.

4

Nếu bạn đang sử dụng U-Boot, bộ nạp khởi động giai đoạn 2 có thể được bỏ qua để tăng tốc thời gian khởi động. Nói cách khác, bộ tải khởi động giai đoạn đầu tiên (SPL) sẽ tải hạt nhân Linux trực tiếp, bỏ qua bộ nạp khởi động giai đoạn thứ hai (u-boot). Trong U-Boot, đây được gọi là Falcon Mode.

Các vấn đề liên quan