├── default.xml └── README.md /default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OSD32MP1 Debian SDK v3.0 2 | This repository contains the list of repositories used for OSD32MP1 Debian SDK v3.0 3 | 4 | ## Introduction 5 | 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. 6 | 7 | The following repositories make up OSD32MP1 Debian SDK:: 8 | 9 | | Package | URL | 10 | | ------- | --- | 11 | | TF-A Source code | https://github.com/STMicroelectronics/arm-trusted-firmware.git | 12 | | U-Boot Source code | https://github.com/STMicroelectronics/u-boot.git | 13 | | Linux kernel Source code | https://github.com/STMicroelectronics/linux.git | 14 | | GCNano Binaries | https://github.com/STMicroelectronics/gcnano-binaries.git | 15 | | STM32Cube MP1 Package | https://github.com/STMicroelectronics/STM32CubeMP1.git | 16 | | Debian multistrap Source code | https://github.com/octavosystems/osd32mp1-multistrap.git | 17 | | Docker image Source code | https://github.com/octavosystems/osd32mp1-debian-docker.git | 18 | | Build tools source code | https://github.com/octavosystems/osd32mp1-build-tools.git | 19 | 20 | ## Boards supported: 21 | | Board | Webpage | 22 | | ----- | ------- | 23 | | OSD32MP1-RED | https://octavosystems.com/octavo_products/osd32mp1-red/ | 24 | 25 | ## Requirements 26 | Tested on Ubuntu 20.04 LTS 27 | 28 | The following packges are recommended: 29 | 30 | | Package | Version | 31 | | ------- | ------- | 32 | | repo | v2.13 or higher| 33 | | git | 2.17 or higher| 34 | | Python | 3.x | 35 | | Docker | 19.x | 36 | | qemu-user-static | 1:4.2-3ubuntu6.19 | 37 | | STM32MP1 Cube Programmer | 2.9 or higher| 38 | 39 | 40 | ## OSD32MP1 Target binary versions: 41 | 42 | The following version of the image are supported in release: 43 | 44 | | Package | Version | Source URL | 45 | | ------- | ------- | ---------- | 46 | | TF-A | v2.4-stm32mp-r1 | https://github.com/STMicroelectronics/arm-trusted-firmware.git | 47 | | U-Boot | 2020.10-stm32mp-r1 | https://github.com/STMicroelectronics/u-boot.git | 48 | | Linux Kernel | v5.10-stm32mp-r1 | https://github.com/STMicroelectronics/linux.git | 49 | | GCNano(binaries) | gcnano-6.4.3-binaries | https://github.com/STMicroelectronics/gcnano-binaries.git | 50 | | STM32CubeMP1 | 1.4 | https://github.com/STMicroelectronics/STM32CubeMP1.git | 51 | 52 | ## How to use the SDK 53 | ### Setup Host computer 54 | 1. ```sudo apt-get update``` 55 | 2. ```sudo apt-get upgrade``` 56 | 3. ```sudo apt-get install git docker.io qemu-user-static``` 57 | 4. ```sudo systemctl enable docker``` 58 | 5. ```sudo systemctl start docker``` 59 | 6. Install repo: https://stackoverflow.com/questions/4350344/how-to-install-androids-repo-on-my-ubuntu-system 60 | 61 | Install Cube Programmer from here: https://www.st.com/en/development-tools/stm32cubeprog.html 62 | Please see https://wiki.st.com/stm32mpu/wiki/STM32CubeProgrammer for Cube Programmer installation instructions and setup. 63 | 64 | ### Get SDK source code 65 | 1. ```mkdir ~/osd32mp1-workspace``` 66 | 2. ```cd ~/osd32mp1-workspace``` 67 | 3. ```repo init -u https://github.com/octavosystems/osd32mp1-debian``` 68 | 4. ```repo sync``` 69 | 70 | NOTE: If you encounter the following error: "repo init -u https://github.com/octavosystems/osd32mp1-debian failed by responsing fatal: Couldn't find remote ref refs/heads/master", you will need to use the following command for #3: 71 | 72 | ```repo init -u https://github.com/octavosystems/osd32mp1-debian -b main``` 73 | 74 | ### Compile docker image 75 | 1. ```cd ~/osd32mp1-workspace/docker``` 76 | 2. ```sudo make build``` 77 | 78 | ### Compile target image for OSD32MP1-RED V1_2 79 | 1. ```cd ~/osd32mp1-workspace/docker``` 80 | 2. ```sudo make run``` 81 | 3. ```make all``` 82 | 83 | ### Outputs 84 | The following outputs are generated in ~/osd32mp1-workspace/deploy : 85 | 86 | | Output | Filename | Comment | 87 | | ------ | -------- | ------- | 88 | | 1 | tf-a-stm32mp157c-osd32mp1-red-v1_2-emmc.stm32 | Binary for OSD32M1 arm-trusted-firmware eMMC | 89 | | 2 | tf-a-stm32mp157c-osd32mp1-red-v1_2-sdcard.stm32 | Binary for OSD32MP1 arm-trsuted-firmware SD card | 90 | | 3 | tf-a-stm32mp157c-osd32mp1-red-v1_2-usb.stm32 | Binary for OSD32MP1 arm-trsuted-firmware SD card USB boot | 91 | | 4 | fip-stm32mp157c-osd32mp1-red-v1_2-trusted.bin | FiP Binary for OSD32MP1 U-Boot | 92 | | 4 | FlashLayout_sdcard_stm32mp157c-osd32mp1-red-v1_2-trusted.tsv | Flash layout file for OSD32MP1-RED trusted - SD card | 93 | | 5 | FlashLayout_sdcard_stm32mp157c-osd32mp1-red-v1_2-trusted.raw | Binary image for OSD32MP1-RED trusted - SD card | 94 | | 6 | FlashLayout_emmc_stm32mp157c-osd32mp1-red-v1_2-trusted.tsv | Flash layout file for OSD32MP1-RED trsudted - eMMC | 95 | | 7 | octavo-bootfs-debian-lxqt-stm32mp157c-osd32mp1-red-v1_2.ext4 | BOOTFS binary for OSD32MP1-RED | 96 | | 8 | octavo-rootfs-debian-lxqt-emmc-stm32mp157c-osd32mp1-red-v1_2.ext4 | ROOTFS binary for OSD32MP1-RED - eMMC | 97 | | 9 | octavo-rootfs-debian-lxqt-sdcard-stm32mp157c-osd32mp1-red-v1_2.ext4 | ROOTFS binary for OSD32MP1-RED - SD card | 98 | | 10 | octavo-vendorfs-debian-lxqt-stm32mp157c-osd32mp1-red-v1_2.ext4 | VENDORFS binary for OSD32MP1-RED | 99 | 100 | ### Deploy on SD card (where sdX is the device assignment for SD card) 101 | 1. ```cd ~/osd32mp1-workspace/deploy/``` 102 | 2. ```sudo dd if=FlashLayout_sdcard_stm32mp157c-osd32mp1-red-v1_2-trusted.raw of=/dev/sdX bs=1M conv=fdatasync status=progress``` 103 | 104 | ### Flash eMMC 105 | STM32MP1 Cube Programmer is required for this procedure 106 | 107 | 1. Set boot mode for OSD32MP1-RED to USB boot (000) 108 | 2. Connect USB-C cable between OSD32MP1-RED and Host computer. 109 | 110 | To determine device numnber for the board connected: 111 | 112 | 3. ```STM32_Programmer_CLI -l USB``` 113 |
      -------------------------------------------------------------------
114 |                         STM32CubeProgrammer v2.9.0                  
115 |       -------------------------------------------------------------------
116 | 
117 | =====  DFU Interface   =====
118 | 
119 | Total number of available STM32 device in DFU mode: 1
120 | 
121 |   Device Index           : USB1
122 |   USB Bus Number         : 003
123 |   USB Address Number     : 002
124 |   Product ID             : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000
125 |   Serial number          : 002700223239511737383434
126 |   Firmware version       : 0x0110
127 |   Device ID              : 0x0500
128 | 
129 | 130 | The above device indicates the board is connected as USB1. 131 | 132 | Flash the eMMC 133 | 134 | 4. ```STM32_Programmer_CLI -c port=USB1 -w FlashLayout_emmc_stm32mp157c-osd32mp1-red-v1_2-trusted.tsv``` 135 | 136 | 137 | ## How to contribute 138 | 1. Clone repo with a new branch: 139 | ```git checkout https://github.com/octavosystems/xxx -b new_branch_name``` 140 | 2. Change and test 141 | 3. Submit pull request 142 | 143 | --------------------------------------------------------------------------------