fdt
Служебные команды FDT (плоского дерева устройств) (flattened device tree utility commands)
Help:
=> help fdt
fdt - flattened device tree utility commands
Usage:
fdt addr [-c] <addr> [<length>] - Set the [control] fdt location to <addr>
fdt apply <addr> - Apply overlay to the DT
fdt boardsetup - Do board-specific set up
fdt move <fdt> <newaddr> <length> - Copy the fdt to <addr> and make it active
fdt resize [<extrasize>] - Resize fdt to size + padding to 4k addr + some optional <extrasize> if needed
fdt print <path> [<prop>] - Recursive print starting at <path>
fdt list <path> [<prop>] - Print one level starting at <path>
fdt get value <var> <path> <prop> - Get <property> and store in <var>
fdt get name <var> <path> <index> - Get name of node <index> and store in <var>
fdt get addr <var> <path> <prop> - Get start address of <property> and store in <var>
fdt get size <var> <path> [<prop>] - Get size of [<property>] or num nodes and store in <var>
fdt set <path> <prop> [<val>] - Set <property> [to <val>]
fdt mknode <path> <node> - Create a new node after <path>
fdt rm <path> [<prop>] - Delete the node or <property>
fdt header - Display header info
fdt bootcpu <id> - Set boot cpuid
fdt memory <addr> <size> - Add/Update memory node
fdt rsvmem print - Show current mem reserves
fdt rsvmem add <addr> <size> - Add a mem reserve
fdt rsvmem delete <index> - Delete a mem reserves
fdt chosen [<start> <end>] - Add/update the /chosen branch in the tree
<start>/<end> - initrd start/end addr
NOTE: Dereference aliases by omitting the leading '/', e.g. fdt print ethernet0.
=>
fdt addr [-c] <addr> [<length>] - установить [control] местоположение fdt на адрес <addr> длиной <length>
fdt apply <addr> - применить оверлей <addr> к дереву устройств
fdt boardsetup - настройка конкретной платы
fdt move <fdt> <newaddr> <length> - скопировать fdt в <addr> и сделать его активным
fdt resize [<extrasize>] - изменить размер fdt до size + заполнение до 4k addr + некоторый дополнительный <extrasize>, если необходимо
fdt print <path> [<prop>] - рекурсивный вывод, начиная с <path>
fdt list <path> [<prop>] - вывод одного уровня, начиная с <path>
fdt get value <var> <path> <prop> - получить <property> и сохранить в <var>
fdt get name <var> <path> <index> - получить имя узла <index> и сохранить в <var>
fdt get addr <var> <path> <prop> - получить начальный адрес <property> и сохранить в <var>
fdt get size <var> <path> [<prop>] - получить размер [<property>] или количество узлов и сохранить в <var>
fdt set <path> <prop> [<val>] - установить <property> [на <val>]
fdt mknode <path> <node> - создать новый узел после <path>
fdt rm <path> [<prop>] - удалить узел или <prop>
fdt header - показать информацию заголовка
fdt bootcpu <id> - установить загрузочный cpuid
fdt memory <addr> <size> - добавить / обновить узел памяти
fdt rsvmem print - показать текущие резервы памяти
fdt rsvmem add <addr> <size> - добавить резерв памяти
fdt rsvmem delete <index> - удалить зарезервированную память
fdt selected [<start> <end>] - добавить / обновить / выбранную ветвь в дереве
<start> / <end> - начальный / конечный адрес initrd
Примечания.
1. Выполняйте разыменование псевдонимов, опуская "/" в начале, например, fdt print ethernet0.
2. fdt print без аргументов - очень длинный вывод полного дерева устройств (прервать по Ctrl-C)
Результат выполнения команды для
Orange Pi Zero2:
=> fdt header
magic: 0xd00dfeed
totalsize: 0x1f880 (129152)
off_dt_struct: 0x48
off_dt_strings: 0x1baec
off_mem_rsvmap: 0x28
version: 17
last_comp_version: 16
boot_cpuid_phys: 0x0
size_dt_strings: 0x3262
size_dt_struct: 0x1baa4
number mem_rsv: 0x1
=> fdt rsvmem print
index start size
------------------------------------------------
0 0000000048000000 0000000001000000
=> fdt list
/ {
interrupt-parent = <0x00000001>;
#address-cells = <0x00000002>;
#size-cells = <0x00000002>;
model = "sun50iw9";
compatible = "allwinner,h616", "arm,sun50iw9p1";
clocks {
};
soc@03000000 {
};
aliases {
};
chosen {
};
firmware {
};
cpus {
};
opp_l_table {
};
psci {
};
n_brom {
};
s_brom {
};
sram_ctrl {
};
sram_a1 {
};
sram_a2 {
};
prcm {
};
s_cpuscfg {
};
ion {
};
dram {
};
memory@40000000 {
};
interrupt-controller@03020000 {
};
interrupt-controller@0 {
};
intc-nmi@07010320 {
};
sunxi-sid@03006000 {
};
sunxi-sid-ng@03006000 {
};
sunxi-chipid@03006200 {
};
timer_arch {
};
pmu {
};
dramfreq {
};
uboot {
};
iommu@030f0000 {
};
gpu@0x01800000 {
};
box_start_os0 {
};
__symbols__ {
};
};