Команды U-Boot

  Инфо    Память    Хранилище    Выполнение      Загрузка      Окружение    FDT    Sunxi  

  bootd      bootm      bootp    loadb    loads    loadx    loady    nfs    tftpboot  

bootm *


Загрузить образ приложения из памяти (boot application image from memory)

Help: => help bootm bootm - boot application image from memory Usage: bootm [addr [arg ...]] - boot application image stored in memory passing arguments 'arg ...'; when booting a Linux kernel, 'arg' can be the address of an initrd image When booting a Linux kernel which requires a flat device-tree a third argument is required which is the address of the device-tree blob. To boot that kernel without an initrd image, use a '-' for the second argument. If you do not pass a third a bd_info struct will be passed instead Sub-commands to do part of the bootm sequence. The sub-commands must be issued in the order below (it's ok to not issue all sub-commands): start [addr [arg ...]] loados - load OS image ramdisk - relocate initrd, set env initrd_start/initrd_end fdt - relocate flat device tree cmdline - OS specific command line processing/setup bdt - OS specific bd_t processing prep - OS specific prep before relocation or go go - start OS =>

bootm [addr [arg ...]] - образ загрузочного приложения, хранящийся в памяти, передача аргументов 'arg ...';

При загрузке ядра Linux 'arg' может быть адресом образа initrd

При загрузке ядра Linux, для которого требуется дерево устройств FDT, третий аргумент является адресом BLOB-объект дерева устройств.

Чтобы загрузить это ядро без образа initrd, используйте "-" для второго аргумента.

Без третьего аргумента будет передана структура bd_info

Подкоманды для выполнения части последовательности загрузки.

Подкоманды должны быть выданы в указанном ниже порядке (можно не выдавать все подкоманды):

  • start [addr [arg ...]] - начало [адрес [аргумент ...]]
  • loados - загрузить образ ОС
  • ramdisk - переместить initrd, установить env initrd_start/initrd_end
  • fdt - переместить дерево устройств
  • cmdline - обработка/настройка командной строки для конкретной ОС
  • bdt - специфичная для ОС обработка bd_t
  • prep - подготовка конкретной ОС перед перемещением или запуском
  • go - запустить ОС
  • Команда bootm используется для запуска образов операционной системы.

    Из заголовка образа она получает информацию о типе операционной системы, используемом методе сжатия файла (если таковой имеется), адресах загрузки и точки входа и т.д.

    Затем команда загрузит образ в требуемый адрес памяти, при необходимости распаковывая его на лету.

    В зависимости от ОС она передает необходимые аргументы загрузки и запускает ОС в точке входа.

    Первый аргумент bootm - это адрес памяти (в ОЗУ, ПЗУ или флэш-памяти), где хранится образ, за которым следуют необязательные аргументы, которые зависят от ОС.

    Linux требует, чтобы BLOB-объект дерева устройств передавался во время загрузки, и bootm ожидает, что его третий аргумент будет адресом BLOB-объекта в памяти.

    Второй аргумент bootm зависит от того, будет ли использоваться initrd исходный образ RAM-диска.

    Если ядро должно быть загружено без начального RAM-диска, второй аргумент должен быть указан как «-», в противном случае он интерпретируется как начальный адрес initrd (в RAM, ROM или флэш-памяти).

    Чтобы загрузить образ ядра Linux без образа initrd виртуального диска, можно использовать следующую команду:


    => bootm ${kernel_addr} - ${fdt_addr}

    Если необходимо использовать образ ramdisk, вы можете ввести:


    => bootm ${kernel_addr} ${ramdisk_addr} ${fdt_addr}

    Оба примера, конечно, подразумевают, что используемые переменные настроены на правильные адреса для ядра, fdt blob и initrd образа ramdisk.

      !   Внимание ! При загрузке образов, которые были загружены в ОЗУ (например, с использованием загрузки по TFTP ), вы должны быть осторожны, чтобы места, где хранились сжатые образы, не перекрывались с памятью, необходимой для загрузки несжатого ядра.

    Например, если вы загружаете образ виртуального диска в место в малой памяти, он может быть перезаписан при загрузке ядра Linux. Это приведет к неопределенным системным сбоям.