В каком месте драйвер uart из u-boot будет удален, а драйвер uart ядра будет вставлен во время загрузки?

У меня были сомнения, потому что я знаю, что у u-boot есть драйвер uart, который помогает просматривать журналы отладки с момента запуска u-boot при загрузке ядра (где драйвер ядра не будет работать), мой вопрос

  1. после того, как u-boot передает управление ядру, что происходит с драйверами uart, ethernet со стороны u-boot после загрузки ядра?

2.Ядро также будет иметь такой драйвер, который вступит в действие после загрузки ядра?

  1. я могу видеть журналы загрузки от u-boot до ядра, после загрузки ядра я могу использовать приглашение через драйвер u-boot или ядра?

4. если это со стороны ядра, в какой момент он переключается с драйвера uart u-boot?


person Ela_embedded    schedule 29.09.2014    source источник


Ответы (1)


В первую очередь нужно понимать, что драйверы разные (хотя и одинаковые по функциональности) на этапе u-boot и на этапе ядра. Например, U-Boot использует собственный драйвер uart, чтобы показать вам свою консоль. Как только управление передается ядру, ядро ​​загружает свой собственный драйвер uart (согласно плате), инициализирует его и, наконец, получает консоль.

Теперь, отвечая на ваши вопросы один за другим:

  1. U-Boot полностью находится в оперативной памяти. Таким образом, все его драйверы находятся в самой оперативной памяти. Как только U-Boot передает управление ядру, ядро ​​устанавливает свою собственную среду в ОЗУ, и, следовательно, все данные загрузчика исчезают (включая драйверы). Драйвер U-Boot больше не работает после загрузки ядра!

  2. Точно. Ядро имеет свои собственные драйверы для доступа к устройствам. Он гораздо более функционален, чем тот, который предоставляется загрузчиком. Как правило, дополнительные функции, включая обработку прерываний и, возможно, DMA. Драйвер u-boot, как правило, представляет собой простой драйвер опроса. По запросу uart ядра Linux может использовать режим опроса во время ранней загрузки, но с другим кодом, чем драйвер u-boot.

  3. Именно через драйвер ядра. Последнее сообщение, напечатанное uart-драйвером U-Boot, — «Запуск ядра…». После этого сообщения все сообщения консоли, которые вы видите, печатаются с помощью драйвера ядра. Таким образом, первое сообщение, выводимое драйвером ядра, будет "Распаковка Linux... выполнена, загрузка ядра"

  4. Я надеюсь, что ответ на третий вопрос ответит и на этот!

person raghav3276    schedule 29.09.2014