Convert CONFIG_USB_XHCI_OMAP to Kconfig
[platform/kernel/u-boot.git] / doc / usage / mmc.rst
1 .. SPDX-License-Identifier: GPL-2.0+:
2
3 mmc command
4 ============
5
6 Synopsis
7 --------
8
9 ::
10
11     mmc info
12     mmc read addr blk# cnt
13     mmc write addr blk# cnt
14     mmc erase blk# cnt
15     mmc rescan [mode]
16     mmc part
17     mmc dev [dev] [part] [mode]
18     mmc list
19     mmc wp
20     mmc bootbus <dev> <boot_bus_width> <reset_boot_bus_width> <boot_mode>
21     mmc bootpart-resize <dev> <dev part size MB> <RPMB part size MB>
22     mmc partconf <dev> [[varname] | [<boot_ack> <boot_partition> <partition_access>]]
23     mmc rst-function <dev> <value>
24
25 Description
26 -----------
27
28 The mmc command is used to control MMC(eMMC/SD) device.
29
30 The 'mmc info' command displays information (Manufacturer ID, OEM, Name, Bus Speed, Mode, ...) of MMC device.
31
32 The 'mmc read' command reads raw data to memory address from MMC device with block offset and count.
33
34 The 'mmc write' command writes raw data to MMC device from memory address with block offset and count.
35
36     addr
37         memory address
38     blk#
39         start block offset
40     cnt
41         block count
42
43 The 'mmc erase' command erases *cnt* blocks on the MMC device starting at block *blk#*.
44
45     blk#
46         start block offset
47     cnt
48         block count
49
50 The 'mmc rescan' command scans the available MMC device.
51
52    mode
53        speed mode to set.
54        CONFIG_MMC_SPEED_MODE_SET should be enabled. The required speed mode is
55        passed as the index from the following list.
56
57        0   - MMC_LEGACY
58        1   - MMC_HS
59        2   - SD_HS
60        3   - MMC_HS_52
61        4   - MMC_DDR_52
62        5   - UHS_SDR12
63        6   - UHS_SDR25
64        7   - UHS_SDR50
65        8   - UHS_DDR50
66        9   - UHS_SDR104
67        10  - MMC_HS_200
68        11  - MMC_HS_400
69        12  - MMC_HS_400_ES
70
71        A speed mode can be set only if it has already been enabled in the device tree
72
73 The 'mmc part' command displays the list available partition on current mmc device.
74
75 The 'mmc dev' command shows or set current mmc device.
76
77     dev
78         device number to change
79     part
80         partition number to change
81
82    mode
83        speed mode to set.
84        CONFIG_MMC_SPEED_MODE_SET should be enabled. The required speed mode is
85        passed as the index from the following list.
86
87        0   - MMC_LEGACY
88        1   - MMC_HS
89        2   - SD_HS
90        3   - MMC_HS_52
91        4   - MMC_DDR_52
92        5   - UHS_SDR12
93        6   - UHS_SDR25
94        7   - UHS_SDR50
95        8   - UHS_DDR50
96        9   - UHS_SDR104
97        10  - MMC_HS_200
98        11  - MMC_HS_400
99        12  - MMC_HS_400_ES
100
101        A speed mode can be set only if it has already been enabled in the device tree
102
103 The 'mmc list' command displays the list available devices.
104
105 The 'mmc wp' command enables "power on write protect" function for boot partitions.
106
107 The 'mmc bootbus' command sets the BOOT_BUS_WIDTH field. (*Refer to eMMC specification*)
108
109     boot_bus_width
110         0x0
111             x1 (sdr) or x4(ddr) buswidth in boot operation mode (default)
112         0x1
113             x4 (sdr/ddr) buswidth in boot operation mode
114         0x2
115             x8 (sdr/ddr) buswidth in boot operation mode
116         0x3
117             Reserved
118
119     reset_boot_bus_width
120         0x0
121             Reset buswidth to x1, Single data reate and backward compatible timing after boot operation (default)
122         0x1
123             Retain BOOT_BUS_WIDTH and BOOT_MODE value after boot operation. This is relevant to Push-pull mode operation only
124
125     boot_mode
126         0x0
127             Use single data rate + backward compatible timing in boot operation (default)
128         0x1
129             Use single data rate + High Speed timing in boot operation mode
130         0x2
131             Use dual data rate in boot operation
132         0x3
133             Reserved
134
135 The 'mmc partconf' command shows or changes PARTITION_CONFIG field.
136
137     varname
138         When showing the PARTITION_CONFIG, an optional environment variable to store the current boot_partition value into.
139     boot_ack
140         boot acknowledge value
141     boot_partition
142         boot partition to enable for boot
143             0x0
144                 Device not boot enabled(default)
145             0x1
146                 Boot partition1 enabled for boot
147             0x2
148                 Boot partition2 enabled for boot
149             0x7
150                 User area enabled for boot
151             others
152                 Reserved
153     partition_access
154         partitions to access
155
156 The 'mmc bootpart-resize' command changes sizes of boot and RPMB partitions.
157
158     dev
159         device number
160     boot part size MB
161         target size of boot partition
162     RPMB part size MB
163         target size of RPMB partition
164
165 The 'mmc rst-function' command changes the RST_n_FUNCTION field.
166 **WARNING** : This is a write-once field. (*Refer to eMMC specification*)
167
168     value
169         0x0
170             RST_n signal is temporarily disabled (default)
171         0x1
172             RST_n signal is permanently enabled
173         0x2
174             RST_n signal is permanently disabled
175         0x3
176             Reserved
177
178
179 Examples
180 --------
181
182 The 'mmc info' command displays device's capabilities:
183 ::
184
185     => mmc info
186     Device: EXYNOS DWMMC
187     Manufacturer ID: 45
188     OEM: 100
189     Name: SDW16
190     Bus Speed: 52000000
191     Mode: MMC DDR52 (52MHz)
192     Rd Block Len: 512
193     MMC version 5.0
194     High Capacity: Yes
195     Capacity: 14.7 GiB
196     Bus Width: 8-bit DDR
197     Erase Group Size: 512 KiB
198     HC WP Group Size: 8 MiB
199     User Capacity: 14.7 GiB WRREL
200     Boot Capacity: 4 MiB ENH
201     RPMB Capacity: 4 MiB ENH
202     Boot area 0 is not write protected
203     Boot area 1 is not write protected
204
205 The raw data can be read/written via 'mmc read/write' command:
206 ::
207
208     => mmc read 0x40000000 0x5000 0x100
209     MMC read: dev # 0, block # 20480, count 256 ... 256 blocks read: OK
210
211     => mmc write 0x40000000 0x5000 0x10
212     MMC write: dev # 0, block # 20480, count 256 ... 256 blocks written: OK
213
214 The partition list can be shown via 'mmc part' command:
215 ::
216
217     => mmc part
218     Partition Map for MMC device 0  --   Partition Type: DOS
219
220     Part    Start Sector    Num Sectors     UUID            Type
221       1     8192            131072          dff8751a-01     0e Boot
222       2     139264          6291456         dff8751a-02     83
223       3     6430720         1048576         dff8751a-03     83
224       4     7479296         23298048        dff8751a-04     05 Extd
225       5     7481344         307200          dff8751a-05     83
226       6     7790592         65536           dff8751a-06     83
227       7     7858176         16384           dff8751a-07     83
228       8     7876608         22900736        dff8751a-08     83
229
230 The current device can be shown or set via 'mmc dev' command:
231 ::
232
233     => mmc dev
234     switch to partitions #0, OK
235     mmc0(part0) is current device
236     => mmc dev 2 0
237     switch to partitions #0, OK
238     mmc2 is current device
239     => mmc dev 0 1 4
240     switch to partitions #1, OK
241     mmc0(part 1) is current device
242
243 The list of available devices can be shown via 'mmc list' command:
244 ::
245
246     => mmc list
247     mmc list
248     EXYNOS DWMMC: 0 (eMMC)
249     EXYNOS DWMMC: 2 (SD)
250
251 Configuration
252 -------------
253
254 The mmc command is only available if CONFIG_CMD_MMC=y.
255 Some commands need to enable more configuration.
256
257 write, erase
258     CONFIG_MMC_WRITE
259 bootbus, bootpart-resize, partconf, rst-function
260     CONFIG_SUPPORT_EMMC_BOOT=y