void qemu_fdt_setprop(void *fdt, const char *nodepath, const char *name, const void *val, int len) fdt:指向设备树内存区域的指针。 nodepath:设备树中节点的路径。 name:要设置的属性名。 val:属性值的指针。 len:属性值的长度。 函数实现: 调用fdt_setprop
1.3.3 fdt_create 在versal_virt_init函数中的众多调用接口中以fdt_create为例来做简单介绍: qemu_fdt_alloc_phandle用于依次去获取对应的device的配置信息,其起始地址为machine->phandle_start qemu_fdt_setprop_cell用于解析对应的device node的属性信息 qemu_fdt_setprop_string用于解析设备树的信息,作为对当前machi...
static void fdt_add_uart_node(LoongArchVirtMachineState *lvms, uint32_t *pch_pic_phandle) { char *nodename; hwaddr base = VIRT_UART_BASE; // 串口来自ls7a桥片 hwaddr size = VIRT_UART_SIZE; MachineState *ms = MACHINE(lvms); nodename = g_strdup_printf("/serial@%" PRIx64, base);...
qemu_fdt_setprop_string(fdt, "/psci", "compatible", "arm,psci"); cpu_suspend_fn = QEMU_PSCI_0_1_FN_CPU_SUSPEND; cpu_off_fn = QEMU_PSCI_0_1_FN_CPU_OFF; cpu_on_fn = QEMU_PSCI_0_1_FN_CPU_ON; migrate_fn = QEMU_PSCI_0_1_FN_MIGRATE; ...
GIC_FDT_IRQ_FLAGS_LEVEL_HI); qemu_fdt_setprop(ms->fdt, nodename, "interrupt-names", irq_names, sizeof(irq_names)); qemu_fdt_setprop_cell(ms->fdt, nodename, "clocks", vms->clock_phandle); qemu_fdt_setprop_string(ms->fdt, nodename, "clock-names", "apb_pclk"); g_free(nodename...
int qemu_fdt_setprop_string(void *fdt, const char *node_path, const char *property, const char *string) { int r; @@ -183,8 +183,8 @@ int qemu_devtree_setprop_string(void *fdt, const char *node_path, return r; } const void *qemu_devtree_getprop(void *fdt, const char *node...
int qemu_fdt_setprop(void *fdt, const char *node_path, const char *property, const void *val, int size) { int r; r = fdt_setprop(fdt, findnode_nofail(fdt, node_path), property, val, size); if (r < 0) { error_report("%s: Couldn't set %s/%s: %s", __func__,...
{ int fdt_size; void *fdt = NULL; int r; if (dtb_filename) { fdt = load_device_tree(dtb_filename, &fdt_size); } if (!fdt) { return 0; } if (kernel_cmdline) { r = qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", kernel_cmdline); if (r < 0) { fprintf(stde...
setprop_cell(ms->fdt,nodename,"clocks",vms->clock_phandle);qemu_fdt_setprop_string(ms->fdt,...
ENU-Boot 的全称是 Universal Boot Loader,其作用就是引导系统。对于我们熟悉的 PC,上电后,通过 ...