All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH] doc: mmc man-page
       [not found] <CGME20210226100058epcas1p3b2ed1a20412b147ed66bd92c367f46c3@epcas1p3.samsung.com>
@ 2021-02-26 10:01 ` Jaehoon Chung
  2021-02-26 10:32   ` Heinrich Schuchardt
  0 siblings, 1 reply; 3+ messages in thread
From: Jaehoon Chung @ 2021-02-26 10:01 UTC (permalink / raw)
  To: u-boot

Provide a man-pages for the mmc command.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
---
 doc/usage/mmc.rst | 149 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 149 insertions(+)
 create mode 100644 doc/usage/mmc.rst

diff --git a/doc/usage/mmc.rst b/doc/usage/mmc.rst
new file mode 100644
index 000000000000..30fee447d409
--- /dev/null
+++ b/doc/usage/mmc.rst
@@ -0,0 +1,149 @@
+.. 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* 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* write 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* erases MMC device from block offset until count
+    blk# - start block offset
+
+    cnt - block count
+
+The *mmc rescan* scans the available MMC device
+
+The *mmc part* displays the list available partition on current mmc device
+
+The *mmc dev* show or set current mmc device
+    [dev]
+        device number to change
+    [part]
+        partition number to change
+
+The *mmc list* displays the list avaiable devices
+
+The *mmc wp* enables "power on write protect" function about boot partitions
+
+The *mmc bootbus* sets the BOOT_BUS_WIDTH feild
+    BOOTU_BUS_WIDTH[177] is one of EXT_CSD register. (*Refer to eMMC specification*)
+
+The *mmc-bootpart-resize* changes sizes of boot and RPMB partition
+    dev - device number
+
+    boot part size MB - Size to change boot partition
+
+    RPMB part size MB - Size to chagne RPMB partition
+
+The *mmc rst-function* change the RST_n_FUNCTION filed
+    **WARNING**: This is a write-once filed. (*Refer to eMMC specification*)
+
+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 avaialble if CONFIG_CMD_MMC=y.
+Some commands need to enable more configuration.
+
+* write / erase - CONFIG_MMC_WRITE
+* bootbus - CONFIG_SUPPORT_EMMC_BOOT=y
-- 
2.29.0

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [RFC PATCH] doc: mmc man-page
  2021-02-26 10:01 ` [RFC PATCH] doc: mmc man-page Jaehoon Chung
@ 2021-02-26 10:32   ` Heinrich Schuchardt
  2021-02-26 11:19     ` Jaehoon Chung
  0 siblings, 1 reply; 3+ messages in thread
From: Heinrich Schuchardt @ 2021-02-26 10:32 UTC (permalink / raw)
  To: u-boot

On 2/26/21 11:01 AM, Jaehoon Chung wrote:
> Provide a man-pages for the mmc command.
>
> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
> ---
>   doc/usage/mmc.rst | 149 ++++++++++++++++++++++++++++++++++++++++++++++

Thanks a lot for providing a man-page for the mmc command.

You have to change doc/usage/index.rst too.

>   1 file changed, 149 insertions(+)
>   create mode 100644 doc/usage/mmc.rst
>
> diff --git a/doc/usage/mmc.rst b/doc/usage/mmc.rst
> new file mode 100644
> index 000000000000..30fee447d409
> --- /dev/null
> +++ b/doc/usage/mmc.rst
> @@ -0,0 +1,149 @@
> +.. 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]

This sub-command is missing below.

> +    mmc rst-function <dev> <value>
> +
> +Description
> +-----------
> +
> +The mmc command is used to control MMC(eMMC/SD) device

Please, add missing full stops '.'.

> +
> +The *mmc info* 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* write raw data to MMC device from memory address with block offset and count
> +    addr - memory address

Please format arguments like this:

addr
	memory address

You can check the formatting using 'make htmldocs'.

> +
> +    blk# - start block offset
> +
> +    cnt - block count
> +
> +The *mmc erase* erases MMC device from block offset until count
> +    blk# - start block offset
> +
> +    cnt - block count
> +
> +The *mmc rescan* scans the available MMC device
> +
> +The *mmc part* displays the list available partition on current mmc device
> +
> +The *mmc dev* show or set current mmc device
> +    [dev]

Please, remove the brackets.

> +        device number to change
> +    [part]
> +        partition number to change
> +
> +The *mmc list* displays the list avaiable devices

The *mmc list* command ...

> +
> +The *mmc wp* enables "power on write protect" function about boot partitions

The *mmc wp* command ...

%s/about/for/

Please, mention that power cycling is needed to lift the write protection.

> +
> +The *mmc bootbus* sets the BOOT_BUS_WIDTH feild

The *mmc bootbus* command ...

%s/feild/field/

> +    BOOTU_BUS_WIDTH[177] is one of EXT_CSD register. (*Refer to eMMC specification*)
> +
> +The *mmc-bootpart-resize* changes sizes of boot and RPMB partition

partitions.

> +    dev - device number
> +
> +    boot part size MB - Size to change boot partition

How about:

target size of boot partition

> +
> +    RPMB part size MB - Size to chagne RPMB partition

%s/chagne/change/

target size of RPMB partition

> +
> +The *mmc rst-function* change the RST_n_FUNCTION filed

field?

I think we should describe what a RST_n_FUNCTION is.

We should enumerate the allowable values. The eMMC specification (JEDEC
Standard No. 84-B51, 2014) has:

0x0: RST_n signal is temporarily disabled (default)
0x1: RST_n signal is permanently enabled
0x2: RST_n signal is permanently disabled

> +    **WARNING**: This is a write-once filed. (*Refer to eMMC specification*)

%s/filed/field/

> +
> +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 avaialble if CONFIG_CMD_MMC=y.
> +Some commands need to enable more configuration.

Some sub-command need require further configuration:

> +
> +* write / erase - CONFIG_MMC_WRITE

write, erase
	CONFIG_MMC_WRITE=y

> +* bootbus - CONFIG_SUPPORT_EMMC_BOOT=y
>

Best regards

Heinrich

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [RFC PATCH] doc: mmc man-page
  2021-02-26 10:32   ` Heinrich Schuchardt
