[7/9] board: stm32mp1: update readme
diff mbox series

Message ID 20200128091106.28552-4-patrick.delaunay@st.com
State Accepted
Delegated to: Patrick Delaunay
Headers show
Series
  • stm32mp1 devicetre-tree and board update
Related show

Commit Message

Patrick Delaunay Jan. 28, 2020, 9:11 a.m. UTC
Update readme:
- list the supported SOC and change family to STM32MP15x
- add warning on OTP write and prerequisite:
  check if MAC address is not yet provisioned.
- Use filesize for mmc write command (avoid to write all partition
  with ${partsize}). ${filesize} and ${partsize} are set by previous
  load command.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
---

 board/st/stm32mp1/README | 52 ++++++++++++++++++++++++++--------------
 1 file changed, 34 insertions(+), 18 deletions(-)

Comments

Patrice CHOTARD Feb. 13, 2020, 8:13 a.m. UTC | #1
On 1/28/20 10:11 AM, Patrick Delaunay wrote:
> Update readme:
> - list the supported SOC and change family to STM32MP15x
> - add warning on OTP write and prerequisite:
>   check if MAC address is not yet provisioned.
> - Use filesize for mmc write command (avoid to write all partition
>   with ${partsize}). ${filesize} and ${partsize} are set by previous
>   load command.
>
> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> ---
>
>  board/st/stm32mp1/README | 52 ++++++++++++++++++++++++++--------------
>  1 file changed, 34 insertions(+), 18 deletions(-)
>
> diff --git a/board/st/stm32mp1/README b/board/st/stm32mp1/README
> index f2069bcefa..5d7465a8c8 100644
> --- a/board/st/stm32mp1/README
> +++ b/board/st/stm32mp1/README
> @@ -3,8 +3,8 @@ SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
>  # Copyright (C) 2018 STMicroelectronics - All Rights Reserved
>  #
>  
> -U-Boot on STMicroelectronics STM32MP1
> -======================================
> +U-Boot on STMicroelectronics STM32MP15x
> +=======================================
>  
>  1. Summary
>  ==========
> @@ -12,12 +12,12 @@ This is a quick instruction for setup stm32mp1 boards.
>  
>  2. Supported devices
>  ====================
> -U-Boot supports one STMP32MP1 SoCs: STM32MP157
> +U-Boot supports STMP32MP15x SoCs: STM32MP157, STM32MP153 and STM32MP151
>  
> -The STM32MP157 is a Cortex-A MPU aimed at various applications.
> +The STM32MP15x is a Cortex-A MPU aimed at various applications.
>  It features:
> -- Dual core Cortex-A7 application core
> -- 2D/3D image composition with GPU
> +- Dual core Cortex-A7 application core (Single on STM32MP151)
> +- 2D/3D image composition with GPU (only on STM32MP157)
>  - Standard memories interface support
>  - Standard connectivity, widely inherited from the STM32 MCU family
>  - Comprehensive security support
> @@ -37,11 +37,11 @@ And the necessary drivers
>  4. Fuse
>  
>  Currently the following boards are supported:
> -+ stm32mp157c-ev1
> -+ stm32mp157c-ed1
> -+ stm32mp157a-dk1
> -+ stm32mp157c-dk2
> -+ stm32mp157a-avenger96
> ++ stm32mp157a-avenger96.dts
> ++ stm32mp157a-dk1.dts
> ++ stm32mp157c-dk2.dts
> ++ stm32mp157c-ed1.dts
> ++ stm32mp157c-ev1.dts
>  
>  3. Boot Sequences
>  =================
> @@ -74,7 +74,7 @@ with FSBL = First Stage Bootloader
>     U-Boot is running in secure mode and provide a secure monitor to the kernel
>     with only PSCI support (Power State Coordination Interface defined by ARM).
>  
> -All the STM32MP1 boards supported by U-Boot use the same generic board
> +All the STM32MP15x boards supported by U-Boot use the same generic board
>  stm32mp1 which support all the bootable devices.
>  
>  Each board is configurated only with the associated device tree.
> @@ -108,7 +108,7 @@ the supported device trees for stm32mp157 are:
>     + install package needed in U-Boot makefile
>       (libssl-dev, swig, libpython-dev...)
>     + install ARMv7 toolchain for 32bit Cortex-A (from Linaro,
> -     from SDK for STM32MP1, or any crosstoolchains from your distribution)
> +     from SDK for STM32MP15x, or any crosstoolchains from your distribution)
>  
>  2. Set the cross compiler:
>  
> @@ -323,8 +323,7 @@ c) copy U-Boot in first GPT partition of eMMC
>  	# ext4load mmc 0:4 0xC0000000 u-boot.img
>  	# mmc dev 1
>  	# part start mmc 1 1 partstart
> -	# part size mmc 1 1 partsize
> -	# mmc write ${fileaddr} ${partstart} ${partsize}
> +	# mmc write ${fileaddr} ${partstart} ${filesize}
>  
>  To boot from eMMC, select BootPinMode = 0 1 0 and reset.
>  
> @@ -334,14 +333,27 @@ To boot from eMMC, select BootPinMode = 0 1 0 and reset.
>  Please read doc/README.enetaddr for the implementation guidelines for mac id
>  usage. Basically, environment has precedence over board specific storage.
>  
> -Mac id storage and retrieval in stm32mp otp :
> +For STMicroelectonics board, it is retrieved in STM32MP15x otp :
>  - OTP_57[31:0] = MAC_ADDR[31:0]
>  - OTP_58[15:0] = MAC_ADDR[47:32]
>  
>  To program a MAC address on virgin OTP words above, you can use the fuse command
>  on bank 0 to access to internal OTP:
>  
> -    example to set mac address "12:34:56:78:9a:bc"
> +    Prerequisite: check if a MAC address isn't yet programmed in OTP
> +
> +    1- check OTP: their value must be equal to 0
> +
> +       STM32MP> fuse sense 0 57 2
> +       Sensing bank 0:
> +       Word 0x00000039: 00000000 00000000
> +
> +    2- check environment variable
> +
> +       STM32MP> env print ethaddr
> +       ## Error: "ethaddr" not defined
> +
> +    Example to set mac address "12:34:56:78:9a:bc"
>  
>      1- Write OTP
>         STM32MP> fuse prog -y 0 57 0x78563412 0x0000bc9a
> @@ -355,9 +367,13 @@ on bank 0 to access to internal OTP:
>         ### Setting environment from OTP MAC address = "12:34:56:78:9a:bc"
>  
>      4 check env update
> -       STM32MP> print ethaddr
> +       STM32MP> env print ethaddr
>         ethaddr=12:34:56:78:9a:bc
>  
> +warning:: This MAC address provisioning can't be executed twice on the same
> +          board as the OTP are protected. It is already done for the board
> +          provided by STMicroelectronics.
> +
>  10. Coprocessor firmware
>  ========================
>  

