diff options
author | Tom Rini | 2022-05-10 15:28:02 -0400 |
---|---|---|
committer | Tom Rini | 2022-05-10 15:28:02 -0400 |
commit | 21e25992c86306b41caafcf85efc47d66f5efa6e (patch) | |
tree | 3c9f1ccb01f1a83f077064b4e4f4e028760f2e39 /doc | |
parent | b4eb57766314062e3dd1ee8e439d2cb2d5dc33d8 (diff) | |
parent | e198d4fe7c34cbb97d7d3cbf31d3a78a5ecc43f7 (diff) |
Merge tag 'u-boot-stm32-20220510' of https://source.denx.de/u-boot/custodians/u-boot-stm
Add new STM32 MCU boards and Documentation
STM32 programmer improvements
video: support several LTDC HW versions and fix data enable polarity
board: fix stboard error message, consider USB cable connected when boot device is USB
configs: stm32mp1: set console variable for extlinux.conf
configs: stm32mp1: add support for baudrate higher than 115200 for ST-Link
ARM: stm32mp: Fix Silicon version handling and ft_system_setup()
phy: stm32-usbphyc: Add DT phy tuning support
arm: dts: stm32mp15: alignment with v5.18
ram: Conditionally enable ASR
mach-stm32mp: psci: retain MCUDIVR, PLL3CR, PLL4CR, MSSCKSELR across suspend
configs: Use TFTP_TSIZE on DHSOM and STMicroelectronics boards
ARM: stm32: Use default CONFIG_TFTP_BLOCKSIZE on DHSOM
pinctrl: stm32: rework GPIO holes management
Diffstat (limited to 'doc')
-rw-r--r-- | doc/board/st/index.rst | 1 | ||||
-rw-r--r-- | doc/board/st/stm32_MCU.rst | 186 |
2 files changed, 187 insertions, 0 deletions
diff --git a/doc/board/st/index.rst b/doc/board/st/index.rst index 9bba42f1dae..2a8a4ef3b84 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 00000000000..7ff7c730fae --- /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-discovery + + stm32f469-discovery + + stm32746g-evaluation + + stm32f746-discovery + + stm32f769-discovery + + stm32h743i-discovery + + stm32h743i-evaluation + + stm32h750i-art-pi + +Boot Sequences +-------------- + +For STM32F7 series, 2 boot configurations are supported with and without SPL + ++------------------------+-------------------------+--------------+ +| **FSBL** | **SSBL** | **OS** | ++------------------------+-------------------------+--------------+ +| 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** + ++------------+------------+-------+ +| 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** + ++-----------+-------+ +| 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 all + + b) boot without SPL on stm32f746 discovery board:: + + # export KBUILD_OUTPUT=stm32f746-disco + # make stm32f746-disco_defconfig + # make all + + c) boot on stm32h743 discovery board:: + + # export KBUILD_OUTPUT=stm32h743-disco + # make stm32h743-disco_defconfig + # make all + + d) boot on stm32h743 evaluation board:: + + # export KBUILD_OUTPUT=stm32h743-disco + # make stm32h743-eval_defconfig + # 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 or u-boot-with-spl.bin (in case of bootchain with SPL) +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. |