mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 12:08:19 +00:00 
			
		
		
		
	We use the terms 'distro' to mean extlinux but they are not really the same. 'Distro' could refer to any method of booting a distribution, whereas extlinux is a particular method. Also we sometimes use syslinux, but it is better to use the same term in all cases. Rename distro to syslinux and also update bootstd uses of syslinux to use extlinux instead. Signed-off-by: Simon Glass <sjg@chromium.org>
		
			
				
	
	
		
			491 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			491 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. SPDX-License-Identifier: GPL-2.0+:
 | |
| 
 | |
| dm command
 | |
| ==========
 | |
| 
 | |
| Synopis
 | |
| -------
 | |
| 
 | |
| ::
 | |
| 
 | |
|     dm compat
 | |
|     dm devres
 | |
|     dm drivers
 | |
|     dm static
 | |
|     dm tree [-s]
 | |
|     dm uclass
 | |
| 
 | |
| 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
 | |
| 
 | |
| Index
 | |
|     Shows the index number of the device, within the uclass. This shows the
 | |
|     ordering within the uclass, but not the sequence number.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 
 | |
| 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     Index  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 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
 | |
| 
 | |
|     =>
 |