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