mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-30 19:48:19 +00:00 
			
		
		
		
	Currently all shell command docs are put in the doc/usage root. Let's group them into cmd/ sub-directory. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
		
			
				
	
	
		
			269 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			269 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. SPDX-License-Identifier: GPL-2.0+:
 | |
| 
 | |
| mmc command
 | |
| ============
 | |
| 
 | |
| Synopsis
 | |
| --------
 | |
| 
 | |
| ::
 | |
| 
 | |
|     mmc info
 | |
|     mmc read addr blk# cnt
 | |
|     mmc write addr blk# cnt
 | |
|     mmc erase blk# cnt
 | |
|     mmc rescan [mode]
 | |
|     mmc part
 | |
|     mmc dev [dev] [part] [mode]
 | |
|     mmc list
 | |
|     mmc wp
 | |
|     mmc bootbus <dev> <boot_bus_width> <reset_boot_bus_width> <boot_mode>
 | |
|     mmc bootpart-resize <dev> <dev part size MB> <RPMB part size MB>
 | |
|     mmc partconf <dev> [[varname] | [<boot_ack> <boot_partition> <partition_access>]]
 | |
|     mmc rst-function <dev> <value>
 | |
| 
 | |
| Description
 | |
| -----------
 | |
| 
 | |
| The mmc command is used to control MMC(eMMC/SD) device.
 | |
| 
 | |
| The 'mmc info' command displays information (Manufacturer ID, OEM, Name, Bus Speed, Mode, ...) of MMC device.
 | |
| 
 | |
| The 'mmc read' command reads raw data to memory address from MMC device with block offset and count.
 | |
| 
 | |
| The 'mmc write' command writes raw data to MMC device from memory address with block offset and count.
 | |
| 
 | |
|     addr
 | |
|         memory address
 | |
|     blk#
 | |
|         start block offset
 | |
|     cnt
 | |
|         block count
 | |
| 
 | |
| The 'mmc erase' command erases *cnt* blocks on the MMC device starting at block *blk#*.
 | |
| 
 | |
|     blk#
 | |
|         start block offset
 | |
|     cnt
 | |
|         block count
 | |
| 
 | |
| The 'mmc rescan' command scans the available MMC device.
 | |
| 
 | |
|    mode
 | |
|        speed mode to set.
 | |
|        CONFIG_MMC_SPEED_MODE_SET should be enabled. The requested speed mode is
 | |
|        passed as a decimal number according to the following table:
 | |
| 
 | |
|        ========== ==========================
 | |
|        Speed mode Description
 | |
|        ========== ==========================
 | |
|            0      MMC legacy
 | |
|            1      MMC High Speed (26MHz)
 | |
|            2      SD High Speed (50MHz)
 | |
|            3      MMC High Speed (52MHz)
 | |
|            4      MMC DDR52 (52MHz)
 | |
|            5      UHS SDR12 (25MHz)
 | |
|            6      UHS SDR25 (50MHz)
 | |
|            7      UHS SDR50 (100MHz)
 | |
|            8      UHS DDR50 (50MHz)
 | |
|            9      UHS SDR104 (208MHz)
 | |
|           10      HS200 (200MHz)
 | |
|           11      HS400 (200MHz)
 | |
|           12      HS400ES (200MHz)
 | |
|        ========== ==========================
 | |
| 
 | |
|        A speed mode can be set only if it has already been enabled in the device tree
 | |
| 
 | |
| The 'mmc part' command displays the list available partition on current mmc device.
 | |
| 
 | |
| The 'mmc dev' command shows or set current mmc device.
 | |
| 
 | |
|     dev
 | |
|         device number to change
 | |
|     part
 | |
|         partition number to change
 | |
| 
 | |
|    mode
 | |
|        speed mode to set.
 | |
|        CONFIG_MMC_SPEED_MODE_SET should be enabled. The requested speed mode is
 | |