Reviewed-by: Patrice Chotard <patrice.chotard@st.com>

Thanks
Patrick Delaunay Feb. 14, 2020, 10:28 a.m. UTC | #2
Hi,

> From: Patrick DELAUNAY <patrick.delaunay@st.com>
> Sent: mardi 28 janvier 2020 10:11
> 
> Update readme:
> - list the supported SOC and change family to STM32MP15x
> - add warning on OTP write and prerequisite:
>   check if MAC address is not yet provisioned.
> - Use filesize for mmc write command (avoid to write all partition
>   with ${partsize}). ${filesize} and ${partsize} are set by previous
>   load command.
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> ---

Applied to u-boot-stm32/master, thanks!

Regards
Patrick

Patch
diff mbox series

diff --git a/board/st/stm32mp1/README b/board/st/stm32mp1/README
index f2069bcefa..5d7465a8c8 100644
--- a/board/st/stm32mp1/README
+++ b/board/st/stm32mp1/README
@@ -3,8 +3,8 @@  SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
 # Copyright (C) 2018 STMicroelectronics - All Rights Reserved
 #
 
-U-Boot on STMicroelectronics STM32MP1
-======================================
+U-Boot on STMicroelectronics STM32MP15x
+=======================================
 
 1. Summary
 ==========
@@ -12,12 +12,12 @@  This is a quick instruction for setup stm32mp1 boards.
 
 2. Supported devices
 ====================
-U-Boot supports one STMP32MP1 SoCs: STM32MP157
+U-Boot supports STMP32MP15x SoCs: STM32MP157, STM32MP153 and STM32MP151
 
