Description SL STM32 MP15x devices
|SL STM32 MP157 512MB/512MB||40099 167||SoM with STM32MP157A|
|SL STM32 MP157 256MB/256MB||40099 168||SoM with STM32MP157A|
|SL STM32 MP153 512MB/512MB||40099 181||SoM with STM32MP153A|
|SL STM32 MP153 256MB/256MB||n.a.||SoM with STM32MP153A|
|SL STM32 MP151 512MB/512MB||40099 180||SoM with STM32MP151A|
|SL STM32 MP151 256MB/256MB||40099 189||SoM with STM32MP151A|
Overview of SoM components and features
The SoM includes processor and DDR3-RAM, often also QSPI flash, gpio expander and an ethernet phy.
This is the configuration for the SL STM32 MP157 512MB/512MB SoM:
- STM32MP157A SoC (2xCortex-A7@650MHz, 1xCortex-M4@200MHz)
- 512 MB DDR3 RAM at 528MHz
- 2 MB QSPI NOR flash
- 512 MB QSPI NAND flash
- 1x Ethernet PHY (100MBit/s)
- 1x I2C GPIO Expander
There are also variants with different RAM and Flash configurations. The 'C' type SoMs have secure boot capabilities.
The differences between the MP151, MP153 and MP151 variants are:
|SoM||SoM number||Shortname||devicetree file||CubeMX configuration||Remark|
|SL STM32 MP157 512MB/512MB||40099 167||t1000||stm32mp-t1000.dts||t1000-som-minimal.ioc|
|SL STM32 MP157 256MB/256MB||40099 168||t1002||stm32mp-t1002.dts||t1002-som-minimal.ioc|
|SL STM32 MP153 512MB/512MB||40099 181||t1005||stm32mp-t1005.dts||t1000-som-minimal.ioc|
|SL STM32 MP153 256MB/256MB||n.a.||t1007||stm32mp-t1007.dts||t1002-som-minimal.ioc|
|SL STM32 MP151 512MB/512MB||40099 180||t1004||stm32mp-t1004.dts||t1000-som-minimal.ioc|
|SL STM32 MP151 256MB/256MB||40099 189||t1006||stm32mp-t1006.dts||t1002-som-minimal.ioc|
The devicetree configurations for the SoM components include all components which are located on the SoM module and all recommended external peripherals. For the t1000 module these are:
- SoC chip with default clock configuration
- DDR3 RAM
- QSPI NOR
- QSPI NAND
- Ethernet PHY
- GPIO Expander
- USB Host interface
- USB OTG interface
- Serial console on UART4
- SD card interface on SDMMC1
- LED1 on PA13
See the SoM hardware documentation for further details.
The CubeMX configurations for devices are the same. This is the case when the differences of these SoM variants are not relevant for the boot loader functionality (e.g. GPU or CAN interface).
In the device tree files for these SoMs sensible default settings for the clock configuration and security settings are done. They have to be adapted when there are special requirements.
It is not required to provide the bootloaders u-boot and tf-a for all SoM variants. Relating to the devices needed to boot, the SoM variants differs only little. So the amount of bootloaders can be reduced. Here is the compatibility list which basic u-boot and tf-a bootloader can be used for a special SoM:
|Shortname||t1000 compatible||t1002 compatible|
Reasons for different tf-a bootloader is DDR3 configuration, clock and security settings. The differences in u-boot are mostly different machine names.
Newer versions of the SoMs contain the SPI-NAND chip
KIOXIA P/N TC58CVG2S0HRAIJ. This chip is
supported in BSP version 1.5.0 and later. To enable older BSP versions to support this chip the
required patches can be found at
The dedicated software configurations for these SoMs are the following. Replace shortname with the short name of your board.
|machine||stm32mp-shortname (e.g. stm32mp-t1000)|
|EULA accept variable(1)||ACCEPT_EULA_stm32mp-shortname-s-multi = "1"|
|distros dedicated for these kits||ktn|
|images dedicated for these kits||image-ktn, image-ktn-qt|
|available boot devices(2)||mmc0 (SD-card), mmc1 (eMMC), ubifs0 (QSPI NAND), pxe (Ethernet1)|
|latest prebuild binaries(3)||https://files.kontron-electronics.de/stm32mp|
- (1) Only required when GPU with proprietary drivers shall be used
- (2) Only if SoM provides this interface
- (3) Prebuilt binaries are not provided for all variants
This product contains software components which are licensed as free respectively open-source software under the GNU General Public License, versions 2 or 3, or the GNU Lesser General Public License, versions 2.1 or 3 or any other open-source licence. Everyone can get the source code of this software components from us by download or by storage medium within three years after the delivery of the product or as long as we offer spare parts or support for the product.
To get the source code on a data storage medium (CD-ROM, DVD, USB drive), please send a request to our customer support at the following address
Kontron Electronics GmbH Kantstrasse 10 72663 Grossbettlingen Deutschland Web: www.kontron-electronics.de E-Mail: email@example.com
Including the statement of the following product data:
- Product name and product number
- Date of delivery
We also require a fee of EUR 10,- for the costs of preparation of the medium and shipping to be transferred.
Preventive it should be mentioned here that using the right of installing own versions of the open-source software components, which is guaranteed in the licence contract, will expire all certifications and warranties of the product. The operation of the manipulated product will happen on one's own authority.
If you want to download the source code covered by open-source licenses for this product use these URLs:
- For getting binaries, license texts and source code:
Look for the appropriate BSP version in this directory or in the archive subdirectory.
- For instructions how to build the software:
Known issues and limitations
- The SoMs provide an internal RTC for timekeeping. Due to the chip technology this RTC is more power consuming as dedicated RTC chips. For optimal power consumption an external RTC should be used.
Board design considerations
When you want to design your own baseboard for these SoM modules you should be aware of these restrictions and proposals to ease the bring up and production of your board:
It is strongly recommended to use UART4 as console interface.
Keep the USB OTG port accessible to be able to use CubeProgrammer for completely empty devices or first board bring up.
CubeProgrammer is not able to program the QSPI NOR on the SoM module. So this has to be done from linux. Be aware that linux has to be loaded via on-chip ethernet, usb storage or sd-card. One of them has to be accessible from u-boot to load linux from. In case of sd-card the boot rom can directly boot from it (if default sd-card port is used).
Use PA13 port as LED port. On USB boot mode this pin will be toggled from SOC ROM code to signal USB boot mode active.
Keep bootstrap pins accessible to be able to force device in USB boot mode for reprogramming
Even when every gpio line can be configured to generate an interrupt, the EXTI lines are limited to the count of 16. For external gpios the EXTI lines are mapped directly to the 16 gpio bank pins of each bank. So the gpio lines Px0, Px1, Px2, ... map to the same EXTI interrupt 0, 1, 2, ... . Because of this, it is not possible to use more than one as external interrupt source in the same devicetree configuration (e.g. using PA0 and PB0 together is not possible). Keep the external interrup lines on different gpio port lines in your board design!
Keep in mind that some peripherals share their clock source and can influence themselves when they change their base clock. This is especially true for audio equipment, which sometimes must change the clock base on the run to achieve the required sampling rate. In this case the other equipment can be influenced by the clock change. This behavior affects SPI1/2 and SPI4/5 which also can be used as SSI interfaces for audio hardware.
Here are proposals for the bootstrap pin accessibility. SW1 and SW2 are the proposed switches mentioned in the SoM hardware user guide. It is an good idea to keep SW1 and SW2 on pads or use 0 ohm bridges to enable forcing some boot mode while production.
Proposal for boards with SD card and NOR boot:
|sd, nor||Leave SW1 open||Leave SW2 open||Program fuses for first boot device SD card, then NOR (OTP_CFG3=0x22000000)|
|USB boot||Close SW1 temporarily||Close SW2 temporarily|
|Engineering||Close SW1 temporarily||Leave SW2 open|
Kontron SoMs with default configuration are already pre programmed with boot fuses. For these devices a 'NOR only boot' is not available.
Proposal for boards only with NOR boot:
|nor||Leave SW1 open||Close SW2 with 0 ohms resistor|
|USB boot||Close SW1 temporarily||Close SW2 with 0 ohms resistor|
|Engineering||Close SW1 temporarily||Remove SW2 0 ohms resistor temporarily||This is only required for a few development boards|
The SoMs are delivered with
- 2 MAC addresses reserved,
if the SoM has an Ethernet interface. The first one is fused into OTP memory, the second is the following MAC address, calculated in the bootlader and written to the device tree on boot for the configuration of the Kontron BL boards.
- OTP boot fuses
configured for booting from SD card and fallback to boot from NOR (OTP_CFG3=0x22000000)
- Pre programmed U-Boot bootloader
in NOR flash, able to fetch extlinux boot configuration from SD card or boot from network (pxe). U-Boot is equipped with serial console, drivers for QSPI NOR, QSPI NAND and USB host.
Description of board components
The following sections describe the hardware components and, if available, their interface to to linux os.
The DDR3 memory is clocked with 528MHz and is available with various size configurations. Some memory is reserved as GPU memory and not available for linux. The size for GPU memory can be adapted in the device tree settings.
GPU memory reservation
In the device tree some amount of memory is reserved for GPU. For SoMs with 512MiB RAM configuration, 64MiB are reserved for GPU. For the 256MiB RAM configuration it is reduced to 32MiB.
QSPI NOR memory
QSPI NOR memory is used for boot. The contents are available in linux thru mtd interface:
|MTD device||Partition size||Name||Remark|
|mtd0||0x00040000||fsbl1||reserved for first stage bootloader, first copy|
|mtd1||0x00040000||fsbl2||reserved for first stage bootloader, second copy|
|mtd2||0x00100000||ssbl||reserved for u-boot bootloader|
|mtd3||0x00010000||env||reserved for u-boot environment|
|mtd4||0x00070000||nor_user||free for user(1)|
- (1) may be shrinked in future versions if bootloader or u-boot environment grows
QSPI NAND memory
|MTD device||Partition size||Name||Remark|
|mtd5||20000000||spi0.1||for ubifs linux filesystems on ubi device mapper|
The size can variy, depending on variant
SOC OTP memory
The following locations in OTP are reserved for special usage by Kontron. These locations may be already programmed with appropriate content and can't be used by customers for their needs!
|OTP word||Intended usage|
|59||serial number of SoM|
|60||serial number of baseboard|
With the help of mptool it is possible to read and write these values.
|STM32MP1||Used as||Linux access||Baud settings|
||8 Bits, no parity, 115200 Baud|
|Name||Accessible via||Used by|
|I2C2||i2c-1||external and SoM internal bus|
Devices on i2c-1
|0x20||SOM||GPIO port expander TCA6408A|
Keep in mind that the TCA6408A gpio expander on I2C2 bus is limited to 400kHz operation!
One USB 2.0 host interface is available thru dedicated pins and supported by the linux USB stack.
One USB OTG interface is available thru dedicated pins and supported by the linux USB stack.
|Ethernet 1||eth0||Native SOC interface|
Ethernet is not provided by all variants
DSI display interface
One DSI display interface is available thru dedicated pins.
- DSI interface is only available on variants with GPU
- Using the DSI display interface and the DPI interface at the same time is not possible!