mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-25 01:58:13 +01:00 
			
		
		
		
	Currently uclass index is shown in DM tree dump which ignores alias sequence numbering. The result could be confusing since these 2 numbers could be different. Show device sequence number instead as it's more meaningful. Also update documentation to use sequence number. Signed-off-by: Zixun LI <admin@hifiphile.com> Reviewed-by: Simon Glass <sjg@chromium.org>
		
			
				
	
	
		
			519 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			519 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. SPDX-License-Identifier: GPL-2.0+:
 | |
| 
 | |
| .. index::
 | |
|    single: dm (command)
 | |
| 
 | |
| dm command
 | |
| ==========
 | |
| 
 | |
| Synopsis
 | |
| --------
 | |
| 
 | |
| ::
 | |
| 
 | |
|     dm compat
 | |
|     dm devres
 | |
|     dm drivers
 | |
|     dm static
 | |
|     dm tree [-s][-e] [uclass name]
 | |
|     dm uclass [-e] [udevice name]
 | |
| 
 | |
| Description
 | |
| -----------
 | |
| 
 | |
| The *dm* command allows viewing information about driver model, including the
 | |
| tree of devices and list of available uclasses.
 | |
| 
 | |
| 
 | |
| dm compat
 | |
| ~~~~~~~~~
 | |
| 
 | |
| This shows the compatible strings associated with each driver. Often there
 | |
| is only one, but multiple strings are shown on their own line. These strings
 | |
| can be looked up in the device tree files for each board, to see which driver is
 | |
| used for each node.
 | |
| 
 | |
| dm devres
 | |
| ~~~~~~~~~
 | |
| 
 | |
| This shows a list of a `devres` (device resource) records for a device. Some
 | |
| drivers use the devres API to allocate memory, so that it can be freed
 | |
