[PATCH] doc: mmc man-page

Provide a man-pages for the mmc command.
Signed-off-by: Jaehoon Chung jh80.chung@samsung.com --- doc/usage/index.rst | 1 + doc/usage/mmc.rst | 182 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 183 insertions(+) create mode 100644 doc/usage/mmc.rst
diff --git a/doc/usage/index.rst b/doc/usage/index.rst index 6c59bbadab45..15c682ceface 100644 --- a/doc/usage/index.rst +++ b/doc/usage/index.rst @@ -30,6 +30,7 @@ Shell commands load loady mbr + mmc pstore qfw sbi diff --git a/doc/usage/mmc.rst b/doc/usage/mmc.rst new file mode 100644 index 000000000000..00a21a6e12e7 --- /dev/null +++ b/doc/usage/mmc.rst @@ -0,0 +1,182 @@ +.. 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 + mmc part + mmc dev [dev] [part] + 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> [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 MMC device from block offset until count. + blk# + start block offset + cnt + block count + +The *mmc rescan* command scans the available MMC device. + +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 + +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. + BOOTU_BUS_WIDTH[177] is one of EXT_CSD register. (*Refer to eMMC specification*) + +The *mmc partconf* command shows or changes PARTITION_CONFIG field. + 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*) + RST_n_FUNCTION[162] is one of EXT_CSD register. (Readable and Writable once) + 0x0 + RST_n signal is temporarily disabled (default) + 0x1 + RST_n signal is permanently enabled + 0x2 + RST_n signal is permanently disabled + 0x3 + Reserved + + +Example +------- + +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 + +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

On 3/30/21 1:29 AM, Jaehoon Chung wrote:
Provide a man-pages for the mmc command.
Signed-off-by: Jaehoon Chung jh80.chung@samsung.com
doc/usage/index.rst | 1 + doc/usage/mmc.rst | 182 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 183 insertions(+) create mode 100644 doc/usage/mmc.rst
diff --git a/doc/usage/index.rst b/doc/usage/index.rst index 6c59bbadab45..15c682ceface 100644 --- a/doc/usage/index.rst +++ b/doc/usage/index.rst @@ -30,6 +30,7 @@ Shell commands load loady mbr
- mmc pstore qfw sbi
diff --git a/doc/usage/mmc.rst b/doc/usage/mmc.rst new file mode 100644 index 000000000000..00a21a6e12e7 --- /dev/null +++ b/doc/usage/mmc.rst @@ -0,0 +1,182 @@ +.. 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
- mmc part
- mmc dev [dev] [part]
- 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> [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.
Thank you for providing this man-page.
Not having an empty line here makes the line above bold. Please, avoid inconsistent formatting by adding an empty line.
Please, inspect the rendered page in a browser.
- addr
memory address
- blk#
start block offset
- cnt
block count
+The *mmc erase* command erases MMC device from block offset until count.
missing empty line
- blk#
start block offset
- cnt
block count
+The *mmc rescan* command scans the available MMC device.
+The *mmc part* command displays the list available partition on current mmc device.
+The *mmc dev* command shows or set current mmc device.
missing empty line
- dev
device number to change
- part
partition number to change
+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.
- BOOTU_BUS_WIDTH[177] is one of EXT_CSD register. (*Refer to eMMC specification*)
This line should not be indented.
+The *mmc partconf* command shows or changes PARTITION_CONFIG field.
missing empty line
- 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*)
This line should not be indented.
RST_n_FUNCTION[162] is one of EXT_CSD register. (Readable and Writable once)
How is this line related to the mmc command?
0x0
'value' is missing here to make it clear which parameter these numbers relate to.
RST_n signal is temporarily disabled (default)
0x1
RST_n signal is permanently enabled
0x2
RST_n signal is permanently disabled
0x3
Reserved
+Example
Examples
Best regards
Heinrich
+-------
+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
+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

Hi Heinrich,
Thanks for review.
On 3/30/21 7:39 PM, Heinrich Schuchardt wrote:
On 3/30/21 1:29 AM, Jaehoon Chung wrote:
Provide a man-pages for the mmc command.
Signed-off-by: Jaehoon Chung jh80.chung@samsung.com
doc/usage/index.rst | 1 + doc/usage/mmc.rst | 182 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 183 insertions(+) create mode 100644 doc/usage/mmc.rst
diff --git a/doc/usage/index.rst b/doc/usage/index.rst index 6c59bbadab45..15c682ceface 100644 --- a/doc/usage/index.rst +++ b/doc/usage/index.rst @@ -30,6 +30,7 @@ Shell commands load loady mbr + mmc pstore qfw sbi diff --git a/doc/usage/mmc.rst b/doc/usage/mmc.rst new file mode 100644 index 000000000000..00a21a6e12e7 --- /dev/null +++ b/doc/usage/mmc.rst @@ -0,0 +1,182 @@ +.. 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 + mmc part + mmc dev [dev] [part] + 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> [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.
Thank you for providing this man-page.
Not having an empty line here makes the line above bold. Please, avoid inconsistent formatting by adding an empty line.
Please, inspect the rendered page in a browser.
Sorry about it. I'm not familiar to rst style. I'm getting the skill about it. So I had used some rst tool(ReText). But i think that it's not enough to fix style. I will check this in a browser.
+ addr + memory address + blk# + start block offset + cnt + block count
+The *mmc erase* command erases MMC device from block offset until count.
missing empty line
Will fix
+ blk# + start block offset + cnt + block count
+The *mmc rescan* command scans the available MMC device.
+The *mmc part* command displays the list available partition on current mmc device.
+The *mmc dev* command shows or set current mmc device.
missing empty line
+ dev + device number to change + part + partition number to change
+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. + BOOTU_BUS_WIDTH[177] is one of EXT_CSD register. (*Refer to eMMC specification*)
This line should not be indented.
+The *mmc partconf* command shows or changes PARTITION_CONFIG field.
missing empty line
+ 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*)
This line should not be indented.
+ RST_n_FUNCTION[162] is one of EXT_CSD register. (Readable and Writable once)
How is this line related to the mmc command?
Will remove. It's just for sharing information about RST_n_FUNCTION. But it doesn't need to add at here.
Best Regards, Jaehoon Chung
+ 0x0
'value' is missing here to make it clear which parameter these numbers relate to.
+ RST_n signal is temporarily disabled (default) + 0x1 + RST_n signal is permanently enabled + 0x2 + RST_n signal is permanently disabled + 0x3 + Reserved
+Example
Examples
Best regards
Heinrich
+-------
+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
+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
participants (2)
-
Heinrich Schuchardt
-
Jaehoon Chung