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