diff options
Diffstat (limited to 'commands/oftree.c')
-rw-r--r-- | commands/oftree.c | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/commands/oftree.c b/commands/oftree.c index 77afbc5a19..7404db56b1 100644 --- a/commands/oftree.c +++ b/commands/oftree.c @@ -21,9 +21,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <common.h> @@ -48,7 +45,8 @@ static int do_oftree(int argc, char *argv[]) char *file = NULL; const char *node = "/"; int dump = 0; - int parse = 0; + int probe = 0; + int ret; while ((opt = getopt(argc, argv, "dpfn:")) > 0) { switch (opt) { @@ -56,7 +54,12 @@ static int do_oftree(int argc, char *argv[]) dump = 1; break; case 'p': - parse = 1; + if (IS_ENABLED(CONFIG_CMD_OFTREE_PROBE)) { + probe = 1; + } else { + printf("oftree device probe support disabled\n"); + return COMMAND_ERROR_USAGE; + } break; case 'f': free(barebox_fdt); @@ -71,7 +74,7 @@ static int do_oftree(int argc, char *argv[]) if (optind < argc) file = argv[optind]; - if (!dump && !parse) + if (!dump && !probe) return COMMAND_ERROR_USAGE; if (dump) { @@ -95,7 +98,7 @@ static int do_oftree(int argc, char *argv[]) return 0; } - if (parse) { + if (probe) { if (!file) return COMMAND_ERROR_USAGE; @@ -105,17 +108,13 @@ static int do_oftree(int argc, char *argv[]) return 1; } - fdt = xrealloc(fdt, size + 0x8000); - fdt_open_into(fdt, fdt, size + 0x8000); - if (!fdt) { - printf("unable to read %s\n", file); + ret = of_parse_dtb(fdt); + if (ret) { + printf("parse oftree: %s\n", strerror(-ret)); return 1; } - if (barebox_fdt) - free(barebox_fdt); - - barebox_fdt = fdt; + of_probe(); } return 0; @@ -123,7 +122,7 @@ static int do_oftree(int argc, char *argv[]) BAREBOX_CMD_HELP_START(oftree) BAREBOX_CMD_HELP_USAGE("oftree [OPTIONS]\n") -BAREBOX_CMD_HELP_OPT ("-p <FILE>", "parse and store oftree from <file>\n") +BAREBOX_CMD_HELP_OPT ("-p <FILE>", "probe devices in oftree from <file>\n") BAREBOX_CMD_HELP_OPT ("-d [FILE]", "dump oftree from [FILE] or the parsed tree if no file is given\n") BAREBOX_CMD_HELP_OPT ("-f", "free stored oftree\n") BAREBOX_CMD_HELP_END |