|
iPXE
|
Devicetree bus. More...
#include <stdlib.h>#include <stdio.h>#include <string.h>#include <errno.h>#include <ipxe/device.h>#include <ipxe/fdt.h>#include <ipxe/iomap.h>#include <ipxe/devtree.h>Go to the source code of this file.
Functions | |
| FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
| void * | dt_ioremap (struct dt_device *dt, unsigned int offset, unsigned int index, size_t len) |
| Map devicetree range. More... | |
| static struct dt_driver * | dt_find_driver (struct dt_device *dt, unsigned int offset) |
| Find devicetree driver. More... | |
| static int | dt_probe (struct dt_device *dt, unsigned int offset) |
| Probe devicetree device. More... | |
| static void | dt_remove (struct dt_device *dt) |
| Remove devicetree device. More... | |
| int | dt_probe_node (struct device *parent, unsigned int offset) |
| Probe devicetree node. More... | |
| void | dt_remove_node (struct device *parent) |
| Remove devicetree node. More... | |
| int | dt_probe_children (struct dt_device *parent, unsigned int offset) |
| Probe devicetree children. More... | |
| void | dt_remove_children (struct dt_device *parent) |
| Remove devicetree children. More... | |
| static int | dt_probe_all (struct root_device *rootdev) |
| Probe devicetree bus. More... | |
| static void | dt_remove_all (struct root_device *rootdev) |
| Remove devicetree bus. More... | |
Variables | |
| static struct dt_driver dt_node_driver | __dt_driver |
| Generic node driver. More... | |
| static struct root_driver | dt_root_driver |
| Devicetree bus root device driver. More... | |
| struct root_device dt_root_device | __root_device |
| Devicetree bus root device. More... | |
Devicetree bus.
Definition in file devtree.c.
| FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
Map devicetree range.
| dt | Devicetree device |
| offset | Starting node offset |
| index | Region index |
| len | Length to map, or 0 to map whole region |
| io_addr | I/O address, or NULL on error |
Definition at line 52 of file devtree.c.
References address, DBGC, fdt_parent_reg_cells(), fdt_reg_address(), fdt_reg_size(), index, ioremap(), len, dt_device::name, NULL, offset, rc, regs, size, strerror(), and sysfdt.
Referenced by cgem_probe(), dwgpio_group_probe(), dwmac_probe(), dwuart_probe(), and dwusb_probe().
Find devicetree driver.
| dt | Devicetree device |
| offset | Starting node offset |
| driver | Driver |
Definition at line 117 of file devtree.c.
References count, DBGC, DBGC2, DT_DRIVERS, fdt_strings(), for_each_table_entry, id, dt_driver::id_count, dt_driver::ids, ids, dt_device::name, dt_driver::name, offset, strcmp(), strlen(), and sysfdt.
Referenced by dt_probe().
|
static |
Probe devicetree device.
| dt | Devicetree device |
| offset | Starting node offset |
| rc | Return status code |
Definition at line 154 of file devtree.c.
References DBGC, dt_device::dev, dt_device::driver, device::driver_name, dt_find_driver(), dt_device::name, dt_driver::name, offset, dt_driver::probe, rc, and strerror().
Referenced by dt_probe_node().
|
static |
Remove devicetree device.
| dt | Devicetree device |
Definition at line 180 of file devtree.c.
References DBGC, dt_device::driver, dt_device::name, and dt_driver::remove.
Referenced by dt_probe_node(), and dt_remove_node().
| int dt_probe_node | ( | struct device * | parent, |
| unsigned int | offset | ||
| ) |
Probe devicetree node.
| parent | Parent generic device |
| offset | Starting node offset |
| rc | Return status code |
Definition at line 196 of file devtree.c.
References device_description::bus_type, BUS_TYPE_DT, device::children, desc, device::desc, dt_device::dev, dt_probe(), dt_remove(), ENOMEM, fdt_describe(), fdt_phandle(), free, INIT_LIST_HEAD, list_add_tail, list_del, device_description::location, dt_device::name, device::name, name, offset, device::parent, rc, device::siblings, snprintf(), sysfdt, and zalloc().
Referenced by dt_probe_all(), dt_probe_children(), and fdtcon_default().
| void dt_remove_node | ( | struct device * | parent | ) |
Remove devicetree node.
| parent | Parent generic device |
Definition at line 241 of file devtree.c.
References assert(), device::children, dt_device::dev, dt_remove(), free, list_del, list_last_entry, NULL, and device::siblings.
Referenced by dt_remove_all(), and dt_remove_children().
| int dt_probe_children | ( | struct dt_device * | parent, |
| unsigned int | offset | ||
| ) |
Probe devicetree children.
| parent | Parent device |
| offset | Starting node offset |
| rc | Return status code |
Definition at line 264 of file devtree.c.
References device::children, DBGC, DBGC2, fdt_descriptor::depth, desc, dt_device::dev, dt_probe_node(), dt_remove_children(), ENODEV, fdt_describe(), list_empty, dt_device::name, offset, rc, strerror(), and sysfdt.
Referenced by dwgpio_group_probe().
| void dt_remove_children | ( | struct dt_device * | parent | ) |
Remove devicetree children.
| parent | Parent device |
Definition at line 310 of file devtree.c.
References device::children, dt_device::dev, dt_remove_node(), and list_empty.
Referenced by dt_probe_children(), dwgpio_group_probe(), and dwgpio_group_remove().
|
static |
Probe devicetree bus.
| rootdev | Devicetree root device |
| rc | Return status code |
Definition at line 330 of file devtree.c.
References root_device::dev, and dt_probe_node().
|
static |
Remove devicetree bus.
| rootdev | Devicetree root device |
Definition at line 341 of file devtree.c.
References root_device::dev, and dt_remove_node().
|
static |
Generic node driver.
|
static |
Devicetree bus root device driver.
| struct root_device dt_root_device __root_device |
Devicetree bus root device.
1.8.15