| automatically (without any code needed in the driver's remove() method) when the
 | |
| device is removed.
 | |
| 
 | |
| This feature is controlled by CONFIG_DEVRES so no useful output is obtained if
 | |
| this option is disabled.
 | |
| 
 | |
| dm drivers
 | |
| ~~~~~~~~~~
 | |
| 
 | |
| This shows all the available drivers, their uclass and a list of devices that
 | |
| use that driver, each on its own line. Drivers with no devices are shown with
 | |
| `<none>` as the driver name.
 | |
| 
 | |
| 
 | |
| dm mem
 | |
| ~~~~~~
 | |
| 
 | |
| This subcommand is really just for debugging and exploration. It can be enabled
 | |
| with the `CONFIG_DM_STATS` option.
 | |
| 
 | |
| All output is in hex except that in brackets which is decimal.
 | |
| 
 | |
| The output consists of a header shows the size of the main device model
 | |
| structures (struct udevice, struct driver, struct uclass and struct uc_driver)
 | |
| and the count and memory used by each (number of devices, memory used by
 | |
| devices, memory used by device names, number of uclasses, memory used by
 | |
| uclasses).
 | |
| 
 | |
| After that is a table of information about each type of data that can be
 | |
| attached to a device, showing the number that have non-null data for that type,
 | |
| the total size of all that data, the amount of memory used in total, the
 | |
| amount that would be used if this type uses tags instead and the amount that
 | |
| would be thus saved.
 | |
| 
 | |
| The `driver_data` line shows the number of devices which have non-NULL driver
 | |
| data.
 | |
| 
 | |
| The `tags` line shows the number of tags and the memory used by those.
 | |
| 
 | |
| At the bottom is an indication of the total memory usage obtained by undertaking
 | |
| various changes, none of which is currently implemented in U-Boot:
 | |
| 
 | |
| With tags
 | |
|     Using tags instead of all attached types
 | |
| 
 | |
| Singly linked
 | |
|     Using a singly linked list
 | |
| 
 | |
| driver index
 | |
|     Using a driver index instead of a pointer
 | |
| 
 | |
| uclass index
 | |
|     Using a uclass index instead of a pointer
 | |
| 
 | |
| Drop device name
 | |
|     Using empty device names
 | |
| 
 | |
| 
 | |
| dm static
 | |
| ~~~~~~~~~
 | |
| 
 | |
| This shows devices bound by platform data, i.e. not from the device tree. There
 | |
| are normally none of these, but some boards may use static devices for space
 | |
| reasons.
 | |
| 
 | |
| 
 | |
| dm tree
 | |
| ~~~~~~~
 | |
| 
 | |
| This shows the full tree of devices including the following fields:
 | |
| 
 | |
| uclass
 | |
|     Shows the name of the uclass for the device
 | |
| 
 | |
| Seq
 | |
|     Shows the sequence number of the device, within the uclass.
 | |
| 
 | |
| Probed
 | |
|     Shows `+` if the device is active
 | |
| 
 | |
| Driver
 | |
|     Shows the name of the driver that this device uses
 | |
| 
 | |
| Name
 | |
|     Shows the device name as well as the tree structure, since child devices are
 | |
|     shown attached to their parent.
 | |
| 
 | |
| If -s is given, the top-level devices (those which are children of the root
 | |
| device) are shown sorted in order of uclass ID, so it is easier to find a
 | |
| particular device type.
 | |
| 
 | |
| If -e is given, forward-matching against existing devices is
 | |
| made and only the matched devices are shown.
 | |
| 
 | |
| If a device name is given, forward-matching against existing devices is
 | |
| made and only the matched devices are shown.
 | |
| 
 | |
| dm uclass
 | |
| ~~~~~~~~~
 | |
| 
 | |
| This shows each uclass along with a list of devices in that uclass. The uclass
 | |
| ID is shown (e.g. uclass 7) and its name.
 | |
| 
 | |
| For each device, the format is::
 | |
| 
 | |
|     n    name @ a, seq s
 | |
| 
 | |
| where `n` is the index within the uclass, `a` is the address of the device in
 | |
| memory and `s` is the sequence number of the device.
 | |
| 
 | |
| If -e is given, forward-matching against existing uclasses is
 | |
| made and only the matched uclasses are shown.
 | |
| 
 | |
| If no uclass name is given, all the uclasses are shown.
 | |
| 
 | |
| 
 | |
| Examples
 | |
| --------
 | |
| 
 | |
| dm compat
 | |
| ~~~~~~~~~
 | |
| 
 | |
| This example shows an abridged version of the sandbox output::
 | |
| 
 | |
|     => dm compat
 | |
|     Driver                Compatible
 | |
|     --------------------------------
 | |
|     act8846_reg
 | |
|     sandbox_adder         sandbox,adder
 | |
|     axi_sandbox_bus       sandbox,axi
 | |
|     blk_partition
 | |
|     bootcount-rtc         u-boot,bootcount-rtc
 | |
|     ...
 | |
|     rockchip_rk805        rockchip,rk805
 | |
|                           rockchip,rk808
 | |
|                           rockchip,rk809
 | |
|                           rockchip,rk816
 | |
|                           rockchip,rk817
 | |
|                           rockchip,rk818
 | |
|     root_driver
 | |
|     rtc-rv8803            microcrystal,rv8803
 | |
|                           epson,rx8803
 | |
|                           epson,rx8900
 | |
|     ...
 | |
|     wdt_gpio              linux,wdt-gpio
 | |
|     wdt_sandbox           sandbox,wdt
 | |
| 
 | |
| 
 | |
| dm devres
 | |
| ~~~~~~~~~
 | |
| 
 | |
| This example shows an abridged version of the sandbox test output (running
 | |
| U-Boot with the -T flag)::
 | |
| 
 | |
|     => dm devres
 | |
|     - root_driver
 | |
|     - demo_shape_drv
 | |
|     - demo_simple_drv
 | |
|     - demo_shape_drv
 | |
|     ...
 | |
|     - h-test
 | |
|     - devres-test
 | |
|         00000000130194e0 (100 byte) devm_kmalloc_release  BIND
 | |
|     - another-test
 | |
|     ...
 | |
|     - syscon@3
 | |
|     - a-mux-controller
 | |
|         0000000013025e60 (96 byte) devm_kmalloc_release  PROBE
 | |
|         0000000013025f00 (24 byte) devm_kmalloc_release  PROBE
 | |
|         0000000013026010 (24 byte) devm_kmalloc_release  PROBE
 | |
|         0000000013026070 (24 byte) devm_kmalloc_release  PROBE
 | |
|         00000000130260d0 (24 byte) devm_kmalloc_release  PROBE
 | |
|     - syscon@3
 | |
|     - a-mux-controller
 | |
|         0000000013026150 (96 byte) devm_kmalloc_release  PROBE
 | |
|         00000000130261f0 (24 byte) devm_kmalloc_release  PROBE
 | |
|         0000000013026300 (24 byte) devm_kmalloc_release  PROBE
 | |
|         0000000013026360 (24 byte) devm_kmalloc_release  PROBE
 | |
|         00000000130263c0 (24 byte) devm_kmalloc_release  PROBE
 | |
|     - emul-mux-controller
 | |
|         0000000013025fa0 (32 byte) devm_kmalloc_release  PROBE
 | |
|     - testfdtm0
 | |
|     - testfdtm1
 | |
|     ...
 | |
|     - pinmux_spi0_pins
 | |
|     - pinmux_uart0_pins
 | |
|     - pinctrl-single-bits
 | |
|         0000000013229180 (320 byte) devm_kmalloc_release  PROBE
 | |
|         0000000013229300 (40 byte) devm_kmalloc_release  PROBE
 | |
|         0000000013229370 (160 byte) devm_kmalloc_release  PROBE
 | |
|         000000001322c190 (40 byte) devm_kmalloc_release  PROBE
 | |
|         000000001322c200 (32 byte) devm_kmalloc_release  PROBE
 | |
|     - pinmux_i2c0_pins
 | |
|     ...
 | |
|     - reg@0
 | |
|     - reg@1
 | |
| 
 | |
| 
 | |
| dm drivers
 | |
| ~~~~~~~~~~
 | |
| 
 | |
| This example shows an abridged version of the sandbox output::
 | |
| 
 | |
|     => dm drivers
 | |
|     Driver                    uid uclass               Devices
 | |
|     ----------------------------------------------------------
 | |
|     act8846_reg               087 regulator            <none>
 | |
|     sandbox_adder             021 axi                  adder
 | |
|                                                     adder
 | |
|     axi_sandbox_bus           021 axi                  axi@0
 | |
|     ...
 | |
|     da7219                    061 misc                 <none>
 | |
|     demo_shape_drv            001 demo                 demo_shape_drv
 | |
|                                                     demo_shape_drv
 | |
|                                                     demo_shape_drv
 | |
|     demo_simple_drv           001 demo                 demo_simple_drv
 | |
|                                                     demo_simple_drv
 | |
|     testfdt_drv               003 testfdt              a-test
 | |
|                                                     b-test
 | |
|                                                     d-test
 | |
|                                                     e-test
 | |
|                                                     f-test
 | |
|                                                     g-test
 | |
|                                                     another-test
 | |
|                                                     chosen-test
 | |
|     testbus_drv               005 testbus              some-bus
 | |
|                                                     mmio-bus@0
 | |
|                                                     mmio-bus@1
 | |
|     dsa-port                  039 ethernet             lan0
 | |
|                                                     lan1
 | |
|     dsa_sandbox               035 dsa                  dsa-test
 | |
|     eep_sandbox               121 w1_eeprom            <none>
 | |
|     ...
 | |
|     pfuze100_regulator        087 regulator            <none>
 | |
|     phy_sandbox               077 phy                  bind-test-child1
 | |
|                                                     gen_phy@0
 | |
|                                                     gen_phy@1
 | |
|                                                     gen_phy@2
 | |
|     pinconfig                 078 pinconfig            gpios
 | |
|                                                     gpio0
 | |
|                                                     gpio1
 | |
|                                                     gpio2
 | |
|                                                     gpio3
 | |
|                                                     i2c
 | |
|                                                     groups
 | |
|                                                     pins
 | |
|                                                     i2s
 | |
|                                                     spi
 | |
|                                                     cs
 | |
|                                                     pinmux_pwm_pins
 | |
|                                                     pinmux_spi0_pins
 | |
|                                                     pinmux_uart0_pins
 | |
|                                                     pinmux_i2c0_pins
 | |
|                                                     pinmux_lcd_pins
 | |
|     pmc_sandbox               017 power-mgr            pci@1e,0
 | |
|     act8846 pmic              080 pmic                 <none>
 | |
|     max77686_pmic             080 pmic                 <none>
 | |
|     mc34708_pmic              080 pmic                 pmic@41
 | |
|     ...
 | |
|     wdt_gpio                  122 watchdog             gpio-wdt
 | |
|     wdt_sandbox               122 watchdog             wdt@0
 | |
|     =>
 | |
| 
 | |
| 
 | |
| dm mem
 | |
| ~~~~~~
 | |
| 
 | |
| This example shows the sandbox output::
 | |
| 
 | |
|     > dm mem
 | |
|     Struct sizes: udevice b0, driver 80, uclass 30, uc_driver 78
 | |
|     Memory: device fe:aea0, device names a16, uclass 5e:11a0
 | |
| 
 | |
|     Attached type    Count   Size    Cur   Tags   Save
 | |
|     ---------------  -----  -----  -----  -----  -----
 | |
|     plat                45    a8f   aea0   a7c4    6dc (1756)
 | |
|     parent_plat         1a    3b8   aea0   a718    788 (1928)
 | |
|     uclass_plat         3d    6b4   aea0   a7a4    6fc (1788)
 | |
|     priv                8a   68f3   aea0   a8d8    5c8 (1480)
 | |
|     parent_priv          8   38a0   aea0   a6d0    7d0 (2000)
 | |
|     uclass_priv         4e   14a6   aea0   a7e8    6b8 (1720)
 | |
|     driver_data          f      0   aea0   a6ec    7b4 (1972)
 | |
|     uclass               6     20
 | |
|     Attached total     191   cb54                  3164 (12644)
 | |
|     tags                 0      0
 | |
| 
 | |
|     Total size: 18b94 (101268)
 | |
| 
 | |
|     With tags:       15a30 (88624)
 | |
|     - singly-linked: 14260 (82528)
 | |
|     - driver index:  13b6e (80750)
 | |
|     - uclass index:  1347c (78972)
 | |
|     Drop device name (not SRAM): a16 (2582)
 | |
|     =>
 | |
| 
 | |
| 
 | |
| dm static
 | |
| ~~~~~~~~~
 | |
| 
 | |
| This example shows the sandbox output::
 | |
| 
 | |
|     => dm static
 | |
|     Driver                    Address
 | |
|     ---------------------------------
 | |
|     demo_shape_drv            0000562edab8dca0
 | |
|     demo_simple_drv           0000562edab8dca0
 | |
|     demo_shape_drv            0000562edab8dc90
 | |
|     demo_simple_drv           0000562edab8dc80
 | |
|     demo_shape_drv            0000562edab8dc80
 | |
|     test_drv                  0000562edaae8840
 | |
|     test_drv                  0000562edaae8848
 | |
|     test_drv                  0000562edaae8850
 | |
|     sandbox_gpio              0000000000000000
 | |
|     mod_exp_sw                0000000000000000
 | |
|     sandbox_test_proc         0000562edabb5330
 | |
|     qfw_sandbox               0000000000000000
 | |
|     sandbox_timer             0000000000000000
 | |
|     sandbox_serial            0000562edaa8ed00
 | |
|     sysreset_sandbox          0000000000000000
 | |
| 
 | |
| 
 | |
| dm tree
 | |
| -------
 | |
| 
 | |
| This example shows the abridged sandbox output::
 | |
| 
 | |
|     => dm tree
 | |
|     Class     Seq    Probed  Driver                Name
 | |
|     -----------------------------------------------------------
 | |
|     root          0  [ + ]   root_driver           root_driver
 | |
|     demo          0  [   ]   demo_shape_drv        |-- demo_shape_drv
 | |
|     demo          1  [   ]   demo_simple_drv       |-- demo_simple_drv
 | |
|     demo          2  [   ]   demo_shape_drv        |-- demo_shape_drv
 | |
|     demo          3  [   ]   demo_simple_drv       |-- demo_simple_drv
 | |
|     demo          4  [   ]   demo_shape_drv        |-- demo_shape_drv
 | |
|     test          0  [   ]   test_drv              |-- test_drv
 | |
|     test          1  [   ]   test_drv              |-- test_drv
 | |
|     test          2  [   ]   test_drv              |-- test_drv
 | |
|     ..
 | |
|     sysreset      0  [   ]   sysreset_sandbox      |-- sysreset_sandbox
 | |
|     bootstd       0  [   ]   bootstd_drv           |-- bootstd
 | |
|     bootmeth      0  [   ]   bootmeth_extlinux     |   |-- extlinux
 | |
|     bootmeth      1  [   ]   bootmeth_efi          |   `-- efi
 | |
|     reboot-mod    0  [   ]   reboot-mode-gpio      |-- reboot-mode0
 | |
|     reboot-mod    1  [   ]   reboot-mode-rtc       |-- reboot-mode@14
 | |
|     ...
 | |
|     ethernet      7  [ + ]   dsa-port              |   `-- lan1
 | |
|     pinctrl       0  [ + ]   sandbox_pinctrl_gpio  |-- pinctrl-gpio
 | |
|     gpio          1  [ + ]   sandbox_gpio          |   |-- base-gpios
 | |
|     nop           0  [ + ]   gpio_hog              |   |   |-- hog_input_active_low
 | |
|     nop           1  [ + ]   gpio_hog              |   |   |-- hog_input_active_high
 | |
|     nop           2  [ + ]   gpio_hog              |   |   |-- hog_output_low
 | |
|     nop           3  [ + ]   gpio_hog              |   |   `-- hog_output_high
 | |
|     gpio          2  [   ]   sandbox_gpio          |   |-- extra-gpios
 | |
|     gpio          3  [   ]   sandbox_gpio          |   `-- pinmux-gpios
 | |
|     i2c           0  [ + ]   sandbox_i2c           |-- i2c@0
 | |
|     i2c_eeprom    0  [   ]   i2c_eeprom            |   |-- eeprom@2c
 | |
|     i2c_eeprom    1  [   ]   i2c_eeprom_partition  |   |   `-- bootcount@10
 | |
|     rtc           0  [   ]   sandbox_rtc           |   |-- rtc@43
 | |
|     rtc           1  [ + ]   sandbox_rtc           |   |-- rtc@61
 | |
|     i2c_emul_p    0  [ + ]   sandbox_i2c_emul_par  |   |-- emul
 | |
|     i2c_emul      0  [   ]   sandbox_i2c_eeprom_e  |   |   |-- emul-eeprom
 | |
|     i2c_emul      1  [   ]   sandbox_i2c_rtc_emul  |   |   |-- emul0
 | |
|     i2c_emul      2  [ + ]   sandbox_i2c_rtc_emul  |   |   |-- emull
 | |
|     i2c_emul      3  [   ]   sandbox_i2c_pmic_emu  |   |   |-- pmic-emul0
 | |
|     i2c_emul      4  [   ]   sandbox_i2c_pmic_emu  |   |   `-- pmic-emul1
 | |
|     pmic          0  [   ]   sandbox_pmic          |   |-- sandbox_pmic
 | |
|     regulator     0  [   ]   sandbox_buck          |   |   |-- buck1
 | |
|     regulator     1  [   ]   sandbox_buck          |   |   |-- buck2
 | |
|     regulator     2  [   ]   sandbox_ldo           |   |   |-- ldo1
 | |
|     regulator     3  [   ]   sandbox_ldo           |   |   |-- ldo2
 | |
|     regulator     4  [   ]   sandbox_buck          |   |   `-- no_match_by_nodename
 | |
|     pmic          1  [   ]   mc34708_pmic          |   `-- pmic@41
 | |
|     bootcount     0  [ + ]   bootcount-rtc         |-- bootcount@0
 | |
|     bootcount     1  [   ]   bootcount-i2c-eeprom  |-- bootcount
 | |
|     ...
 | |
|     clk           4  [   ]   fixed_clock           |-- osc
 | |
|     firmware      0  [   ]   sandbox_firmware      |-- sandbox-firmware
 | |
|     scmi_agent    0  [   ]   sandbox-scmi_agent    `-- scmi
 | |
|     clk           5  [   ]   scmi_clk                  |-- protocol@14
 | |
|     reset         2  [   ]   scmi_reset_domain         |-- protocol@16
 | |
|     nop           8  [   ]   scmi_voltage_domain       `-- regulators
 | |
|     regulator     5  [   ]   scmi_regulator                |-- reg@0
 | |
|     regulator     6  [   ]   scmi_regulator                `-- reg@1
 | |
|     => dm tree pinc
 | |
|     pinctrl       0  [ + ]   sandbox_pinctrl_gpio  pinctrl-gpio
 | |
|     gpio          1  [ + ]   sandbox_gpio          |-- base-gpios
 | |
|     nop           0  [ + ]   gpio_hog              |   |-- hog_input_active_low
 | |
|     nop           1  [ + ]   gpio_hog              |   |-- hog_input_active_high
 | |
|     nop           2  [ + ]   gpio_hog              |   |-- hog_output_low
 | |
|     nop           3  [ + ]   gpio_hog              |   `-- hog_output_high
 | |
|     gpio          2  [   ]   sandbox_gpio          |-- extra-gpios
 | |
|     gpio          3  [   ]   sandbox_gpio          `-- pinmux-gpios
 | |
|     =>
 | |
| 
 | |
| 
 | |
| dm uclass
 | |
| ~~~~~~~~~
 | |
| 
 | |
| This example shows the abridged sandbox output::
 | |
| 
 | |
|     => dm uclass
 | |
|     uclass 0: root
 | |
|     0   * root_driver @ 03015460, seq 0
 | |
| 
 | |
|     uclass 1: demo
 | |
|     0     demo_shape_drv @ 03015560, seq 0
 | |
|     1     demo_simple_drv @ 03015620, seq 1
 | |
|     2     demo_shape_drv @ 030156e0, seq 2
 | |
|     3     demo_simple_drv @ 030157a0, seq 3
 | |
|     4     demo_shape_drv @ 03015860, seq 4
 | |
| 
 | |
|     uclass 2: test
 | |
|     0     test_drv @ 03015980, seq 0
 | |
|     1     test_drv @ 03015a60, seq 1
 | |
|     2     test_drv @ 03015b40, seq 2
 | |
|     ...
 | |
|     uclass 20: audio-codec
 | |
|     0     audio-codec @ 030168e0, seq 0
 | |
| 
 | |
|     uclass 21: axi
 | |
|     0     adder @ 0301db60, seq 1
 | |
|     1     adder @ 0301dc40, seq 2
 | |
|     2     axi@0 @ 030217d0, seq 0
 | |
| 
 | |
|     uclass 22: blk
 | |
|     0     mmc2.blk @ 0301ca00, seq 0
 | |
|     1     mmc1.blk @ 0301cee0, seq 1
 | |
|     2     mmc0.blk @ 0301d380, seq 2
 | |
| 
 | |
|     uclass 23: bootcount
 | |
|     0   * bootcount@0 @ 0301b3f0, seq 0
 | |
|     1     bootcount @ 0301b4b0, seq 1
 | |
|     2     bootcount_4@0 @ 0301b570, seq 2
 | |
|     3     bootcount_2@0 @ 0301b630, seq 3
 | |
| 
 | |
|     uclass 24: bootdev
 | |
|     0     mmc2.bootdev @ 0301cbb0, seq 0
 | |
|     1     mmc1.bootdev @ 0301d050, seq 1
 | |
|     2     mmc0.bootdev @ 0301d4f0, seq 2
 | |
| 
 | |
|     ...
 | |
|     uclass 78: pinconfig
 | |
|     0     gpios @ 03022410, seq 0
 | |
|     1     gpio0 @ 030224d0, seq 1
 | |
|     2     gpio1 @ 03022590, seq 2
 | |
|     3     gpio2 @ 03022650, seq 3
 | |
|     4     gpio3 @ 03022710, seq 4
 | |
|     5     i2c @ 030227d0, seq 5
 | |
|     6     groups @ 03022890, seq 6
 | |
|     7     pins @ 03022950, seq 7
 | |
|     8     i2s @ 03022a10, seq 8
 | |
|     9     spi @ 03022ad0, seq 9
 | |
|     10    cs @ 03022b90, seq 10
 | |
|     11    pinmux_pwm_pins @ 03022e10, seq 11
 | |
|     12    pinmux_spi0_pins @ 03022ed0, seq 12
 | |
|     13    pinmux_uart0_pins @ 03022f90, seq 13
 | |
|     14  * pinmux_i2c0_pins @ 03023130, seq 14
 | |
|     15  * pinmux_lcd_pins @ 030231f0, seq 15
 | |
| 
 | |
|     ...
 | |
|     uclass 119: virtio
 | |
|     0     sandbox_virtio1 @ 030220d0, seq 0
 | |
|     1     sandbox_virtio2 @ 03022190, seq 1
 | |
| 
 | |
|     uclass 120: w1
 | |
|     uclass 121: w1_eeprom
 | |
|     uclass 122: watchdog
 | |
|     0   * gpio-wdt @ 0301c070, seq 0
 | |
|     1   * wdt@0 @ 03021710, seq 1
 | |
| 
 | |
|     => dm uclass blk
 | |
|     uclass 22: blk
 | |
|     0     mmc2.blk @ 0301ca00, seq 0
 | |
|     1     mmc1.blk @ 0301cee0, seq 1
 | |
|     2     mmc0.blk @ 0301d380, seq 2
 | |
| 
 | |
|     =>
 |