
Hi Patrick
ok v2 will be sent with your remarks
Thanks
Patrice
On 4/26/22 13:59, Patrick DELAUNAY wrote:
Hi Patrice
Few minor remarks,
On 4/13/22 17:05, Patrice Chotard wrote:
Add documentation for STM32 MCUs (F4, F7 and H7 series).
Signed-off-by: Patrice Chotard patrice.chotard@foss.st.com
board/st/stm32f429-discovery/MAINTAINERS | 1 + board/st/stm32f429-evaluation/MAINTAINERS | 1 + board/st/stm32f469-discovery/MAINTAINERS | 1 + board/st/stm32f746-disco/MAINTAINERS | 1 + board/st/stm32h743-disco/MAINTAINERS | 1 + board/st/stm32h743-eval/MAINTAINERS | 1 + board/st/stm32h750-art-pi/MAINTAINERS | 1 + doc/board/st/index.rst | 1 + doc/board/st/stm32_MCU.rst | 186 ++++++++++++++++++++++ 9 files changed, 194 insertions(+) create mode 100644 doc/board/st/stm32_MCU.rst
diff --git a/board/st/stm32f429-discovery/MAINTAINERS b/board/st/stm32f429-discovery/MAINTAINERS index fdb62e98e8..7661a15fdd 100644 --- a/board/st/stm32f429-discovery/MAINTAINERS +++ b/board/st/stm32f429-discovery/MAINTAINERS @@ -1,6 +1,7 @@ STM32F429-DISCOVERY BOARD M: Kamil Lulko kamil.lulko@gmail.com S: Maintained +F: doc/board/st/ F: board/st/stm32f429-discovery/ F: include/configs/stm32f429-discovery.h F: configs/stm32f429-discovery_defconfig diff --git a/board/st/stm32f429-evaluation/MAINTAINERS b/board/st/stm32f429-evaluation/MAINTAINERS index 29d00ef27e..b272893ef7 100644 --- a/board/st/stm32f429-evaluation/MAINTAINERS +++ b/board/st/stm32f429-evaluation/MAINTAINERS @@ -1,6 +1,7 @@ STM32F429-EVALUATION BOARD M: Patrice Chotard patrice.chotard@foss.st.com S: Maintained +F: doc/board/st/ F: board/st/stm32f429-evaluation/ F: include/configs/stm32f429-evaluation.h F: configs/stm32f429-evaluation_defconfig diff --git a/board/st/stm32f469-discovery/MAINTAINERS b/board/st/stm32f469-discovery/MAINTAINERS index 5a6a78b39e..a95f93f6f6 100644 --- a/board/st/stm32f469-discovery/MAINTAINERS +++ b/board/st/stm32f469-discovery/MAINTAINERS @@ -1,6 +1,7 @@ STM32F469-DISCOVERY BOARD M: Patrice Chotard patrice.chotard@foss.st.com S: Maintained +F: doc/board/st/ F: board/st/stm32f469-discovery/ F: include/configs/stm32f469-discovery.h F: configs/stm32f469-discovery_defconfig diff --git a/board/st/stm32f746-disco/MAINTAINERS b/board/st/stm32f746-disco/MAINTAINERS index bc0952c563..18e4c99c4f 100644 --- a/board/st/stm32f746-disco/MAINTAINERS +++ b/board/st/stm32f746-disco/MAINTAINERS @@ -1,6 +1,7 @@ STM32F746 DISCOVERY BOARD M: Vikas Manocha vikas.manocha@st.com S: Maintained +F: doc/board/st/ F: board/st/stm32f746-disco F: include/configs/stm32f746-disco.h F: configs/stm32f746-disco_defconfig diff --git a/board/st/stm32h743-disco/MAINTAINERS b/board/st/stm32h743-disco/MAINTAINERS index 60fbe344f8..f4ecef3aa5 100644 --- a/board/st/stm32h743-disco/MAINTAINERS +++ b/board/st/stm32h743-disco/MAINTAINERS @@ -1,6 +1,7 @@ STM32H743 DISCOVERY BOARD M: Patrice Chotard patrice.chotard@foss.st.com S: Maintained +F: doc/board/st/ F: board/st/stm32h743-disco F: include/configs/stm32h743-disco.h F: configs/stm32h743-disco_defconfig diff --git a/board/st/stm32h743-eval/MAINTAINERS b/board/st/stm32h743-eval/MAINTAINERS index fda93db777..b69e0d4abb 100644 --- a/board/st/stm32h743-eval/MAINTAINERS +++ b/board/st/stm32h743-eval/MAINTAINERS @@ -1,6 +1,7 @@ STM32H743 EVALUATION BOARD M: Patrice Chotard patrice.chotard@foss.st.com S: Maintained +F: doc/board/st/ F: board/st/stm32h743-eval F: include/configs/stm32h743-eval.h F: configs/stm32h743-eval_defconfig diff --git a/board/st/stm32h750-art-pi/MAINTAINERS b/board/st/stm32h750-art-pi/MAINTAINERS index 9578833068..2fd69e6d1c 100644 --- a/board/st/stm32h750-art-pi/MAINTAINERS +++ b/board/st/stm32h750-art-pi/MAINTAINERS @@ -1,6 +1,7 @@ STM32H750 ART PI BOARD M: Dillon Min dillon.minfei@gmail.com S: Maintained +F: doc/board/st/ F: board/st/stm32h750-art-pi F: include/configs/stm32h750-art-pi.h F: configs/stm32h750-art-pi_defconfig diff --git a/doc/board/st/index.rst b/doc/board/st/index.rst index 9bba42f1da..2a8a4ef3b8 100644 --- a/doc/board/st/index.rst +++ b/doc/board/st/index.rst @@ -8,3 +8,4 @@ STMicroelectronics st-dt stm32mp1 + stm32_MCU diff --git a/doc/board/st/stm32_MCU.rst b/doc/board/st/stm32_MCU.rst new file mode 100644 index 0000000000..84f7c0016e --- /dev/null +++ b/doc/board/st/stm32_MCU.rst @@ -0,0 +1,186 @@ +.. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause +.. sectionauthor:: Patrice Chotard patrice.chotardy@foss.st.com
+STM32 MCU boards +=================
+This is a quick instruction for setup STM32 MCU boards.
+Supported devices +-----------------
+U-Boot supports the following STMP32 MCU SoCs:
- STM32F429
- STM32F469
- STM32F746
- STM32F769
- STM32H743
- STM32H750
+SoCs information: +----------------- +STM32F4 series are Cortex-M4 MCU. +STM32F7 and STM32H7 series are Cortex-M7 MCU.
- STM32F4 series:
https://www.st.com/en/microcontrollers-microprocessors/stm32f4-series.html
- STM32F7 series:
https://www.st.com/en/microcontrollers-microprocessors/stm32f7-series.html
- STM32H7 series:
https://www.st.com/en/microcontrollers-microprocessors/stm32h7-series.html
+Currently the following boards are supported:
- stm32f429-disco.dts
- stm32f469-disco.dts
- stm32746g-eval.dts
- stm32f746-disco.dts
- stm32f769-disco.dts
- stm32h743i-disco.dts
- stm32h743i-eval.dts
- stm32h750i-art-pi.dts
+Boot Sequences +--------------
+For STM32F7 series, 2 boot configurations are supported with and without SPL
++----------+------------------------+-------------------------+--------------+
+| **ROM** | **FSBL** | **SSBL** | **OS** | ++ **code** +------------------------+-------------------------+--------------+ +| | First Stage Bootloader | Second Stage Bootloader | Linux Kernel | ++ +------------------------+-------------------------+--------------+ +| | embedded Flash | DDR | ++----------+------------------------+-------------------------+--------------+
no "ROM code" in STM32 MCU
+The boot chain with SPL +```````````````````````
+defconfig_file : + + **stm32746g-eval_spl_defconfig** + + **stm32f746-disco_spl_defconfig** + + **stm32f769-disco_spl_defconfig**
++-------------+------------+------------+-------+ +| ROM code | FSBL | SSBL | OS | ++ +------------+------------+-------+ +| |U-Boot SPL | U-Boot | Linux | ++-------------+------------+------------+-------+
no "ROM code" in STM32 MCU
+The boot chain without SPL +``````````````````````````
+defconfig_file : + + **stm32f429-discovery_defconfig** + + **stm32f429-evaluation_defconfig** + + **stm32f469-discovery_defconfig** + + **stm32746g-eval_defconfig** + + **stm32f746-disco_defconfig** + + **stm32f769-disco_defconfig** + + **stm32h743-disco_defconfig** + + **stm32h743-eval_defconfig** + + **stm32h750-art-pi_defconfig**
++-------------+-----------+-------+ +| ROM code | FSBL | OS | ++ +-----------+-------+ +| |U-Boot | Linux | ++-------------+-----------+-------+
no "ROM code" in STM32 MCU
+Build Procedure +---------------
+1. Install the required tools for U-Boot
+ * install package needed in U-Boot makefile + (libssl-dev, swig, libpython-dev...)
+ * install ARMv7 toolchain for 32bit Cortex-A (from Linaro, + from SDK for STM32MP15x, or any crosstoolchains from your distribution) + (you can use any gcc cross compiler compatible with U-Boot)
+2. Set the cross compiler::
+ # export CROSS_COMPILE=/path/to/toolchain/arm-linux-gnueabi-
+3. Select the output directory (optional)::
+ # export KBUILD_OUTPUT=/path/to/output
+ for example: use one output directory for each configuration::
+ # export KBUILD_OUTPUT=stm32f4 + # export KBUILD_OUTPUT=stm32f7 + # export KBUILD_OUTPUT=stm32h7
+ you can build outside of code directory::
+ # export KBUILD_OUTPUT=../build/stm32f4
+4. Configure U-Boot::
+ # make <defconfig_file>
+ For example with <defconfig_file>:
+ - For **stm32f429 discovery** board : **stm32f429-discovery_defconfig** + - For **stm32f769 discovery** board with SPL: **stm32f769-disco_spl_defconfig** + - For **stm32f769 discovery** board without SPL: **stm32f769-disco_defconfig**
+5. Configure the device-tree and build the U-Boot image::
+ # make DEVICE_TREE=<name> all
it is not required as the supported device tree is selected in each defconfig.
# make all
+ Examples:
+ a) boot with SPL on stm32f746 discovery board::
+ # export KBUILD_OUTPUT=stm32f746-disco + # make stm32f746-disco_spl_defconfig + # make DEVICE_TREE=stm32f746-disco all
# make all
+ b) boot without SPL on stm32f746 discovery board::
+ # export KBUILD_OUTPUT=stm32f746-disco + # make stm32f746-disco_defconfig + # make DEVICE_TREE=stm32f746-disco all
# make all
+ c) boot on stm32h743 discovery board::
+ # export KBUILD_OUTPUT=stm32h743-disco + # make stm32h743-disco_defconfig + # make DEVICE_TREE=stm32h743i-disco all
# make all
+ d) boot on stm32h743 evaluation board::
+ # export KBUILD_OUTPUT=stm32h743-disco + # make stm32h743-eval_defconfig + # make DEVICE_TREE=stm32h743i-eval all
# make all
+6. U-Boot Output files
+ So in the output directory (selected by KBUILD_OUTPUT), + you can found the needed U-Boot files, for example::
+ - stm32f746-disco_defconfig = **u-boot-dtb.bin** and **u-boot.dtb**
+ - FSBL = u-boot-dtb.bin
+ - stm32f746-disco_spl_defconfig = **u-boot-dtb.bin**, **u-boot.dtb** and **u-boot-with-spl.bin**
+ - FSBL + SSBL = u-boot-with-spl.bin + - SSBL = u-boot-dtb.bin
+7. Flash U-Boot files
+Plug STM32 MCUs board using the USB ST-Link connector, hence it will expose +the flash area as a mass-storage. In this mass-storage you will find the +following files:
+- DETAILS.TXT: give the bootrom version and build +- MBED.HTM: shortcul to the hardware board description web page from st.com.
+Copy/paste the u-boot.bin to this mass-storage. The "COM" LED will +blink alternatively red and green during the flash process. +When done the board will reboot automatically.
+In case of boot with SPL, by default SPL will try to load either a Linux +kernel (falcon mode) or, if the key "c" is maintained pressed, the main U-Boot.
regards
Patrick