Message ID | 20220413150500.23883-13-patrice.chotard@foss.st.com |
---|---|
State | Superseded |
Delegated to: | Patrick Delaunay |
Headers | show |
Series | stm32: add new board support, defconfig and documentation | expand |
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
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 >
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 | ++----------+------------------------+-------------------------+--------------+ + +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 | ++-------------+------------+------------+-------+ + +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 | ++-------------+-----------+-------+ + +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 + + 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 + + b) boot without SPL on stm32f746 discovery board:: + + # export KBUILD_OUTPUT=stm32f746-disco + # make stm32f746-disco_defconfig + # make DEVICE_TREE=stm32f746-disco all + + c) boot on stm32h743 discovery board:: + + # export KBUILD_OUTPUT=stm32h743-disco + # make stm32h743-disco_defconfig + # make DEVICE_TREE=stm32h743i-disco all + + d) boot on stm32h743 evaluation board:: + + # export KBUILD_OUTPUT=stm32h743-disco + # make stm32h743-eval_defconfig + # make DEVICE_TREE=stm32h743i-eval 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.
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