-The STM32MP157 is a Cortex-A MPU aimed at various applications.
+The STM32MP15x is a Cortex-A MPU aimed at various applications.
 It features:
-- Dual core Cortex-A7 application core
-- 2D/3D image composition with GPU
+- Dual core Cortex-A7 application core (Single on STM32MP151)
+- 2D/3D image composition with GPU (only on STM32MP157)
 - Standard memories interface support
 - Standard connectivity, widely inherited from the STM32 MCU family
 - Comprehensive security support
@@ -37,11 +37,11 @@  And the necessary drivers
 4. Fuse
 
 Currently the following boards are supported:
-+ stm32mp157c-ev1
-+ stm32mp157c-ed1
-+ stm32mp157a-dk1
-+ stm32mp157c-dk2
-+ stm32mp157a-avenger96
++ stm32mp157a-avenger96.dts
++ stm32mp157a-dk1.dts
++ stm32mp157c-dk2.dts
++ stm32mp157c-ed1.dts
++ stm32mp157c-ev1.dts
 
 3. Boot Sequences
 =================
@@ -74,7 +74,7 @@  with FSBL = First Stage Bootloader
    U-Boot is running in secure mode and provide a secure monitor to the kernel
    with only PSCI support (Power State Coordination Interface defined by ARM).
 
-All the STM32MP1 boards supported by U-Boot use the same generic board
+All the STM32MP15x boards supported by U-Boot use the same generic board
 stm32mp1 which support all the bootable devices.
 
 Each board is configurated only with the associated device tree.
@@ -108,7 +108,7 @@  the supported device trees for stm32mp157 are:
    + install package needed in U-Boot makefile
      (libssl-dev, swig, libpython-dev...)
    + install ARMv7 toolchain for 32bit Cortex-A (from Linaro,
-     from SDK for STM32MP1, or any crosstoolchains from your distribution)
+     from SDK for STM32MP15x, or any crosstoolchains from your distribution)
 
 2. Set the cross compiler:
 
@@ -323,8 +323,7 @@  c) copy U-Boot in first GPT partition of eMMC
 	# ext4load mmc 0:4 0xC0000000 u-boot.img
 	# mmc dev 1
 	# part start mmc 1 1 partstart
-	# part size mmc 1 1 partsize
-	# mmc write ${fileaddr} ${partstart} ${partsize}
+	# mmc write ${fileaddr} ${partstart} ${filesize}
 
 To boot from eMMC, select BootPinMode = 0 1 0 and reset.
 
@@ -334,14 +333,27 @@  To boot from eMMC, select BootPinMode = 0 1 0 and reset.
 Please read doc/README.enetaddr for the implementation guidelines for mac id
 usage. Basically, environment has precedence over board specific storage.
 
-Mac id storage and retrieval in stm32mp otp :
+For STMicroelectonics board, it is retrieved in STM32MP15x otp :
 - OTP_57[31:0] = MAC_ADDR[31:0]
 - OTP_58[15:0] = MAC_ADDR[47:32]
 
 To program a MAC address on virgin OTP words above, you can use the fuse command
 on bank 0 to access to internal OTP:
 
-    example to set mac address "12:34:56:78:9a:bc"
+    Prerequisite: check if a MAC address isn't yet programmed in OTP
+
+    1- check OTP: their value must be equal to 0
+
+       STM32MP> fuse sense 0 57 2
+       Sensing bank 0:
+       Word 0x00000039: 00000000 00000000
+
+    2- check environment variable
+
+       STM32MP> env print ethaddr
+       ## Error: "ethaddr" not defined
+
+    Example to set mac address "12:34:56:78:9a:bc"
 
     1- Write OTP
        STM32MP> fuse prog -y 0 57 0x78563412 0x0000bc9a
@@ -355,9 +367,13 @@  on bank 0 to access to internal OTP:
        ### Setting environment from OTP MAC address = "12:34:56:78:9a:bc"
 
     4 check env update
-       STM32MP> print ethaddr
+       STM32MP> env print ethaddr
        ethaddr=12:34:56:78:9a:bc
 
+warning:: This MAC address provisioning can't be executed twice on the same
+          board as the OTP are protected. It is already done for the board
+          provided by STMicroelectronics.
+
 10. Coprocessor firmware
 ========================