mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 03:58:17 +00:00 
			
		
		
		
	Title underlines should match the length of the title. Unfortunately docutils only catches underlines that are too short. Add some missing empty lines after titles. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
		
			
				
	
	
		
			187 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			187 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. 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.
 |