|        passed as a decimal number according to the following table:
 | |
| 
 | |
|        ========== ==========================
 | |
|        Speed mode Description
 | |
|        ========== ==========================
 | |
|            0      MMC legacy
 | |
|            1      MMC High Speed (26MHz)
 | |
|            2      SD High Speed (50MHz)
 | |
|            3      MMC High Speed (52MHz)
 | |
|            4      MMC DDR52 (52MHz)
 | |
|            5      UHS SDR12 (25MHz)
 | |
|            6      UHS SDR25 (50MHz)
 | |
|            7      UHS SDR50 (100MHz)
 | |
|            8      UHS DDR50 (50MHz)
 | |
|            9      UHS SDR104 (208MHz)
 | |
|           10      HS200 (200MHz)
 | |
|           11      HS400 (200MHz)
 | |
|           12      HS400ES (200MHz)
 | |
|        ========== ==========================
 | |
| 
 | |
|        A speed mode can be set only if it has already been enabled in the device tree
 | |
| 
 | |
| The 'mmc list' command displays the list available devices.
 | |
| 
 | |
| The 'mmc wp' command enables "power on write protect" function for boot partitions.
 | |
| 
 | |
| The 'mmc bootbus' command sets the BOOT_BUS_WIDTH field. (*Refer to eMMC specification*)
 | |
| 
 | |
|     boot_bus_width
 | |
|         0x0
 | |
|             x1 (sdr) or x4(ddr) buswidth in boot operation mode (default)
 | |
|         0x1
 | |
|             x4 (sdr/ddr) buswidth in boot operation mode
 | |
|         0x2
 | |
|             x8 (sdr/ddr) buswidth in boot operation mode
 | |
|         0x3
 | |
|             Reserved
 | |
| 
 | |
|     reset_boot_bus_width
 | |
|         0x0
 | |
|             Reset buswidth to x1, Single data reate and backward compatible timing after boot operation (default)
 | |
|         0x1
 | |
|             Retain BOOT_BUS_WIDTH and BOOT_MODE value after boot operation. This is relevant to Push-pull mode operation only
 | |
| 
 | |
|     boot_mode
 | |
|         0x0
 | |
|             Use single data rate + backward compatible timing in boot operation (default)
 | |
|         0x1
 | |
|             Use single data rate + High Speed timing in boot operation mode
 | |
|         0x2
 | |
|             Use dual data rate in boot operation
 | |
|         0x3
 | |
|             Reserved
 | |
| 
 | |
| The 'mmc partconf' command shows or changes PARTITION_CONFIG field.
 | |
| 
 | |
|     varname
 | |
|         When showing the PARTITION_CONFIG, an optional environment variable to store the current boot_partition value into.
 | |
|     boot_ack
 | |
|         boot acknowledge value
 | |
|     boot_partition
 | |
|         boot partition to enable for boot
 | |
|             0x0
 | |
|                 Device not boot enabled(default)
 | |
|             0x1
 | |
|                 Boot partition1 enabled for boot
 | |
|             0x2
 | |
|                 Boot partition2 enabled for boot
 | |
|             0x7
 | |
|                 User area enabled for boot
 | |
|             others
 | |
|                 Reserved
 | |
|     partition_access
 | |
|         partitions to access
 | |
| 
 | |
| The 'mmc bootpart-resize' command changes sizes of boot and RPMB partitions.
 | |
| 
 | |
|     dev
 | |
|         device number
 | |
|     boot part size MB
 | |
|         target size of boot partition
 | |
|     RPMB part size MB
 | |
|         target size of RPMB partition
 | |
| 
 | |
| The 'mmc rst-function' command changes the RST_n_FUNCTION field.
 | |
| **WARNING** : This is a write-once field. (*Refer to eMMC specification*)
 | |
| 
 | |
|     value
 | |
|         0x0
 | |
|             RST_n signal is temporarily disabled (default)
 | |
|         0x1
 | |
