"Das U-Boot" Source Tree
at master 130 lines 3.0 kB view raw
1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * Copyright (c) 2013 Google, Inc 4 * 5 * (C) Copyright 2012 6 * Marek Vasut <marex@denx.de> 7 */ 8 9#include <command.h> 10#include <dm/root.h> 11#include <dm/util.h> 12 13static int do_dm_dump_driver_compat(struct cmd_tbl *cmdtp, int flag, int argc, 14 char * const argv[]) 15{ 16 dm_dump_driver_compat(); 17 18 return 0; 19} 20 21static int do_dm_dump_devres(struct cmd_tbl *cmdtp, int flag, int argc, 22 char *const argv[]) 23{ 24 dm_dump_devres(); 25 26 return 0; 27} 28 29static int do_dm_dump_drivers(struct cmd_tbl *cmdtp, int flag, int argc, 30 char *const argv[]) 31{ 32 dm_dump_drivers(); 33 34 return 0; 35} 36 37#if CONFIG_IS_ENABLED(DM_STATS) 38static int do_dm_dump_mem(struct cmd_tbl *cmdtp, int flag, int argc, 39 char *const argv[]) 40{ 41 struct dm_stats mem; 42 43 dm_get_mem(&mem); 44 dm_dump_mem(&mem); 45 46 return 0; 47} 48#endif /* DM_STATS */ 49 50static int do_dm_dump_static_driver_info(struct cmd_tbl *cmdtp, int flag, 51 int argc, char * const argv[]) 52{ 53 dm_dump_static_driver_info(); 54 55 return 0; 56} 57 58static int do_dm_dump_tree(struct cmd_tbl *cmdtp, int flag, int argc, 59 char *const argv[]) 60{ 61 bool extended = false, sort = false; 62 char *device = NULL; 63 64 for (; argc > 1; argc--, argv++) { 65 if (argv[1][0] != '-') 66 break; 67 68 if (!strcmp(argv[1], "-e")) { 69 extended = true; 70 } else if (!strcmp(argv[1], "-s")) { 71 sort = true; 72 } else { 73 printf("Unknown parameter: %s\n", argv[1]); 74 return 0; 75 } 76 } 77 if (argc > 1) 78 device = argv[1]; 79 80 dm_dump_tree(device, extended, sort); 81 82 return 0; 83} 84 85static int do_dm_dump_uclass(struct cmd_tbl *cmdtp, int flag, int argc, 86 char *const argv[]) 87{ 88 bool extended = false; 89 char *uclass = NULL; 90 91 if (argc > 1) { 92 if (!strcmp(argv[1], "-e")) { 93 extended = true; 94 argc--; 95 argv++; 96 } 97 if (argc > 1) 98 uclass = argv[1]; 99 } 100 101 dm_dump_uclass(uclass, extended); 102 103 return 0; 104} 105 106#if CONFIG_IS_ENABLED(DM_STATS) 107#define DM_MEM_HELP "dm mem Provide a summary of memory usage\n" 108#define DM_MEM U_BOOT_SUBCMD_MKENT(mem, 1, 1, do_dm_dump_mem), 109#else 110#define DM_MEM_HELP 111#define DM_MEM 112#endif 113 114U_BOOT_LONGHELP(dm, 115 "compat Dump list of drivers with compatibility strings\n" 116 "dm devres Dump list of device resources for each device\n" 117 "dm drivers Dump list of drivers with uclass and instances\n" 118 DM_MEM_HELP 119 "dm static Dump list of drivers with static platform data\n" 120 "dm tree [-s][-e][name] Dump tree of driver model devices (-s=sort)\n" 121 "dm uclass [-e][name] Dump list of instances for each uclass"); 122 123U_BOOT_CMD_WITH_SUBCMDS(dm, "Driver model low level access", dm_help_text, 124 U_BOOT_SUBCMD_MKENT(compat, 1, 1, do_dm_dump_driver_compat), 125 U_BOOT_SUBCMD_MKENT(devres, 1, 1, do_dm_dump_devres), 126 U_BOOT_SUBCMD_MKENT(drivers, 1, 1, do_dm_dump_drivers), 127 DM_MEM 128 U_BOOT_SUBCMD_MKENT(static, 1, 1, do_dm_dump_static_driver_info), 129 U_BOOT_SUBCMD_MKENT(tree, 4, 1, do_dm_dump_tree), 130 U_BOOT_SUBCMD_MKENT(uclass, 3, 1, do_dm_dump_uclass));