Дерево устройств Для редактирования дерева устройств (Flattened Device Tree) в оболочке U-Boot используется команда fdt с соответствующими параметрами: => help fdt fdt - flattened device tree utility commands Usage: In case of stringlist property, use optional <index> to select string within the stringlist. Default is 0. get - get header member <member> and store it in <var> <start>/<size> - initrd start addr/size => ВНИМАНИЕ ! После старта загрузчика из SPI Flash дерево устройств (блоб DTB), которое хранится в в его теле, автоматически в память не загружается, поэтому требуется его ручная загрузка с помощью команд U-Boot. В этом легко убедиться, попытавшись выполнить любую команду FDT, например: => fdt print No FDT memory address configured. Please configure the FDT address via "fdt addr " command. Aborting! => Читаем значение переменной fdt_addr_r: => env print fdt_addr_r fdt_addr_r=0x4FA00000 => И пытаемся передать значение этой переменной в FDT => fdt addr 0x4FA00000 libfdt fdt_check_header(): FDT_ERR_BADMAGIC Читаем область памяти с этого адреса и убеждаемся, что она чистая, т.е. блоба дерева устройств в памяти нет => md 0x4FA00000 4fa00000: ffffffff ffffffff ffffffff ffffffff ................ 4fa00010: ffffffff ffffffff ffffffff ffffffff ................ 4fa00020: ffffffff ffffffff ffffffff ffffffff ................ 4fa00030: ffffffff ffffffff ffffffff ffffffff ................ 4fa00040: ffffffff ffffffff ffffffff ffffffff ................ 4fa00050: ffffffff ffffffff ffffffff ffffffff ................ 4fa00060: ffffffff ffffffff ffffffff ffffffff ................ 4fa00070: ffffffff ffffffff ffffffff ffffffff ................ Поэтому копируем блоб дерева устройств из SPI Flash в RAM: => sf probe => sf read 0xb2c08 0x56a5 Теперь блоб FDT загружен в оперативную память и можно пользоваться командами FDT, например, выполнив команду fdt print и сохранив терминальный вывод в лог-файл, получаем полный текст дерева устройств: Текст дерева устройств |