cmd: fdt: Map address returned from fdt get addr to sysmem
[platform/kernel/u-boot.git] / cmd / dm.c
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 <common.h>
10 #include <command.h>
11 #include <dm/root.h>
12 #include <dm/util.h>
13
14 static int do_dm_dump_driver_compat(struct cmd_tbl *cmdtp, int flag, int argc,
15                                     char * const argv[])
16 {
17         dm_dump_driver_compat();
18
19         return 0;
20 }
21
22 static int do_dm_dump_devres(struct cmd_tbl *cmdtp, int flag, int argc,
23                              char *const argv[])
24 {
25         dm_dump_devres();
26
27         return 0;
28 }
29
30 static int do_dm_dump_drivers(struct cmd_tbl *cmdtp, int flag, int argc,
31                               char *const argv[])
32 {
33         dm_dump_drivers();
34
35         return 0;
36 }
37
38 #if CONFIG_IS_ENABLED(DM_STATS)
39 static int do_dm_dump_mem(struct cmd_tbl *cmdtp, int flag, int argc,
40                           char *const argv[])
41 {
42         struct dm_stats mem;
43
44         dm_get_mem(&mem);
45         dm_dump_mem(&mem);
46
47         return 0;
48 }
49 #endif /* DM_STATS */
50
51 static int do_dm_dump_static_driver_info(struct cmd_tbl *cmdtp, int flag,
52                                          int argc, char * const argv[])
53 {
54         dm_dump_static_driver_info();
55
56         return 0;
57 }
58
59 static int do_dm_dump_tree(struct cmd_tbl *cmdtp, int flag, int argc,
60                            char *const argv[])
61 {
62         bool sort;
63
64         sort = argc > 1 && !strcmp(argv[1], "-s");
65
66         dm_dump_tree(sort);
67
68         return 0;
69 }
70
71 static int do_dm_dump_uclass(struct cmd_tbl *cmdtp, int flag, int argc,
72                              char *const argv[])
73 {
74         dm_dump_uclass();
75
76         return 0;
77 }
78
79 #if CONFIG_IS_ENABLED(DM_STATS)
80 #define DM_MEM_HELP     "dm mem           Provide a summary of memory usage\n"
81 #define DM_MEM          U_BOOT_SUBCMD_MKENT(mem, 1, 1, do_dm_dump_mem),
82 #else
83 #define DM_MEM_HELP
84 #define DM_MEM
85 #endif
86
87 #if IS_ENABLED(CONFIG_SYS_LONGHELP)
88 static char dm_help_text[] =
89         "compat        Dump list of drivers with compatibility strings\n"
90         "dm devres        Dump list of device resources for each device\n"
91         "dm drivers       Dump list of drivers with uclass and instances\n"
92         DM_MEM_HELP
93         "dm static        Dump list of drivers with static platform data\n"
94         "dm tree [-s]     Dump tree of driver model devices (-s=sort)\n"
95         "dm uclass        Dump list of instances for each uclass"
96         ;
97 #endif
98
99 U_BOOT_CMD_WITH_SUBCMDS(dm, "Driver model low level access", dm_help_text,
100         U_BOOT_SUBCMD_MKENT(compat, 1, 1, do_dm_dump_driver_compat),
101         U_BOOT_SUBCMD_MKENT(devres, 1, 1, do_dm_dump_devres),
102         U_BOOT_SUBCMD_MKENT(drivers, 1, 1, do_dm_dump_drivers),
103         DM_MEM
104         U_BOOT_SUBCMD_MKENT(static, 1, 1, do_dm_dump_static_driver_info),
105         U_BOOT_SUBCMD_MKENT(tree, 2, 1, do_dm_dump_tree),
106         U_BOOT_SUBCMD_MKENT(uclass, 1, 1, do_dm_dump_uclass));