Lines Matching refs:blob
488 int fdt_record_loadable(void *blob, u32 index, const char *name, in fdt_record_loadable() argument
494 err = fdt_check_header(blob); in fdt_record_loadable()
501 node = fdt_find_or_add_subnode(blob, 0, "fit-images"); in fdt_record_loadable()
506 node = fdt_find_or_add_subnode(blob, node, name); in fdt_record_loadable()
515 fdt_setprop_u32(blob, node, "load-addr", load_addr); in fdt_record_loadable()
517 fdt_setprop_u32(blob, node, "entry-point", entry_point); in fdt_record_loadable()
518 fdt_setprop_u32(blob, node, "size", size); in fdt_record_loadable()
520 fdt_setprop_string(blob, node, "type", type); in fdt_record_loadable()
522 fdt_setprop_string(blob, node, "os", os); in fdt_record_loadable()
534 int fdt_fixup_memory_banks(void *blob, u64 start[], u64 size[], int banks) in fdt_fixup_memory_banks() argument
547 err = fdt_check_header(blob); in fdt_fixup_memory_banks()
554 nodeoffset = fdt_find_or_add_subnode(blob, 0, "memory"); in fdt_fixup_memory_banks()
558 err = fdt_setprop(blob, nodeoffset, "device_type", "memory", in fdt_fixup_memory_banks()
569 len = fdt_pack_reg(blob, tmp, start, size, banks); in fdt_fixup_memory_banks()
571 err = fdt_setprop(blob, nodeoffset, "reg", tmp, len); in fdt_fixup_memory_banks()
580 int fdt_fixup_memory_banks(void *blob, u64 start[], u64 size[], int banks) in fdt_fixup_memory_banks() argument
586 nodeoffset = fdt_subnode_offset(blob, 0, "memory"); in fdt_fixup_memory_banks()
589 if (fdt_get_resource(blob, nodeoffset, "reg", i, &res)) in fdt_fixup_memory_banks()
604 int fdt_fixup_memory(void *blob, u64 start, u64 size) in fdt_fixup_memory() argument
606 return fdt_fixup_memory_banks(blob, &start, &size, 1); in fdt_fixup_memory()
609 int fdt_update_reserved_memory(void *blob, char *name, u64 start, u64 size) in fdt_update_reserved_memory() argument
614 nodeoffset = fdt_node_offset_by_compatible(blob, 0, name); in fdt_update_reserved_memory()
621 len = fdt_pack_reg(blob, tmp, &start, &size, 1); in fdt_update_reserved_memory()
622 err = fdt_setprop(blob, nodeoffset, "reg", tmp, len); in fdt_update_reserved_memory()
711 int fdt_shrink_to_minimum(void *blob, uint extrasize) in fdt_shrink_to_minimum() argument
718 if (!blob) in fdt_shrink_to_minimum()
721 total = fdt_num_mem_rsv(blob); in fdt_shrink_to_minimum()
723 fdt_get_mem_rsv(blob, i, &addr, &size); in fdt_shrink_to_minimum()
724 if (addr == (uintptr_t)blob) { in fdt_shrink_to_minimum()
725 fdt_del_mem_rsv(blob, i); in fdt_shrink_to_minimum()
736 actualsize = fdt_off_dt_strings(blob) + in fdt_shrink_to_minimum()
737 fdt_size_dt_strings(blob) + 5 * sizeof(struct fdt_reserve_entry); in fdt_shrink_to_minimum()
741 actualsize = ALIGN(actualsize + ((uintptr_t)blob & 0xfff), 0x1000); in fdt_shrink_to_minimum()
742 actualsize = actualsize - ((uintptr_t)blob & 0xfff); in fdt_shrink_to_minimum()
745 fdt_set_totalsize(blob, actualsize); in fdt_shrink_to_minimum()
748 ret = fdt_add_mem_rsv(blob, (uintptr_t)blob, actualsize); in fdt_shrink_to_minimum()
763 int fdt_pci_dma_ranges(void *blob, int phb_off, struct pci_controller *hose) { in fdt_pci_dma_ranges() argument
770 addrcell = fdt_getprop_u32_default(blob, "/", "#address-cells", 1); in fdt_pci_dma_ranges()
771 sizecell = fdt_getprop_u32_default(blob, "/", "#size-cells", 1); in fdt_pci_dma_ranges()
818 fdt_setprop(blob, phb_off, "dma-ranges", &dma_ranges[0], len*4); in fdt_pci_dma_ranges()
843 int fdt_del_subnodes(const void *blob, int parent_offset) in fdt_del_subnodes() argument
848 for (ndepth = 0, off = fdt_next_node(blob, parent_offset, &ndepth); in fdt_del_subnodes()
850 off = fdt_next_node(blob, off, &ndepth)) { in fdt_del_subnodes()
853 fdt_get_name(blob, off, 0), off); in fdt_del_subnodes()
854 ret = fdt_del_node((void *)blob, off); in fdt_del_subnodes()
868 int fdt_del_partitions(void *blob, int parent_offset) in fdt_del_partitions() argument
875 off = fdt_next_node(blob, parent_offset, &ndepth); in fdt_del_partitions()
877 prop = fdt_getprop(blob, off, "label", NULL); in fdt_del_partitions()
883 return fdt_del_partitions(blob, off); in fdt_del_partitions()
885 ret = fdt_del_subnodes(blob, parent_offset); in fdt_del_partitions()
896 int fdt_node_set_part_info(void *blob, int parent_offset, in fdt_node_set_part_info() argument
906 ret = fdt_del_partitions(blob, parent_offset); in fdt_node_set_part_info()
914 off = fdt_next_node(blob, parent_offset, &ndepth); in fdt_node_set_part_info()
930 ret = fdt_add_subnode(blob, parent_offset, buf); in fdt_node_set_part_info()
932 ret = fdt_increase_size(blob, 512); in fdt_node_set_part_info()
947 ret = fdt_setprop(blob, newoff, "read_only", NULL, 0); in fdt_node_set_part_info()
949 ret = fdt_increase_size(blob, 512); in fdt_node_set_part_info()
961 ret = fdt_setprop(blob, newoff, "reg", &cell, sizeof(cell)); in fdt_node_set_part_info()
963 ret = fdt_increase_size(blob, 512); in fdt_node_set_part_info()
972 ret = fdt_setprop_string(blob, newoff, "label", part->name); in fdt_node_set_part_info()
974 ret = fdt_increase_size(blob, 512); in fdt_node_set_part_info()
1007 void fdt_fixup_mtdparts(void *blob, void *node_info, int node_info_size) in fdt_fixup_mtdparts() argument
1019 noff = fdt_node_offset_by_compatible(blob, -1, ni[i].compat); in fdt_fixup_mtdparts()
1022 fdt_get_name(blob, noff, 0), in fdt_fixup_mtdparts()
1026 if (fdt_node_set_part_info(blob, noff, dev)) in fdt_fixup_mtdparts()
1031 noff = fdt_node_offset_by_compatible(blob, noff, in fdt_fixup_mtdparts()
1038 void fdt_del_node_and_alias(void *blob, const char *alias) in fdt_del_node_and_alias() argument
1040 int off = fdt_path_offset(blob, alias); in fdt_del_node_and_alias()
1045 fdt_del_node(blob, off); in fdt_del_node_and_alias()
1047 off = fdt_path_offset(blob, "/aliases"); in fdt_del_node_and_alias()
1048 fdt_delprop(blob, off, alias); in fdt_del_node_and_alias()
1103 int (*match)(const void *blob, int parentoffset);
1104 void (*count_cells)(const void *blob, int parentoffset,
1112 void fdt_support_default_count_cells(const void *blob, int parentoffset, in fdt_support_default_count_cells() argument
1118 *addrc = fdt_address_cells(blob, parentoffset); in fdt_support_default_count_cells()
1121 prop = fdt_getprop(blob, parentoffset, "#size-cells", NULL); in fdt_support_default_count_cells()
1161 static int of_bus_isa_match(const void *blob, int parentoffset) in of_bus_isa_match() argument
1165 name = fdt_get_name(blob, parentoffset, NULL); in of_bus_isa_match()
1172 static void of_bus_isa_count_cells(const void *blob, int parentoffset, in of_bus_isa_count_cells() argument
1232 static struct of_bus *of_match_bus(const void *blob, int parentoffset) in of_match_bus() argument
1240 if (!bus->match || bus->match(blob, parentoffset)) in of_match_bus()
1254 static int of_translate_one(const void *blob, int parent, struct of_bus *bus, in of_translate_one() argument
1275 ranges = fdt_getprop(blob, parent, rprop, &rlen); in of_translate_one()
1317 static u64 __of_translate_address(const void *blob, int node_offset, in __of_translate_address() argument
1327 fdt_get_name(blob, node_offset, NULL)); in __of_translate_address()
1330 parent = fdt_parent_offset(blob, node_offset); in __of_translate_address()
1333 bus = of_match_bus(blob, parent); in __of_translate_address()
1336 bus->count_cells(blob, parent, &na, &ns); in __of_translate_address()
1339 fdt_get_name(blob, node_offset, NULL)); in __of_translate_address()
1345 bus->name, na, ns, fdt_get_name(blob, parent, NULL)); in __of_translate_address()
1352 parent = fdt_parent_offset(blob, node_offset); in __of_translate_address()
1362 pbus = of_match_bus(blob, parent); in __of_translate_address()
1363 pbus->count_cells(blob, parent, &pna, &pns); in __of_translate_address()
1366 fdt_get_name(blob, node_offset, NULL)); in __of_translate_address()
1371 pbus->name, pna, pns, fdt_get_name(blob, parent, NULL)); in __of_translate_address()
1374 if (of_translate_one(blob, node_offset, bus, pbus, in __of_translate_address()
1390 u64 fdt_translate_address(const void *blob, int node_offset, in fdt_translate_address() argument
1393 return __of_translate_address(blob, node_offset, in_addr, "ranges"); in fdt_translate_address()
1405 int fdt_node_offset_by_compat_reg(void *blob, const char *compat, in fdt_node_offset_by_compat_reg() argument
1408 int len, off = fdt_node_offset_by_compatible(blob, -1, compat); in fdt_node_offset_by_compat_reg()
1410 const fdt32_t *reg = fdt_getprop(blob, off, "reg", &len); in fdt_node_offset_by_compat_reg()
1412 if (compat_off == fdt_translate_address(blob, off, reg)) in fdt_node_offset_by_compat_reg()
1415 off = fdt_node_offset_by_compatible(blob, off, compat); in fdt_node_offset_by_compat_reg()
1426 int fdt_alloc_phandle(void *blob) in fdt_alloc_phandle() argument
1431 for (offset = fdt_next_node(blob, -1, NULL); offset >= 0; in fdt_alloc_phandle()
1432 offset = fdt_next_node(blob, offset, NULL)) { in fdt_alloc_phandle()
1433 phandle = max(phandle, fdt_get_phandle(blob, offset)); in fdt_alloc_phandle()
1565 int fdt_add_edid(void *blob, const char *compat, unsigned char *edid_buf) in fdt_add_edid() argument
1570 noff = fdt_node_offset_by_compatible(blob, -1, compat); in fdt_add_edid()
1572 debug("%s: %s\n", fdt_get_name(blob, noff, 0), compat); in fdt_add_edid()
1574 ret = fdt_setprop(blob, noff, "edid", edid_buf, 128); in fdt_add_edid()
1576 ret = fdt_increase_size(blob, 512); in fdt_add_edid()
1813 int fdt_fixup_display(void *blob, const char *path, const char *display) in fdt_fixup_display() argument
1820 toff = fdt_path_offset(blob, path); in fdt_fixup_display()
1822 toff = fdt_subnode_offset(blob, toff, "display-timings"); in fdt_fixup_display()
1826 for (off = fdt_first_subnode(blob, toff); in fdt_fixup_display()
1828 off = fdt_next_subnode(blob, off)) { in fdt_fixup_display()
1829 uint32_t h = fdt_get_phandle(blob, off); in fdt_fixup_display()
1830 debug("%s:0x%x\n", fdt_get_name(blob, off, NULL), in fdt_fixup_display()
1832 if (strcasecmp(fdt_get_name(blob, off, NULL), display) == 0) in fdt_fixup_display()
1833 return fdt_setprop_u32(blob, toff, "native-mode", h); in fdt_fixup_display()