]> git.sur5r.net Git - u-boot/blobdiff - test/dm/cmd_dm.c
nitrogen6x: config: add CONFIG_CMD_MEMTEST
[u-boot] / test / dm / cmd_dm.c
index 180661b6287e3740e8f2f152a61d4337e7c7966b..26980d209f4e8dede78d0d861f95a10ce0dd8232 100644 (file)
 #include <dm/test.h>
 #include <dm/uclass-internal.h>
 
+/**
+ * dm_display_line() - Display information about a single device
+ *
+ * Displays a single line of information with an option prefix
+ *
+ * @dev:       Device to display
+ * @buf:       Prefix to display at the start of the line
+ */
+static void dm_display_line(struct udevice *dev, char *buf)
+{
+       printf("%s- %c %s @ %08lx", buf,
+              dev->flags & DM_FLAG_ACTIVATED ? '*' : ' ',
+              dev->name, (ulong)map_to_sysmem(dev));
+       if (dev->req_seq != -1)
+               printf(", %d", dev->req_seq);
+       puts("\n");
+}
+
 static int display_succ(struct udevice *in, char *buf)
 {
        int len;
@@ -23,10 +41,7 @@ static int display_succ(struct udevice *in, char *buf)
        char local[16];
        struct udevice *pos, *n, *prev = NULL;
 
-       printf("%s- %s @ %08x", buf, in->name, map_to_sysmem(in));
-       if (in->flags & DM_FLAG_ACTIVATED)
-               puts(" - activated");
-       puts("\n");
+       dm_display_line(in, buf);
 
        if (list_empty(&in->child_head))
                return 0;
@@ -62,7 +77,7 @@ static int do_dm_dump_all(cmd_tbl_t *cmdtp, int flag, int argc,
        struct udevice *root;
 
        root = dm_root();
-       printf("ROOT %08x\n", map_to_sysmem(root));
+       printf("ROOT %08lx\n", (ulong)map_to_sysmem(root));
        return dm_dump(root);
 }
 
@@ -81,11 +96,10 @@ static int do_dm_dump_uclass(cmd_tbl_t *cmdtp, int flag, int argc,
                        continue;
 
                printf("uclass %d: %s\n", id, uc->uc_drv->name);
-               for (ret = uclass_first_device(id, &dev);
-                    dev;
-                    ret = uclass_next_device(&dev)) {
-                       printf("  %s @  %08x:\n", dev->name,
-                              map_to_sysmem(dev));
+               if (list_empty(&uc->dev_head))
+                       continue;
+               list_for_each_entry(dev, &uc->dev_head, uclass_node) {
+                       dm_display_line(dev, "");
                }
                puts("\n");
        }
@@ -134,7 +148,7 @@ static int do_dm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 U_BOOT_CMD(
        dm,     2,      1,      do_dm,
        "Driver model low level access",
-       "tree         Dump driver model tree\n"
+       "tree         Dump driver model tree ('*' = activated)\n"
        "dm uclass        Dump list of instances for each uclass"
        TEST_HELP
 );