!!! This project is not longer maintained !!!
Please use https://github.com/dh-electronics/kas-dhsom instead

DHCOM STM32MP1 Yocto BSP Platform
==============================

Supported boards
----------------

DHCOM STM32MP1 with Premium Developer Kit 2 (PDK2)
DHCOM STM32MP1 with DRC02
DHCOR STM32MP1 with Avenger96 Board


Prerequisites
-------------

DH-electronics provides a customized virtual machine for developement based on Debian Stretch.
More information about the VM can be read here:
https://wiki.dh-electronics.com/index.php/Virtual_Machine_for_Application_Development

In addition its necessary to install the packages "texinfo" and "g++multilib" aswell.

If you are using any other linux system, please take a look at the official yocto quickstart guide first:
https://www.yoctoproject.org/docs/3.0/brief-yoctoprojectqs/brief-yoctoprojectqs.html

The required packages for your build host are specified here:
https://www.yoctoproject.org/docs/3.0/ref-manual/ref-manual.html#required-packages-for-the-build-host


Quick Start
-----------

1. Install Google's repo utility

$: mkdir ~/bin
$: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$: chmod a+x ~/bin/repo

  You can choose any other directory to download the tool. Just make sure that its available in your $PATH variable.


2. Create a project directory

$: mkdir dhcom-yocto-bsp


3. Initialize repositories and download the sources

$: repo init -u https://github.com/dh-electronics/dhcom_stm32mp1-bsp-platform -b $BRANCH

  For Yocto Dunfell, choose branch "dunfell". 
  If you are a customer with specific layer settings, your branch is "dunfell_projectname"

  After the repositories are successfully initialized, download the sources

$: repo sync

4. Available Machine Types

STM32MP1:
  dh-stm32mp1-dhcom-pdk2 - DHCOM STM32MP1 for PDK2
  dh-stm32mp1-dhcor-avenger96 - DHCOR STM32MP1 for AV96
  dh-stm32mp1-dhcom-drc02 - DHCOM STM32MP1 for DRC02
  dh-stm32mp1-dhcom-picoitx - DHCOM STM32MP1 for picoITX

5. Available Image Types

  dh-image-demo: Weston image with QT5 and several examples and demos 
  core-image-minimal: minimal configuration

6. Setup Yocto environment and build your Image (Example: DHCOM STM32MP1)

$: MACHINE=dh-stm32mp1-dhcom-common-pdk2 DISTRO=dhlinux source ./setup-environment build
$: bitbake dh-image-demo

  For other DHCOM modules or customer specific settings, $MACHINE and Bitbake-Image might differ.


7. Applying your image to SD card

  Yocto builds a .wic SD card image which is stored in the build directory.
  Make sure to change the device name in the following command before call.

$: cd tmp/deploy/images/dh-stm32mp1-dhcom-common-pdk2/
$: unxz -c dh-image-demo-dh-stm32mp1-dhcom-common-pdk2.wic.xz | sudo dd of=/dev/sdX bs=1M iflag=fullblock oflag=direct conv=fsync status=progress

Optional: RT patched sources

  There is also an option to build a rt patched linux kernel. This is just for experimental usage and NOT maintained by dh-electronics.
  Machines:
  dh-stm32mp1-dhcom-common-pdk2-rt - DHCOM STM32MP1 for PDK2
  dh-stm32mp1-dhcor-common-avenger96-rt - DHCOR STM32MP1 for AV96
  dh-stm32mp1-dhcom-common-drc02-rt - DHCOM STM32MP1 for DRC02

  Image(based on core-image-rt):
  dhsom-core-image-rt

Optional: fitImage with initramfs

  The fitImage can be provided with a small initramfs based on poky distro and containing swupdate.
  There are a few manual changes needed to adjust your Yocto project.

  First set up your Yocto project as usual with the following environment:

$:MACHINE=dh-stm32mp1-dhcom-pdk2-update DISTRO=poky source ./setup-environment build-swu

  After your build directory is created, you need to add the following line to "build-swu/conf/bblayers.conf"
  ${BSPDIR}/sources/poky/meta-poky \

  Build the image:
$: bitbake core-image-swupdate

  The fitImage can be found in "tmp/deploy/images/dh-stm32mp1-dhcom-pdk2-update/"