Где, как этот первый загрузчик сильно зависит от системы. У вас может быть какое-то загрузочное устройство с USB-накопителем, которое перечисляет и загружает прошивку, чтобы набросать все на аппаратное обеспечение, а затем процессор загружается из этого бара.
Обычно да, первая загрузка - это своего рода вспышка. Это хорошая идея, чтобы этот первый загрузчик uber прост, по существу 100% -ный, без ошибок и долговечный и надежный, возможно, последовательный или другой способ войти, чтобы вы могли использовать его для замены второго/реального загрузчика.
В идеале второй загрузчик также хочет быть флеш-памятью, второй загрузчик захочет выполнить основную часть работы, инициализировать ddr, настроить ethernet, если он хочет иметь какую-то сетевую отладку или передачу файлов, bootp и т. д. Будучи значительно крупнее и сложнее, ожидается, что оба будут иметь ошибки и должны быть обновлены чаще, чем основной загрузчик. Первичный, как мы надеемся, защищен от перезаписи, так что вы можете спокойно заменить второй загрузчик без взлома системы.
Все ли системы используют вышеуказанные? Нет, некоторые/многие могут использовать только один загрузчик, причем, возможно, происходит пауза очень рано, так что нажатие клавиши на последовательном порту может прервать загрузчик, доведя вас до места, где вы можете повторно загрузить загрузчик. Разрешение для разработки загрузчика с меньшим количеством шансов на кражу, но все же шанс, если вы испортите этот первый бит до и в том числе нажатие клавиши и серийный флеш-загрузчик. Здесь опять же, что функция серийного загрузчика не всегда присутствует, просто удобство для разработчиков загрузчика. Часто резервным будет jtag, или съемный выпускной или какой-либо другой системный способ войти и перепрограммировать выпускной бал, когда вы его кирпич (также, иногда так же, как вы его программируете в первый раз в системе, когда плата создается, некоторые проекты можно сэкономить на затратах и использовать предварительно запрограммированные вспышки во время изготовления, поэтому первая загрузка работает).
Загрузочный загрузчик linux не требует каких-либо/всего этого, очень минимального, настройки, подготовки командной строки или atags или что-то еще, и ветвления в linux.
Это вопрос с загрузкой, так как ответ сильно зависит от вашей системы, процессора, инженеров-проектировщиков (включая вас). Традиционно процессоры загружаются с флэш-памяти, а загрузчик получает память и некоторые другие вещи, поэтому следующий бит кода может работать.Этот следующий бит кода может поступать из многих мест: usb, disk, flash/rom, ethernet/bootp/tftp, pcie, mdio, spi, i2c и т. Д. И может быть столько уровней между перезагрузкой и linux, начиная с дизайн желает или требует.