This repository contains the list of repositories used for OSD32MP1 Debian SDK v3.0
OSD32MP1 Debian SDK can be used to develop Debian Linux images for OSD32MP1 based platforms. The SDK runs on host desktop preferably runnning Ubuntu. Docker is used to containerize the build environment. Souce code from ST (OpenSTLinux) is used, for TF-A, U-Boot, Linux kernel, GCNano and STM32CubeMP1. So, the SDK is compatible with software from ST. Binary images for both SD card and eMMC can be generated. Cube Programmer can be used to flash the eMMC via USB.
The following repositories make up OSD32MP1 Debian SDK::
Package | URL |
---|---|
TF-A Source code | https://github.com/STMicroelectronics/arm-trusted-firmware.git |
U-Boot Source code | https://github.com/STMicroelectronics/u-boot.git |
Linux kernel Source code | https://github.com/STMicroelectronics/linux.git |
GCNano Binaries | https://github.com/STMicroelectronics/gcnano-binaries.git |
STM32Cube MP1 Package | https://github.com/STMicroelectronics/STM32CubeMP1.git |
Debian multistrap Source code | https://github.com/octavosystems/osd32mp1-multistrap.git |
Docker image Source code | https://github.com/octavosystems/osd32mp1-debian-docker.git |
Build tools source code | https://github.com/octavosystems/osd32mp1-build-tools.git |
Board | Webpage |
---|---|
OSD32MP1-RED | https://octavosystems.com/octavo_products/osd32mp1-red/ |
Tested on Ubuntu 20.04 LTS
The following packges are recommended:
Package | Version |
---|---|
repo | v2.13 or higher |
git | 2.17 or higher |
Python | 3.x |
Docker | 19.x |
qemu-user-static | 1:4.2-3ubuntu6.19 |
STM32MP1 Cube Programmer | 2.9 or higher |
The following version of the image are supported in release:
Package | Version | Source URL |
---|---|---|
TF-A | v2.4-stm32mp-r1 | https://github.com/STMicroelectronics/arm-trusted-firmware.git |
U-Boot | 2020.10-stm32mp-r1 | https://github.com/STMicroelectronics/u-boot.git |
Linux Kernel | v5.10-stm32mp-r1 | https://github.com/STMicroelectronics/linux.git |
GCNano(binaries) | gcnano-6.4.3-binaries | https://github.com/STMicroelectronics/gcnano-binaries.git |
STM32CubeMP1 | 1.4 | https://github.com/STMicroelectronics/STM32CubeMP1.git |
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git docker.io qemu-user-static
sudo systemctl enable docker
sudo systemctl start docker
- Install repo: https://stackoverflow.com/questions/4350344/how-to-install-androids-repo-on-my-ubuntu-system
Install Cube Programmer from here: https://www.st.com/en/development-tools/stm32cubeprog.html Please see https://wiki.st.com/stm32mpu/wiki/STM32CubeProgrammer for Cube Programmer installation instructions and setup.
mkdir ~/osd32mp1-workspace
cd ~/osd32mp1-workspace
repo init -u https://github.com/octavosystems/osd32mp1-debian
repo sync
cd ~/osd32mp1-workspace/docker
sudo make build
cd ~/osd32mp1-workspace/docker
sudo make run
make all
The following outputs are generated in ~/osd32mp1-workspace/deploy :
Output | Filename | Comment |
---|---|---|
1 | tf-a-stm32mp157c-osd32mp1-red-emmc.stm32 | Binary for OSD32M1 arm-trusted-firmware eMMC |
2 | tf-a-stm32mp157c-osd32mp1-red-sdcard.stm32 | Binary for OSD32MP1 arm-trsuted-firmware SD card |
3 | tf-a-stm32mp157c-osd32mp1-red-usb.stm32 | Binary for OSD32MP1 arm-trsuted-firmware SD card USB boot |
4 | fip-stm32mp157c-osd32mp1-red-trusted.bin | FiP Binary for OSD32MP1 U-Boot |
4 | FlashLayout_sdcard_stm32mp157c-osd32mp1-red-trusted.tsv | Flash layout file for OSD32MP1-RED trusted - SD card |
5 | FlashLayout_sdcard_stm32mp157c-osd32mp1-red-trusted.raw | Binary image for OSD32MP1-RED trusted - SD card |
6 | FlashLayout_emmc_stm32mp157c-osd32mp1-red-trusted.tsv | Flash layout file for OSD32MP1-RED trsudted - eMMC |
7 | octavo-bootfs-debian-lxqt-stm32mp157c-osd32mp1-red.ext4 | BOOTFS binary for OSD32MP1-RED |
8 | octavo-rootfs-debian-lxqt-emmc-stm32mp157c-osd32mp1-red.ext4 | ROOTFS binary for OSD32MP1-RED - eMMC |
9 | octavo-rootfs-debian-lxqt-sdcard-stm32mp157c-osd32mp1-red.ext4 | ROOTFS binary for OSD32MP1-RED - SD card |
10 | octavo-vendorfs-debian-lxqt-stm32mp157c-osd32mp1-red.ext4 | VENDORFS binary for OSD32MP1-RED |
cd ~/osd32mp1-workspace/deploy/
sudo dd if=FlashLayout_sdcard_stm32mp157c-osd32mp1-red-trusted.raw of=/dev/sdX bs=1M conv=fdatasync status=progress
STM32MP1 Cube Programmer is required for this procedure
- Set boot mode for OSD32MP1-RED to USB boot (000)
- Connect USB-C cable between OSD32MP1-RED and Host computer.
To determine device numnber for the board connected:
STM32_Programmer_CLI -l USB
------------------------------------------------------------------- STM32CubeProgrammer v2.9.0 ------------------------------------------------------------------- ===== DFU Interface ===== Total number of available STM32 device in DFU mode: 1 Device Index : USB1 USB Bus Number : 003 USB Address Number : 002 Product ID : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000 Serial number : 002700223239511737383434 Firmware version : 0x0110 Device ID : 0x0500
The above device indicates the board is connected as USB1.
Flash the eMMC
STM32_Programmer_CLI -c port=USB1 -w FlashLayout_emmc_stm32mp157c-osd32mp1-red-trusted.tsv
- Clone repo with a new branch:
git checkout https://github.com/octavosystems/xxx -b new_branch_name
- Change and test
- Submit pull request