Lines Matching refs:fdt
13 int fdt_add_subnode_possible(void *fdt, int parentoffset, const char *name) in fdt_add_subnode_possible() argument
17 if ((nodeoffset = fdt_add_subnode(fdt, parentoffset, name)) < 0) in fdt_add_subnode_possible()
19 fdt_open_into(fdt, fdt, fdt_totalsize(fdt) + FDT_PADDING_SIZE); in fdt_add_subnode_possible()
20 nodeoffset = fdt_add_subnode(fdt, parentoffset, name); in fdt_add_subnode_possible()
26 int fdt_add_mem_rsv_possible(void *fdt, size_t addr, size_t size) in fdt_add_mem_rsv_possible() argument
30 if (fdt_add_mem_rsv(fdt, addr, size) < 0) in fdt_add_mem_rsv_possible()
32 fdt_open_into(fdt, fdt, fdt_totalsize(fdt) + FDT_PADDING_SIZE); in fdt_add_mem_rsv_possible()
33 err = fdt_add_mem_rsv(fdt, addr, size); in fdt_add_mem_rsv_possible()
39 int fdt_setprop_uxx(void *fdt, int nodeoffset, const char *name, uint64_t val, bool is_u64) in fdt_setprop_uxx() argument
45 err = fdt_setprop_u64(fdt, nodeoffset, name, val); in fdt_setprop_uxx()
49 err = fdt_setprop_u32(fdt, nodeoffset, name, (uint32_t)val); in fdt_setprop_uxx()
56 int fdt_getprop_##std_type##sz(void *fdt, int nodeoffset, \
60 if (fdt && nodeoffset >= 0 && name && out_value) \
62 const fdt##sz##_t *ptr; \
63 if ((ptr = fdt_getprop(fdt, nodeoffset, name, lenp))) \
65 *out_value = fdt##sz##_to_cpu(*ptr); \
84 int fdt_io_addr_cells(void *fdt, int nodeoffset) in fdt_io_addr_cells() argument
87 int parentoffset = fdt_parent_offset(fdt, nodeoffset); in fdt_io_addr_cells()
89 for (; parentoffset >= 0 ; parentoffset = fdt_parent_offset(fdt, parentoffset)) in fdt_io_addr_cells()
91 const fdt32_t *cells_tmp = fdt_getprop(fdt, parentoffset, "#address-cells", NULL); in fdt_io_addr_cells()
101 cells = fdt_address_cells(fdt, nodeoffset); in fdt_io_addr_cells()
107 int fdt_io_size_cells(void *fdt, int nodeoffset) in fdt_io_size_cells() argument
110 int parentoffset = fdt_parent_offset(fdt, nodeoffset); in fdt_io_size_cells()
112 for (; parentoffset >= 0 ; parentoffset = fdt_parent_offset(fdt, parentoffset)) in fdt_io_size_cells()
114 const fdt32_t *cells_tmp = fdt_getprop(fdt, parentoffset, "#size-cells", NULL); in fdt_io_size_cells()
124 cells = fdt_size_cells(fdt, nodeoffset); in fdt_io_size_cells()
130 int fdt_install_initrd(void *fdt, char *os_name, size_t initrd_addr, size_t initrd_size) in fdt_install_initrd() argument
133 int chosen_offset = -1, root_off = fdt_path_offset(fdt, "/"); in fdt_install_initrd()
137 chosen_offset = fdt_subnode_offset(fdt, root_off, "chosen"); in fdt_install_initrd()
141 chosen_offset = fdt_add_subnode_possible(fdt, root_off, "chosen"); in fdt_install_initrd()
152 for (int i = fdt_num_mem_rsv(fdt) - 1; i >= 0; --i) in fdt_install_initrd()
154 fdt_get_mem_rsv(fdt, i, &addr, &size); in fdt_install_initrd()
158 fdt_del_mem_rsv(fdt, i); in fdt_install_initrd()
164 if (fdt_add_mem_rsv(fdt, initrd_addr, initrd_size) < 0) in fdt_install_initrd()
167 fdt_open_into(fdt, fdt, fdt_totalsize(fdt) + FDT_PADDING_SIZE); in fdt_install_initrd()
169 if (fdt_add_mem_rsv(fdt, initrd_addr, initrd_size) < 0) in fdt_install_initrd()
179 bool is_u64 = (fdt_io_addr_cells(fdt, root_off) == 2); in fdt_install_initrd()
189 fdt_setprop_uxx(fdt, chosen_offset, initrd_name, initrd_addr, is_u64); in fdt_install_initrd()
192 fdt_setprop_uxx(fdt, chosen_offset, initrd_name, initrd_addr + initrd_size, is_u64); in fdt_install_initrd()