Lines Matching refs:dtb

39 static void read_cpu_topology_from_dt(void *dtb)  in read_cpu_topology_from_dt()  argument
55 node = fdt_path_offset(dtb, "/cpus/topology"); in read_cpu_topology_from_dt()
58 fdt_read_uint32_default(dtb, node, "sockets", 0); in read_cpu_topology_from_dt()
60 fdt_read_uint32_default(dtb, node, "clusters", 0); in read_cpu_topology_from_dt()
62 fdt_read_uint32_default(dtb, node, "cores", 0); in read_cpu_topology_from_dt()
64 fdt_read_uint32_default(dtb, node, "threads", 0); in read_cpu_topology_from_dt()
74 static void read_cpuinfo_from_dt(void *dtb) in read_cpuinfo_from_dt() argument
100 node = fdt_path_offset(dtb, "/cpus"); in read_cpuinfo_from_dt()
110 node = fdt_path_offset(dtb, "/cpus/cpu@0"); in read_cpuinfo_from_dt()
113 if (fdt_getprop(dtb, node, "reg", NULL)) { in read_cpuinfo_from_dt()
114 fdt_get_reg_props_by_index(dtb, node, 0, &mpidr, NULL); in read_cpuinfo_from_dt()
122 fdt_read_uint32_default(dtb, node, "numa-node-id", 0); in read_cpuinfo_from_dt()
130 node = fdt_next_subnode(dtb, prev); in read_cpuinfo_from_dt()
136 read_cpu_topology_from_dt(dtb); in read_cpuinfo_from_dt()
139 static void read_meminfo_from_dt(void *dtb) in read_meminfo_from_dt() argument
166 node = fdt_next_node(dtb, prev, NULL); in read_meminfo_from_dt()
171 type = fdt_getprop(dtb, node, "device_type", &len); in read_meminfo_from_dt()
174 fdt_read_uint32_default(dtb, node, "numa-node-id", 0); in read_meminfo_from_dt()
180 prop = fdt_getprop(dtb, node, "reg", &len); in read_meminfo_from_dt()
208 static void read_platform_config_from_dt(void *dtb) in read_platform_config_from_dt() argument
227 node = fdt_path_offset(dtb, "/intc"); in read_platform_config_from_dt()
232 data = fdt_getprop(dtb, node, "reg", NULL); in read_platform_config_from_dt()
237 err = fdt_get_reg_props_by_index(dtb, node, 0, &gicd_base, NULL); in read_platform_config_from_dt()
244 err = fdt_get_reg_props_by_index(dtb, node, 1, &gicr_base, NULL); in read_platform_config_from_dt()
253 node = fdt_path_offset(dtb, "/intc/its"); in read_platform_config_from_dt()
258 err = fdt_get_reg_props_by_index(dtb, node, 0, &gic_its_addr, NULL); in read_platform_config_from_dt()
266 static void read_platform_version(void *dtb) in read_platform_version() argument
270 node = fdt_path_offset(dtb, "/"); in read_platform_version()
273 fdt_read_uint32_default(dtb, node, "machine-version-major", 0); in read_platform_version()
275 fdt_read_uint32_default(dtb, node, "machine-version-minor", 0); in read_platform_version()
280 static int set_system_memory_base(void *dtb, uintptr_t new_base) in set_system_memory_base() argument
282 (void)dtb; in set_system_memory_base()
288 static int set_system_memory_base(void *dtb, uintptr_t new_base) in set_system_memory_base() argument
314 node = fdt_next_node(dtb, prev, NULL); in set_system_memory_base()
319 type = fdt_getprop(dtb, node, "device_type", &len); in set_system_memory_base()
327 node_id = fdt_read_uint32_default(dtb, node, in set_system_memory_base()
340 prop = fdt_getprop(dtb, node, "reg", &len); in set_system_memory_base()
349 ret = fdt_get_reg_props_by_index(dtb, node, 0, &cur_base, &cur_size); in set_system_memory_base()
385 ret = fdt_setprop(dtb, node, "reg", new, len); in set_system_memory_base()
390 return fdt_pack(dtb); in set_system_memory_base()
398 void *dtb = plat_qemu_dt_runtime_address(); in sbsa_platform_init() local
401 err = fdt_open_into(dtb, dtb, PLAT_QEMU_DT_MAX_SIZE); in sbsa_platform_init()
403 ERROR("Invalid Device Tree at %p: error %d\n", dtb, err); in sbsa_platform_init()
407 err = fdt_check_header(dtb); in sbsa_platform_init()
413 read_platform_version(dtb); in sbsa_platform_init()
416 if (set_system_memory_base(dtb, NS_DRAM0_BASE)) { in sbsa_platform_init()
421 read_platform_config_from_dt(dtb); in sbsa_platform_init()
422 read_cpuinfo_from_dt(dtb); in sbsa_platform_init()
423 read_meminfo_from_dt(dtb); in sbsa_platform_init()