@ 2021-02-26 11:19     ` Jaehoon Chung
  0 siblings, 0 replies; 3+ messages in thread
From: Jaehoon Chung @ 2021-02-26 11:19 UTC (permalink / raw)
  To: u-boot

Hi Heinrich,

On 2/26/21 7:32 PM, Heinrich Schuchardt wrote:
> On 2/26/21 11:01 AM, Jaehoon Chung wrote:
>> Provide a man-pages for the mmc command.
>>
>> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
>> ---
>> ? doc/usage/mmc.rst | 149 ++++++++++++++++++++++++++++++++++++++++++++++
> 
> Thanks a lot for providing a man-page for the mmc command.
> 
> You have to change doc/usage/index.rst too.

Thanks for reviewing.

> 
>> ? 1 file changed, 149 insertions(+)
>> ? create mode 100644 doc/usage/mmc.rst
>>
>> diff --git a/doc/usage/mmc.rst b/doc/usage/mmc.rst
>> new file mode 100644
>> index 000000000000..30fee447d409
>> --- /dev/null
>> +++ b/doc/usage/mmc.rst
>> @@ -0,0 +1,149 @@
>> +.. 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]
> 
> This sub-command is missing below.
> 
>> +??? mmc rst-function <dev> <value>
>> +
>> +Description
>> +-----------
>> +
>> +The mmc command is used to control MMC(eMMC/SD) device
> 
> Please, add missing full stops '.'.

Okay.

> 
>> +
>> +The *mmc info* 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* write raw data to MMC device from memory address with block offset and count
>> +??? addr - memory address
> 
> Please format arguments like this:
> 
> addr
> ????memory address
> 
> You can check the formatting using 'make htmldocs'.

Okay. I will check with 'make htmldocs'

> 
>> +
>> +??? blk# - start block offset
>> +
>> +??? cnt - block count
>> +
>> +The *mmc erase* erases MMC device from block offset until count
>> +??? blk# - start block offset
>> +
>> +??? cnt - block count
>> +
>> +The *mmc rescan* scans the available MMC device
>> +
>> +The *mmc part* displays the list available partition on current mmc device
>> +
>> +The *mmc dev* show or set current mmc device
>> +??? [dev]
> 
> Please, remove the brackets.

Will remove.

> 
>> +??????? device number to change
>> +??? [part]
>> +??????? partition number to change
>> +
>> +The *mmc list* displays the list avaiable devices
> 
> The *mmc list* command ...
> 
>> +
>> +The *mmc wp* enables "power on write protect" function about boot partitions
> 
> The *mmc wp* command ...
> 
> %s/about/for/

I will update other things according to your comments.

> 
> Please, mention that power cycling is needed to lift the write protection.
> 
>> +
>> +The *mmc bootbus* sets the BOOT_BUS_WIDTH feild
> 
> The *mmc bootbus* command ...
> 
> %s/feild/field/
> 
>> +??? BOOTU_BUS_WIDTH[177] is one of EXT_CSD register. (*Refer to eMMC specification*)
>> +
>> +The *mmc-bootpart-resize* changes sizes of boot and RPMB partition
> 
> partitions.
> 
>> +??? dev - device number
>> +
>> +??? boot part size MB - Size to change boot partition
> 
> How about:
> 
> target size of boot partition
> 
>> +
>> +??? RPMB part size MB - Size to chagne RPMB partition
> 
> %s/chagne/change/
> 
> target size of RPMB partition
> 
>> +
>> +The *mmc rst-function* change the RST_n_FUNCTION filed
> 
> field?
> 
> I think we should describe what a RST_n_FUNCTION is.
> 
> We should enumerate the allowable values. The eMMC specification (JEDEC
> Standard No. 84-B51, 2014) has:
> 
> 0x0: RST_n signal is temporarily disabled (default)
> 0x1: RST_n signal is permanently enabled
> 0x2: RST_n signal is permanently disabled

I thought  that we don't need to describe in more detail and 
user has to read eMMC Specification to understand what a RST_n_FUCTION is.

Because it's dangerous to use without exact understanding.

But I agreed yours..I will add description in more detail.

> 
>> +??? **WARNING**: This is a write-once filed. (*Refer to eMMC specification*)
> 
> %s/filed/field/
> 
>> +
>> +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 avaialble if CONFIG_CMD_MMC=y.
>> +Some commands need to enable more configuration.
> 
> Some sub-command need require further configuration:

Right. I have been checking other sub-command.
There are too many commands, so i wonder that it needs to add the example of all command.
Because some commands have one-time programmable, it's difficult to change my eMMC's register.

Best Regards,
Jaehoon Chung

> 
>> +
>> +* write / erase - CONFIG_MMC_WRITE
> 
> write, erase
> ????CONFIG_MMC_WRITE=y
> 
>> +* bootbus - CONFIG_SUPPORT_EMMC_BOOT=y
>>
> 
> Best regards
> 
> Heinrich
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-02-26 11:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20210226100058epcas1p3b2ed1a20412b147ed66bd92c367f46c3@epcas1p3.samsung.com>
2021-02-26 10:01 ` [RFC PATCH] doc: mmc man-page Jaehoon Chung
2021-02-26 10:32   ` Heinrich Schuchardt
2021-02-26 11:19     ` Jaehoon Chung

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.