Что означает fatload mm c и bootm в загрузчике? - PullRequest
0 голосов
/ 24 февраля 2020

Я не могу понять эти команды как

fatload mmc 0 0x3000000 uImage
fatload mmc 0 0x2A00000 devicetree.dtb
bootm 0x3000000 - 0x2A00000

#fatload mmc 0 0x3000000 uImage. Что это делает? Это загрузка uImage как толстый раздел и загрузка по адресу ОЗУ 0x3000000?

bootm 0x3000000 - 0x2A00000 -? Означает ли это загрузку с адреса RAM от 0x3000000 до 0x2A00000?

1 Ответ

0 голосов
/ 27 февраля 2020

U-Boot запускает код, помещенный в (процессор) RAM, хотя он также может считывать данные с других носителей. Процесс загрузки обычно происходит в два этапа:

  1. Чтение образа ОС с носителя (Ethe rnet, fla sh, USB, MM C) в RAM
  2. Переход к первой инструкции образа в ОЗУ

uImage - это (наиболее вероятно Linux) ядро.

xxx.dtb - это дерево вашего устройства в скомпилированном виде , Он содержит информацию об оборудовании, так что информация может храниться отдельно от ядра.

Теперь, чтобы прочитать изображение с карты MM C, отформатированной в FAT, введите команду:

fatload mmc <dev>[:partition] <loadAddress> <bootfilename>

Таким образом, команды 2 fatload загружают 2 файла с карты MM C в память / ОЗУ процессора.

Теперь, что касается bootm: Команда запускает образ ядра. Синтаксис:

bootm <address of kernel> <address of ramdisk> <address of dtb>

Адреса ramdisk и / или dtb могут быть опущены, если ядро ​​сконфигурировано таким образом, что оно ему не нужно / их.

В вашем случае вы не используете ramdisk, следовательно, да sh - в середине.

...