|             RST_n signal is permanently enabled
 | |
|         0x2
 | |
|             RST_n signal is permanently disabled
 | |
|         0x3
 | |
|             Reserved
 | |
| 
 | |
| 
 | |
| Examples
 | |
| --------
 | |
| 
 | |
| The 'mmc info' command displays device's capabilities:
 | |
| ::
 | |
| 
 | |
|     => mmc info
 | |
|     Device: EXYNOS DWMMC
 | |
|     Manufacturer ID: 45
 | |
|     OEM: 100
 | |
|     Name: SDW16
 | |
|     Bus Speed: 52000000
 | |
|     Mode: MMC DDR52 (52MHz)
 | |
|     Rd Block Len: 512
 | |
|     MMC version 5.0
 | |
|     High Capacity: Yes
 | |
|     Capacity: 14.7 GiB
 | |
|     Bus Width: 8-bit DDR
 | |
|     Erase Group Size: 512 KiB
 | |
|     HC WP Group Size: 8 MiB
 | |
|     User Capacity: 14.7 GiB WRREL
 | |
|     Boot Capacity: 4 MiB ENH
 | |
|     RPMB Capacity: 4 MiB ENH
 | |
|     Boot area 0 is not write protected
 | |
|     Boot area 1 is not write protected
 | |
| 
 | |
| The raw data can be read/written via 'mmc read/write' command:
 | |
| ::
 | |
| 
 | |
|     => mmc read 0x40000000 0x5000 0x100
 | |
|     MMC read: dev # 0, block # 20480, count 256 ... 256 blocks read: OK
 | |
| 
 | |
|     => mmc write 0x40000000 0x5000 0x10
 | |
|     MMC write: dev # 0, block # 20480, count 256 ... 256 blocks written: OK
 | |
| 
 | |
| The partition list can be shown via 'mmc part' command:
 | |
| ::
 | |
| 
 | |
|     => mmc part
 | |
|     Partition Map for MMC device 0  --   Partition Type: DOS
 | |
| 
 | |
|     Part    Start Sector    Num Sectors     UUID            Type
 | |
|       1     8192            131072          dff8751a-01     0e Boot
 | |
|       2     139264          6291456         dff8751a-02     83
 | |
|       3     6430720         1048576         dff8751a-03     83
 | |
|       4     7479296         23298048        dff8751a-04     05 Extd
 | |
|       5     7481344         307200          dff8751a-05     83
 | |
|       6     7790592         65536           dff8751a-06     83
 | |
|       7     7858176         16384           dff8751a-07     83
 | |
|       8     7876608         22900736        dff8751a-08     83
 | |
| 
 | |
| The current device can be shown or set via 'mmc dev' command:
 | |
| ::
 | |
| 
 | |
|     => mmc dev
 | |
|     switch to partitions #0, OK
 | |
|     mmc0(part0) is current device
 | |
|     => mmc dev 2 0
 | |
|     switch to partitions #0, OK
 | |
|     mmc2 is current device
 | |
|     => mmc dev 0 1 4
 | |
|     switch to partitions #1, OK
 | |
|     mmc0(part 1) is current device
 | |
| 
 | |
| The list of available devices can be shown via 'mmc list' command:
 | |
| ::
 | |
| 
 | |
|     => mmc list
 | |
|     mmc list
 | |
|     EXYNOS DWMMC: 0 (eMMC)
 | |
|     EXYNOS DWMMC: 2 (SD)
 | |
| 
 | |
| Configuration
 | |
| -------------
 | |
| 
 | |
| The mmc command is only available if CONFIG_CMD_MMC=y.
 | |
| Some commands need to enable more configuration.
 | |
| 
 | |
| write, erase
 | |
|     CONFIG_MMC_WRITE
 | |
| bootbus, bootpart-resize, partconf, rst-function
 | |
|     CONFIG_SUPPORT_EMMC_BOOT=y
 |