From e3c217f47dcfff0967bf48cdd9efa3e3e4f07d50 Mon Sep 17 00:00:00 2001 From: Burt P Date: Wed, 19 Jul 2017 16:49:44 -0500 Subject: device tree: try harder to find device-tree root Signed-off-by: Burt P --- modules/devices/devicetree/dt_util.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'modules') diff --git a/modules/devices/devicetree/dt_util.c b/modules/devices/devicetree/dt_util.c index dbeda3a6..845ea8da 100644 --- a/modules/devices/devicetree/dt_util.c +++ b/modules/devices/devicetree/dt_util.c @@ -192,6 +192,22 @@ void _dtr_read_aliases(dtr *); void _dtr_read_symbols(dtr *); void _dtr_map_phandles(dtr *, char *np); +const char *dtr_find_device_tree_root() { + char *candidates[] = { + "/proc/device-tree", + "/sys/firmware/devicetree/base", + /* others? */ + NULL + }; + int i = 0; + while (candidates[i] != NULL) { + if(access(candidates[i], F_OK) != -1) + return candidates[i]; + i++; + } + return "/did/not/find/device-tree"; +} + dtr *dtr_new_x(char *base_path, int fast) { dtr *dt = malloc(sizeof(dtr)); if (dt != NULL) { -- cgit v1.2.3