This article describes the content of STM32MPU distribution for Android software release version st-android-10.0.0-2020-02-07 (tag), which is part of STM32MP15 ecosystem release note - v1.2.0.
1. Intended audience[edit source]
The targeted audience is STM32MP15 customers or partners.
2. Delivery scope and purpose[edit source]
The STM32MPU distribution for Android™ provides all necessary components for running, developing and/or making your own platform based on Android™ framework. It runs on the Arm® Cortex®-A7 processors, and is a fundamental part of the STM32MPU Embedded Software distribution for Android.
It is compatible with Android 10.0.0.
It is provided as example. The Android certifications are not insured.
This delivery of STM32MP15 distribution for Android™ v1.1.0 is part of STM32MP15-Ecosystem-v1.2.0 (see the STM32MP15 ecosystem release note - v1.2.0).
3. Licensing[edit source]
This software package is licensed under a SOFTWARE LICENSE AGREEMENT (SLA). Customers may not use this package except in compliance with the software license agreement (SLA).
All of the packages use the same source components. All components and their respective licenses are listed here.
4. Supported hardware[edit source]
This software delivery is compatible with the following boards:
- STM32MP157C-EV1 Evaluation board. For more information on this board, please read the article STM32MP157C-EV1 - hardware description
5. Delivered features[edit source]
5.1. Main software components[edit source]
- Android version v10.0.0 (AOSP android-10.0.0_r22 tag)
- Kernel version v4.19.94 (AOSP common kernel) + updates for STM32MP1 and associated boards (waiting upstream finalization)
- TF-A version v2.0 + updates for STM32MP1 and associated boards (waiting upstream finalization)
- U-Boot version v2018.11 + updates for STM32MP1 and associated boards (waiting upstream finalization)
- OP-TEE version v3.3.0 + updates for STM32MP1 and associated boards (waiting upstream finalization)
- STM32CubeMP1 FW v1.2.0
- GCC version v8.2
- openOCD version v0.10.0
- GCnano version v6.2.4
5.2. Detailed features[edit source]
5.2.1. BSP features[edit source]
The STM32MP15 distribution for Android™ v1.1.0 is based on the OpenSTLinux BSP v1.2.0 described in the following chapters:
5.2.2. Android features[edit source]
Domain | Feature | STM32MP15 Evaluation board |
Comment |
---|---|---|---|
Boot | Fastboot | Entering this mode through connect ST-Link console (uart) or by HW control | |
Verified boot | |||
A/B mechanism | A/B images available but boot on A by default | ||
Recovery | |||
Multimedia | Audio speaker | audio speaker output can be used only to connect headset | |
Audio headset | not selected by default (no headset detection) | ||
Audio built-in digital micro | limited to one microphone (mono) | ||
Audio USB | |||
Camera | |||
Camera USB | |||
Video SW decode | 480p30 max. without audio | ||
Security | SELinux | ||
Runtime verification | |||
Disk encryption | |||
Trusted environment | OP-TEE | ||
Keystore | only software backup used | ||
Gatekeeper | |||
Network and connectivity | Ethernet | ||
Wifi | Using TP-LINK dongle (TL-WN722N) for test purpose | ||
Wifi hotspot | Using TP-LINK dongle (TL-WN722N) for test purpose | ||
BT / BLE | |||
USB | Mass storage / MTP / PTP | ||
Systems | Boot control | Partially | Available but not enable |
Power control | |||
Thermal control | Only one temperature managed for CPU/GPU (others are stubbed) | ||
Update engine | |||
Sensors | Accelerometer | ||
Gyroscope | |||
Magnetometer | |||
Proximity | |||
Pressure | |||
Temperature | |||
Hub | |||
Debug | ADB (USB) | ||
ADB (Ethernet) | |||
ADEB | Only for SELinux trace | ||
Perfetto | |||
Metrics | boot time | ||
Storage | USB Key | ||
microSD card | |||
eMMC | |||
Others | Lights | ||
Touchscreen |
6. Recommendations for use[edit source]
6.1. Safe use[edit source]
- Flash-load and boot from all supported Flash devices: SDCard and eMMC Flash memories
- Develop Android™ applications, libraries, kernel modules...
- Prototype applications based on ST boards
- Develop your own board based on STM32MP15x
6.2. Non-recommended use[edit source]
- None
7. Main restrictions list[edit source]
7.1. BSP restrictions list[edit source]
- CubeMX configuration panels propose some internal peripheral modes not supported by TF-A or OP-TEE drivers running in Cortex-A7 secure context.
- The following table lists all known restrictions.
IP | Information/Restriction usage in Cortex-A7 secure context |
---|---|
I2C4/I2C6 | The SMBus-two-wire-Interface mode proposed is not supported for Cortex-A7 secure context (TF-A , OP-TEE) as no use case foreseen |
PWR | TF-A and OP-TEE implementation do not support wake-up events for secure IPs assigned to Cortex-A7 secure context |
RCC | The master clock output1 et 2, Audio clock input modes proposed are not applicable for Cortex-A7 secure context (TF-A, OP-TEE) |
SPI6 | The SPI SW driver is not available in OP-TEE implementation for Cortex-A7 secure context |
TAMP | OP-TEE implementation does not support TAMP_IN inputs and TAMP_OUT outputs in Cortex-A7 secure context |
USART1 | OP-TEE implementation does not support USART synchronous mode in Cortex-A7 secure context |
7.2. Android restrictions list[edit source]
STM32P15 distribution for Android™ is provided as example.
In this context:
- Compliance tests (VTS/CTS) are not insured (but they are executed and treated as much as possible)
- Security HAL (Keystore, Gatekeeper, Oemlock) are not available (removed from manifest) or stubbed
- Verified Boot and A/B boot mechanism not available (or partially)
Available on STM32MP15 Evaluation Board but not integrated in STM32P15 distribution for Android™:
- Audio headset detection is not available (need to force the usage)
- Audio RCA is not available (SPDIF input / SPDIF output)
- Audio digital microphone is limited to mono (record usage), without any gain
- Joystick is not available
8. Minor release updates[edit source]
STMicroelectronics can delivers corrections on purpose through github® components.
9. How to get started with st-android-10.0.0-2020-02-07[edit source]
Refer to How to get the software and start with this release.
10. Associated tools[edit source]
Refer to the Referenced tools release notes .
11. Demo applications[edit source]
The STM32MP15 distribution for Android™ is delivered with several applications provided as example.
11.1. STLauncher[edit source]
Simple Launcher application example.
11.2. STCopro M4Echo application[edit source]
Example of application using the proprietary coprocessor service (allow direct interaction with the firmware started on the embedded Arm® Cortex®M4).
The firmware just returns the received character on the opened serial port.
The associated application project is available on github® (compatible with Android Studio IDE): STCoproM4Echo application.
11.3. STCopro M4Example application[edit source]
Example of application using the proprietary coprocessor service (allow direct interaction with the firmware started on the embedded Arm® Cortex®M4).
The firmware generates a signal on the DAC and get back a signal from the ADC. A wire can be added to loop the DAC on ADC. The firmware shows also a simple usage of several blocks available on Arm® Cortex®M4 side.
The associated application project is available on github® (compatible with Android Studio IDE): STCoproM4Example application.
The associated firmware project is available on github® (compatible with System Workbench IDE): STCoproM4Example firmware.
11.4. STCamera[edit source]
Simple Camera application (preview) used to show a way to manage the built-in camera, only compatible with MB1379 camera extension board. An external storage configured as portable device shall be available to allow taking a picture.
11.5. STAudio[edit source]
Simple Audio application used to show a way to play or record audio. The audio files shall be stored in the directory Music of an external storage (ex: USB key) or anywhere in a primary storage (ex: SD card in case of eMMC configuration).
11.6. STVideo[edit source]
Simple Video application used to show a way to play a video. The video files shall be stored in the directory Movies of an external storage (ex: USB key) or anywhere in a primary storage (ex: SD card in case of eMMC configuration).
11.7. STPerf[edit source]
Performance overlay application used to show in foreground the device performances (CPU usage, GPU usage, frame rate). The settings and stop commands are available on notifications system interface.
Limitation: This application is available only in debug build.
12. Change log / Main changes[edit source]
Main differences between v1.1.0 and previous delivery v1.0.0 (see STM32MP15 distribution for Android release note - v1.0.0):
- Switch from Android 9.0.0 (android-9.0.0_r49) to Android 10.0.0 (android-10.0.0_r22)
- Switch from Linux kernel 4.19.49 to 4.19.94
- Switch from STM32MP1 OpenSTLinux BSP V1.1.0 to V1.2.0
- Add CPU@800MHz capability
13. Detailed delivery content[edit source]
13.1. Detailed description of STMicroelectronics modules[edit source]
13.1.1. BSP modules[edit source]
Module name | Path of module | Description | ||||
---|---|---|---|---|---|---|
stm32mp1-bootloader | device/stm/
|
Primary (Trusted Firmware-A) and secondary (Universal Boot Loader for embedded devices) bootloaders for STM32MP | ||||
STM32MPU distribution for Android licenses - v1.1.0 | ||||||
STM32MPU distribution for Android licenses - v1.1.0 | ||||||
stm32mp1-kernel | device/stm/
|
Linux STM32MP Kernel | ||||
STM32MPU distribution for Android licenses - v1.1.0 | ||||||
stm32mp1-tee | device/stm/
|
OPTEE OS for STM32MP | ||||
STM32MPU distribution for Android licenses - v1.1.0 | ||||||
stm32mp1-openocd | device/stm/
|
Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing | ||||
|
13.1.2. Common and peripherals modules[edit source]
Module name | Path of module | Description | ||||
---|---|---|---|---|---|---|
stm32mp1 | device/stm/
|
Configuration of the STM32MP1 distribution for Android | ||||
| ||||||
allocator | device/stm/stm32mp1/
|
STMicroelectronics allocator HAL public header files useful for composer | ||||
| ||||||
audio | device/stm/stm32mp1/
|
STMicroelectronics Audio HAL source code | ||||
| ||||||
bootctrl | device/stm/stm32mp1/
|
STMicroelectronics Boot Control HAL source code and the dedicated misc partition image generator | ||||
| ||||||
camera | device/stm/stm32mp1/
|
STMicroelectronics Camera HAL source code | ||||
| ||||||
composer | device/stm/stm32mp1/
|
STMicroelectronics composer HAL source code | ||||
| ||||||
copro | device/stm/stm32mp1/
|
STMicroelectronics Copro HAL source code | ||||
| ||||||
health | device/stm/stm32mp1/
|
STMicroelectronics Health hardware service source code | ||||
| ||||||
lights | device/stm/stm32mp1/
|
STMicroelectronics Lights HAL source code | ||||
| ||||||
memtrack | device/stm/stm32mp1/
|
STMicroelectronics Memtrack HAL source code | ||||
| ||||||
oemlock | device/stm/stm32mp1/
|
STMicroelectronics OemLock HAL source code (stub version) | ||||
| ||||||
thermal | device/stm/stm32mp1/
|
STMicroelectronics Thermal hardware service source code | ||||
| ||||||
usb | device/stm/stm32mp1/
|
STMicroelectronics Usb hardware service source code | ||||
| ||||||
wifi | device/stm/stm32mp1/
|
STMicroelectronics libwifi HAL source code | ||||
|
13.1.3. Board modules[edit source]
Module name | Path of module | Description | ||||
---|---|---|---|---|---|---|
eval | device/stm/stm32mp1/
|
STMicroelectronics configuration for Android used to generate images adapted to the STM32MP15 Evaluation boards | ||||
|
13.1.4. Coprocessor service module[edit source]
Module name | Path of module | Description | ||||
---|---|---|---|---|---|---|
CoproService | packages/apps/
|
STMicroelectronics coprocessor service | ||||
|
13.1.5. ST application modules[edit source]
Module name | Path of module | Description | ||||
---|---|---|---|---|---|---|
app | vendor/stm/app
|
STMicroelectronics applications associated if required to their respective coprocessor firmware | ||||
|