2011-09-26 3 views
11

Я хотел бы систематизировать свои знания U-Boot/linux. Верно ли, что в каждой встроенной платформе требуется минимум 2 этапа загрузчика? Или может ли следующий процесс измениться?Встраиваемые Linux - этапы загрузки

  1. 1-ступенчатый загрузчик (может быть U-Boot) хранится во внутреннем ПЗУ процессора и не может быть обновлен. Он будет работать из внутренней кэш-памяти. Эта U-Boot должна (по крайней мере): инициализировать ОЗУ, инициализировать внешнюю флешку, инициализировать последовательную консоль, читать и запускать 2-этапный загрузчик.

  2. 2-этапный загрузчик (может быть U-Boot) хранится в флэш-памяти RW. Он будет обрабатывать сетевые, flash-RW-функции и т. Д. Этот U-Boot можно настроить и перезаписать. Основная задача - загрузить ядро ​​Linux в оперативную память и запустить его.

  3. linux ядро ​​запускается.

Является загрузчиком 1-го этапа всегда только для чтения?

ответ

11

Где, как этот первый загрузчик сильно зависит от системы. У вас может быть какое-то загрузочное устройство с USB-накопителем, которое перечисляет и загружает прошивку, чтобы набросать все на аппаратное обеспечение, а затем процессор загружается из этого бара.

Обычно да, первая загрузка - это своего рода вспышка. Это хорошая идея, чтобы этот первый загрузчик uber прост, по существу 100% -ный, без ошибок и долговечный и надежный, возможно, последовательный или другой способ войти, чтобы вы могли использовать его для замены второго/реального загрузчика.

В идеале второй загрузчик также хочет быть флеш-памятью, второй загрузчик захочет выполнить основную часть работы, инициализировать ddr, настроить ethernet, если он хочет иметь какую-то сетевую отладку или передачу файлов, bootp и т. д. Будучи значительно крупнее и сложнее, ожидается, что оба будут иметь ошибки и должны быть обновлены чаще, чем основной загрузчик. Первичный, как мы надеемся, защищен от перезаписи, так что вы можете спокойно заменить второй загрузчик без взлома системы.

Все ли системы используют вышеуказанные? Нет, некоторые/многие могут использовать только один загрузчик, причем, возможно, происходит пауза очень рано, так что нажатие клавиши на последовательном порту может прервать загрузчик, доведя вас до места, где вы можете повторно загрузить загрузчик. Разрешение для разработки загрузчика с меньшим количеством шансов на кражу, но все же шанс, если вы испортите этот первый бит до и в том числе нажатие клавиши и серийный флеш-загрузчик. Здесь опять же, что функция серийного загрузчика не всегда присутствует, просто удобство для разработчиков загрузчика. Часто резервным будет jtag, или съемный выпускной или какой-либо другой системный способ войти и перепрограммировать выпускной бал, когда вы его кирпич (также, иногда так же, как вы его программируете в первый раз в системе, когда плата создается, некоторые проекты можно сэкономить на затратах и ​​использовать предварительно запрограммированные вспышки во время изготовления, поэтому первая загрузка работает).

Загрузочный загрузчик linux не требует каких-либо/всего этого, очень минимального, настройки, подготовки командной строки или atags или что-то еще, и ветвления в linux.

Это вопрос с загрузкой, так как ответ сильно зависит от вашей системы, процессора, инженеров-проектировщиков (включая вас). Традиционно процессоры загружаются с флэш-памяти, а загрузчик получает память и некоторые другие вещи, поэтому следующий бит кода может работать.Этот следующий бит кода может поступать из многих мест: usb, disk, flash/rom, ethernet/bootp/tftp, pcie, mdio, spi, i2c и т. Д. И может быть столько уровней между перезагрузкой и linux, начиная с дизайн желает или требует.

6

Начальный загрузчик не обязательно должен быть доступен только для чтения, но при этом загрузка загрузочного модуля только для чтения в ПЗУ с некоторым режимом восстановления полезна, если вы повредите части памяти для чтения и записи; в противном случае вам потребуется физически подключить программиста к микросхеме флэш-памяти для восстановления.

4

Если вы используете U-Boot, загрузчик 2-го этапа можно пропустить, чтобы ускорить время загрузки. Другими словами, загрузчик первого этапа (SPL) загрузит ядро ​​Linux напрямую, пропустив загрузчик второго этапа (u-boot). В U-Boot это называется Falcon Mode.

Смежные вопросы