]> git.ipfire.org Git - thirdparty/u-boot.git/blame - cmd/dm.c
ram: k3-ddrss: Handle error properly in lpddr4_start
[thirdparty/u-boot.git] / cmd / dm.c
CommitLineData
83d290c5 1// SPDX-License-Identifier: GPL-2.0+
06811959
SG
2/*
3 * Copyright (c) 2013 Google, Inc
4 *
5 * (C) Copyright 2012
6 * Marek Vasut <marex@denx.de>
06811959
SG
7 */
8
cbb2df20 9#include <command.h>
2cb4ddb9 10#include <dm/root.h>
304fbef1 11#include <dm/util.h>
a56642c7 12
dee2f5ae
SG
13static int do_dm_dump_driver_compat(struct cmd_tbl *cmdtp, int flag, int argc,
14 char * const argv[])
06811959 15{
dee2f5ae 16 dm_dump_driver_compat();
06811959
SG
17
18 return 0;
19}
20
09140113
SG
21static int do_dm_dump_devres(struct cmd_tbl *cmdtp, int flag, int argc,
22 char *const argv[])
40b6f2d0
MY
23{
24 dm_dump_devres();
25
26 return 0;
27}
28
09140113
SG
29static int do_dm_dump_drivers(struct cmd_tbl *cmdtp, int flag, int argc,
30 char *const argv[])
7b9d60fc
SA
31{
32 dm_dump_drivers();
33
34 return 0;
35}
36
2cb4ddb9
SG
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
dee2f5ae
SG
50static int do_dm_dump_static_driver_info(struct cmd_tbl *cmdtp, int flag,
51 int argc, char * const argv[])
2e488368 52{
dee2f5ae 53 dm_dump_static_driver_info();
2e488368
NF
54
55 return 0;
56}
57
dee2f5ae
SG
58static int do_dm_dump_tree(struct cmd_tbl *cmdtp, int flag, int argc,
59 char *const argv[])
2e488368 60{
36e45f69
AT
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);
dee2f5ae
SG
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{
36e45f69
AT
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);
2e488368
NF
102
103 return 0;
104}
105
2cb4ddb9
SG
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
3616218b 114U_BOOT_LONGHELP(dm,
dee2f5ae 115 "compat Dump list of drivers with compatibility strings\n"
7b9d60fc 116 "dm devres Dump list of device resources for each device\n"
2e488368 117 "dm drivers Dump list of drivers with uclass and instances\n"
2cb4ddb9 118 DM_MEM_HELP
dee2f5ae 119 "dm static Dump list of drivers with static platform data\n"
36e45f69 120 "dm tree [-s][-e][name] Dump tree of driver model devices (-s=sort)\n"
3616218b 121 "dm uclass [-e][name] Dump list of instances for each uclass");
7f0836a1
OP
122
123U_BOOT_CMD_WITH_SUBCMDS(dm, "Driver model low level access", dm_help_text,
dee2f5ae 124 U_BOOT_SUBCMD_MKENT(compat, 1, 1, do_dm_dump_driver_compat),
7f0836a1
OP
125 U_BOOT_SUBCMD_MKENT(devres, 1, 1, do_dm_dump_devres),
126 U_BOOT_SUBCMD_MKENT(drivers, 1, 1, do_dm_dump_drivers),
2cb4ddb9 127 DM_MEM
dee2f5ae 128 U_BOOT_SUBCMD_MKENT(static, 1, 1, do_dm_dump_static_driver_info),
36e45f69
AT
129 U_BOOT_SUBCMD_MKENT(tree, 4, 1, do_dm_dump_tree),
130 U_BOOT_SUBCMD_MKENT(uclass, 3, 1, do_dm_dump_uclass));