[PATCH v1 12/12] doc: Add documentation for STM32 MCUs
Patrice CHOTARD
patrice.chotard at foss.st.com
Wed Apr 27 13:27:34 CEST 2022
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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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
>
More information about the U-Boot
mailing list