aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2022-05-10 15:28:02 -0400
committerTom Rini <trini@konsulko.com>2022-05-10 15:28:02 -0400
commit21e25992c86306b41caafcf85efc47d66f5efa6e (patch)
tree3c9f1ccb01f1a83f077064b4e4f4e028760f2e39 /doc
parentb4eb57766314062e3dd1ee8e439d2cb2d5dc33d8 (diff)
parente198d4fe7c34cbb97d7d3cbf31d3a78a5ecc43f7 (diff)
downloadu-boot-21e25992c86306b41caafcf85efc47d66f5efa6e.zip
u-boot-21e25992c86306b41caafcf85efc47d66f5efa6e.tar.gz
u-boot-21e25992c86306b41caafcf85efc47d66f5efa6e.tar.bz2
Merge tag 'u-boot-stm32-20220510' of https://source.denx.de/u-boot/custodians/u-boot-stmWIP/10May2022
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.rst1
-rw-r--r--doc/board/st/stm32_MCU.rst186
2 files changed, 187 insertions, 0 deletions
diff --git a/doc/board/st/index.rst b/doc/board/st/index.rst
index 9bba42f..2a8a4ef 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 0000000..7ff7c73
--- /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.