fdt_setprop
时间: 2023-10-06 09:05:26 浏览: 161
"fdt_setprop" 是一个函数,用于向设备树(Device Tree)中的节点添加或修改属性(property)。它需要指定要操作的节点、要添加或修改的属性名称、属性值的长度以及属性值的指针。在 Linux 内核中,fdt_setprop 函数通常与其他设备树操作函数一起使用,用于在内核启动时将硬件信息传递给内核。
相关问题
fdt_setprop(fdt,offset,"tyq",buf,ptr - buf),这个怎么理解
这是在使用Flattened Device Tree (FDT)库对设备树进行修改时的代码片段。其中,fdt表示设备树的指针,offset表示要修改的节点的偏移量,"tyq"是要添加或修改的属性的名称,buf是属性值的缓冲区指针,ptr - buf表示属性值的长度。
具体地,这行代码的作用是在设备树的某个节点上添加或修改一个名为"tyq"的属性,属性值为buf指向的缓冲区中的数据,长度为ptr - buf。
void __init early_init_fdt_scan_reserved_mem(void) { int n; u64 base, size; if (!initial_boot_params) return; /* Reserve the dtb region */ early_init_dt_reserve_memory_arch(__pa(initial_boot_params), fdt_totalsize(initial_boot_params), 0); /* Process header /memreserve/ fields */ for (n = 0; ; n++) { fdt_get_mem_rsv(initial_boot_params, n, &base, &size); if (!size) break; early_init_dt_reserve_memory_arch(base, size, 0); } of_scan_flat_dt(__fdt_scan_reserved_mem, NULL); fdt_init_reserved_mem(); }
void __init early_init_fdt_scan_reserved_mem(void)
{
int n;
u64 base, size;
// 如果没有初始引导参数,则直接返回
if (!initial_boot_params)
return;
// 保留 dtb 区域
early_init_dt_reserve_memory_arch(__pa(initial_boot_params),
fdt_totalsize(initial_boot_params),
0);
// 处理 /memreserve/ 字段
for (n = 0;; n++) {
fdt_get_mem_rsv(initial_boot_params, n, &base, &size);
if (!size)
break;
early_init_dt_reserve_memory_arch(base, size, 0);
}
// 扫描保留的内存区域
of_scan_flat_dt(__fdt_scan_reserved_mem, NULL);
// 初始化保留的内存
fdt_init_reserved_mem();
}