This message will disappear after all relevant tasks have been resolved.
Semantic MediaWiki
There are 1 incomplete or pending task to finish installation of Semantic MediaWiki. An administrator or user with sufficient rights can complete it. This should be done before adding new data to avoid inconsistencies.This article aims to explain how to load and start STM32CubeMP13 applications via e•MMC™ using the "eMMC external loader firmware utility" provided into the STM32CubeMP13 package. This use case is useful in production mode.
1. eMMC external loader firmware utility[edit source]
1.1. Introduction[edit source]
eMMC external loader firmware utility is used to load and start STM32CubeMP13 applications programmed into external eMMC™ .
- It allows programming of embedded software applications on external eMMC™ for an internal ST Board, aka STM32MP13XX_CUSTOM_HW, customized to validate some features. It can be reused for customer boards after binaries adaptations.
- This package contains all the binaries necessary to program the eMMC™ through serial interface and boot from eMMC™ .
- This package version :
- Supports UART & USB DFU serial protocol.
- OTP Programming is not supported.
1.2. Contents[edit source]
eMMC™ External Loader utility contains below binaries, readme and .tsv files. Details about each is described below.
├── Projects ├── STM32MP13XX_CUSTOM_HW ├── External_Loader ├── EMMC_Ext_Loader │ ├── [FlashLayout_OpenBL_ExtLoaderEMMC_SerialBoot.tsv] │ ├── [FSBLA_eMMC_A7_Signed.bin] │ ├── [MP13_BSP_TemplatesA7_VALID2_Signed.bin] │ ├── [readme.txt] │ ├── [MMC_Ext_Loader.bin] │ ├── [STM32PRGFW_UTIL_MP13xx_CP_Serial_Boot.stm32]
- FlashLayout_OpenBL_ExtLoaderEMMC_SerialBoot.tsv
- This file defines flash memory partitions, binaries and corresponding partition ID. Refer to STM32CubeProgrammer_flashlayout article for more details.
- FSBLA_eMMC_A7_Signed.bin
- This binary is the First Stage Boot Loader (FSBLA) programmed via STM32PRGFW_UTIL_MP13xx_CP_Serial_Boot.stm32 in eMMC™ and is used to load the test application from eMMC™ to DDR.
- MP13_BSP_TemplatesA7_VALID2_Signed.bin
- This binary is the test application, programmed in eMMC™ via STM32PRGFW_UTIL_MP13xx_CP_Serial_Boot.stm32. On reset, when boot from eMMC™, it is loaded into DDR for execution by FSBLA.
- This can be replaced with any customer test application. Application has to be built for DDR (Refer build test application for DDR) and then properly signed with STM32CubeProgrammer signing tool (or via Postbuild steps and scripts)). In this test application, blue LED is initialized and after successful execution blue LED is toggled at 200ms and logs are printed on serial console
- Read the README file carefully
- It provides all the information about the example setup and verdict.
- MMC_Ext_Loader.bin
- This binary provides eMMC™ read, write and erase functionalities. It is used for programming binaries in eMMC™.
- STM32PRGFW_UTIL_MP13xx_CP_Serial_Boot.stm32
- This binary initializes UART & USB interface and reads binaries serially in serial boot mode.
MMC_Ext_Loader.bin is loaded into RAM. FSBLA_eMMC_A7_Signed.bin and MP13_BSP_TemplatesA7_VALID2_Signed.bin are programmed into eMMC™ for subsequent boot in eMMC™ mode.
2. Hardware and software prerequisites[edit source]
- Customer board with
- external eMMC™.
- an ST-Link or UART cable connected between board and PC if programming via UART.
- a Micro-USB cable connected between USB DFU port on board and PC if programming via USB.
- Power adapter for the board.
- STM32CubeProgrammer PC tool installed (v2.14.0 minimum).
3. How to run utility[edit source]
3.1. Set boot mode to serial[edit source]
- Set boot pins to b000 (BOOT0/1/2 to OFF) position to select serial boot mode.
- Connect Micro-USB cable between PC and ST-Link connector on the board OR
- Connect a UART cable between PC and UART connector on the board if programming via UART. In both the case, PC should detect UART interface.
3.2. Flash eMMC in serial boot[edit source]
3.2.1. Flash eMMC using STM32CubeProgrammer GUI[edit source]
Read STM32CubeProgrammer pages for more details.
3.2.1.1. Program via UART[edit source]
- Click on UART and then select COM port:
- Click on Connect button:
- STM32CubeProgrammer is now connected to ROM Code and logs show the chip ID, bootloader version and other details.
- Click on Open file by clicking on + icon and then select TSV file : FlashLayout_OpenBL_ExtLoaderEMMC_SerialBoot.tsv
- Select Binaries path with Browse button: Firmware\Projects\STM32MP13XX_CUSTOM_HW\External_Loader\MMC_Ext_Loader
- Click on Download button :
- STM32CubeProgrammer now starts downloading the binaries. Once all the binaries are successfully downloaded, there is a pop-up message indicating- Flashing service completed successfully
3.2.1.2. Program via USB DFU[edit source]
- Click on USB and then select USB port:
- Click on Connect button, STM32CubeProgrammer is now connected to ROM Code and logs show the chip ID, bootloader version and other details:
- Click on Open file by clicking on + icon and then select TSV file : 'FlashLayout_OpenBL_ExtLoaderEMMC_SerialBoot.tsv
- Select Binaries path with Browse button: Firmware\Projects\STM32MP13XX_CUSTOM_HW\External_Loader\MMC_Ext_Loader
- Click on Download button :
- STM32CubeProgrammer now starts downloading the binaries. Once all the binaries are successfully downloaded, there is a pop-up message indicating : Flashing service completed successfully
3.2.2. Flash eMMC using STM32CubeProgrammer CLI[edit source]
- Browse the installed STM32CubeProgrammer binary directory i.e. STM32CubeProgrammer\bin
- Open command prompt from this directory.
- Execute below command to load the eMMC™ external loader binaries via UART interface:
$STM32_Programmer_CLI.exe -c port=COM <num> -w <YourDirectoryPath>\Projects<STM32device>\External_Loader\EMMC_Ext_Loader\FlashLayout_OpenBL_ExtLoaderEMMC_SerialBoot.tsv
OR
- Execute below command to load the eMMC External Loader binaries via USB DFU interface:
$STM32_Programmer_CLI.exe -c port=USB <num> -w <YourDirectoryPath>\Projects<STM32device>\External_Loader\EMMC_Ext_Loader\FlashLayout_OpenBL_ExtLoaderEMMC_SerialBoot.tsv
- DO NOT reset the board till the command has completed.
- STM32CubeProgrammer now starts downloading all the binaries listed in TSV file. Once all the binaries are successfully downloaded, there is a message indicating : Flashing service completed successfully.
3.3. Run test application[edit source]
- Once binaries are programmed into eMMC™ successfully, set boot pins to b010 (BOOT0 and BOOT2 to OFF and BOOT1 to ON) position to select eMMC boot mode and then reset the board.
- MP13_BSP_TemplatesA7_VALID2_Signed.bin test application toggles blue LED at 200ms, indicating that it has been loaded and executed successfully from DDR.