err = fdt_setprop(fdt, nodeoffset, "bootargs", str, strlen(str) + 1); if (err < 0) { printf("WARNING: could not set bootargs %s.n", fdt_strerror(err)); return err; } } return fdt_fixup_stdout(fdt, nodeoffset); } 其中board_fdt_chosen_bootargs定义在arch/arm/mach-rockchip/boa...
c.1 fdt_setprop_placeholder // 为新值在DTB中腾出位置 fdt_get_property_w // 得到老值的长度 oldlen fdt_splice_struct_ // 腾空间 fdt_splice_ // 使用memmove移动DTB数据, 移动(newlen-oldlen) fdt_set_size_dt_struct // 修改DTB头部, size_dt_struct fdt_set_off_dt_strings // 修改DTB头部...
fdt_setprop_uxx(fdt, nodeoffset,"linux,initrd-start", (uint64_t)initrd_start, is_u64);///< 在 fdt 中加入 initrd-start 信息,以便于 kernel 初始化时可以找到 initramfs.fdt_setprop_uxx(fdt, nodeoffset, "linux,initrd-end", (uint64_t)initrd_end, is_u64);boot_jump_linux(images, flag)...
c.1 fdt_setprop_placeholder // 为新值在DTB中腾出位置 fdt_get_property_w // 得到老值的长度 oldlen fdt_splice_struct_ // 腾空间 fdt_splice_ // 使用memmove移动DTB数据, 移动(newlen-oldlen) fdt_set_size_dt_struct // 修改DTB头部, size_dt_struct fdt_set_off_dt_strings // 修改DTB头部...
ret && info->require_keys) { ret = fdt_setprop_string(keydest, node, "required", info->require_keys); } ... } 签名后的文件结构 前面提到fitImage其实是dtb结构的,其实可以使用dtc命令进行转换。 dtc -I dtb -O dts test.sign.bin > test.sign.bin.its 转换后的内容如下所示: /dts-v1/;...
image_setup_libfdt fdt_root //在引导Linux之前,将数据添加到FDT的根节点中 fdt_chosen 寻找 chosen node ,如果没有这个节点则创建 env_get("bootargs"); //得到启动参数 fdt_setprop(fdt, nodeoffset, "bootargs", str, strlen(str) + 1); //把"bootargs"设置成设备树的属性 arch...
rc = fdt_setprop(blob, nodeoff, "status", status, strlen(status) + 1); @@ -1001,14 +1015,107 @@ static int low_drive_gpu_freq(void *blob) } #endif static bool check_remote_endpoint(void *blob, const char *ep1, const char *ep2) { int lookup_node; int nodeoff; nodeoff = ...
static void skomer_kyle_patch_display(void *fdt) { int node; int ret; node = fdt_path_offset(fdt, "/soc/mcde/dsi/panel"); if (node < 0) { printf("cannot find Skomer/Kyle panel node\n"); return; } if (lcdtype == SAMSUNG_SKOMER_LCD_HVA40WV1) { ret = fdt_setprop_string(...
static inline int fdt_setprop_u32(void *fdt, int nodeoffset, const char *name, uint32_t val) •作用:将属性值设置为一个 32 位整型数值,如果属性值不存在,则新建该属性 •参数: •fdt: 工作 flattened device tree •nodeoffset: 待修改节点的偏移 ...
Booting using the fdt blob at 0x81000000 Loading Device Tree to 8fff3000, end 8fffff70 ... OK Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.19.79 (joaomcosta@joaomcosta-Latitude-E7470) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 ...