Difference between revisions of "How to compile the device tree with the Distribution Package"

[quality revision] [quality revision]
m (Update layer.conf file)
m
 



Applicable for STM32MP13x lines, STM32MP15x lines

1 Introduction[edit]

This article is intended for Yocto experts, or people who have some practical experience of the Yocto environmment.

This section describes the steps needed to create and configure a demo layer using DeviceTree files from the STM32CubeMX tool, and to add and configure a machine similar to those already supported by the OpenSTLinux Distribution Package (in particular the machine delivered inside the existing STM32MP BSP layer 'addons').

Reminder: this addon-layer is deployed under the following path in the delivery : <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-st-stm32mp-addons/

2 Creating a new open embedded layer for your demo[edit]

You first need to create a new layer. See the latest How to create a new open embedded layer

After creation, you have under <path of OpenSTLinux distribution delivery>/layers/meta-st/:

$ tree meta-my-demo-layer
meta-my-demo-layer
├── conf
│   └── layer.conf
├── COPYING.MIT
├── README
└── recipes-example
    └── example
        └── example.bb
├── COPYING.MIT
└── README

3 directories, 4 files

2.1 Update layer.conf file[edit]

Open the layer.conf file and add the lines below for the licenses, demo layer path, and dependency with the STM32MP BSP layer 'addons' :

EULA_FILE_ST_:stm32mpmydemo = "${LAYERDIR}/conf/eula/${MACHINE}"
EULA_FILE_ST_MD5SUM_:stm32mpmydemo = "8b505090fb679839cefbcc784afe8ce9"

#Inform bitbake for adding another location to search for licenses
LICENSE_PATH += "${LAYERDIR}/files/licenses"

# Set a variable to get the STM32MP MX BSP location
STM32MP_MY_DEMO_BASE = "${LAYERDIR}"

# This should only be incremented on significant changes that may
# cause compatibility issues with other layers
LAYERVERSION_meta-my-demo-layer = "1"

LAYERDEPENDS_meta-my-demo-layer = "stm-st-stm32mp-mx"

# OpenEmbedded compatibility information
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_meta-my-demo-layer = "1"
LAYERSERIES_COMPAT_meta-my-demo-layer = "dunfellkirkstone"
Info white.png Information
LAYERSERIES_COMPAT must be aligned with the version of OpenEmbedded used.
Please refer to https://wiki.yoctoproject.org/wiki/Releases

2.2 Create the machine for your demo[edit]

2.2.1 Prepare the machine configuration file[edit]

  • Copy the machine delivered inside the existing STM32MP BSP layer 'addons' into your demo layer
$ cp <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-st-stm32mp-addons/conf/machine/stm32mp1stm32mp1X-mx.conf <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/conf/machine/stm32mp1-demo.conf

  • Open stm32mp1-demo.conf and update the line below
#@NEEDED_BSPLAYERS: layers/meta-openembedded/meta-oe layers/meta-openembedded/meta-python layers/meta-st/meta-st-stm32mp-addons

  • Replace STM32MP_MX_BASE by STM32MP_MY_DEMO_BASE
  • Add these lines after the series of includes:
# Define specific common machine name
MACHINEOVERRIDES .= ":stm32mpmydemo"
  • Uncomment variables to configure your own Boot Mode Choice, Boot Device Choice, Board Type Choice, DeviceTree files and path

2.2.2 Configure the machine configuration file for your demo[edit]

In the customer machine file, move to User machine customization sections paragraph to configure your machine:

  • Boot Scheme
To select your boot scheme configuration(s), comment and uncomment the BOOTSCHEME_LABELS lines.
  • Boot Device Choice
To select your boot device configuration(s), comment and uncomment the BOOTDEVICE_LABELS lines.
  • Support Feature Choice
To select additional features to enable on board, uncomment the "MACHINE_FEATURES" proposed lines.
  • Specific firmwares and kernel modules configuration
This section allows user to configure some specificites related to its board hardware.
- KERNEL_MODULE_AUTOLOAD you may need to feed this variable with the list of kernel modules that need to be loaded at boot time, such as 'goodix' for current touch-screen used on STM32MP157C-EV1 evaluation board.
- BLUETOOTH_LIST in case you enable the bluetooth feature for your machine, you should set, at least, the firmware module to use for your hardware (e.g. 'linux-firmware-bluetooth-bcm4343' for STM32MP157C-DK2 discovery board).
- WIFI_LIST in case you enable the wifi feature for your machine, you should set, at least, the firmware module to use for your hardware (e.g.'linux-firmware-bcm43430' for STM32MP157C-DK2 discovery board).
  • CubeMX Project config
You have to uncomment and configure the following variables to set your CubeMX project:
- CUBEMX_DTB name of CubeMX generated device tree files, without file extension (e.g. stm32mp135f-<ProjectName>-mx)
- CUBEMX_PROJECT path of CubeMX generated device tree files relative to layer path folder (e.g. mx/STM32MP135F-DK/my-demo/DeviceTree/my-demo)
- CUBEMX_SOC_PACKAGE indicates (in upper case) which STM32MP package is used:
- A: no crypt
- C: crypt
- D: no crypt, performance
- F: crypt, performance
This setting allows to set on Optee-os build the CFG_STM32_CRYP config switch to manage the presence of crypt hardware or not.
- CUBEMX_BOARD_DDR_SIZE indicates the size of DDR available on BOARD in MB unit:
- 512: 521MB size
- 1024: 1GB size
This setting allows to set on Optee-os build the CFG_DRAM_SIZE config switch.
- CUBEMX_SOC_DVFS_OFF indicates if you like to disable the DVFS which are activated by default.
- 0: Nothing specific done extra configuration switch defined
- 1: Manage extra config switch for Optee-os build

In order to give a better view on how to configure these variables, some machine samples are provided to show how to set-up a disco and eval board CubeMX machine: refer to conf/machine/examples from meta-st-stm32mp-addons layer.



2.3 Associate EULA with the new demo machine[edit]

Copy the eula folder delivered inside the existing STM32MP BSP layer 'addons' into your demo layer

$ cp -rfRf <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-st-stm32mp-addons/conf/eula/ <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/conf/.

Then replace the existing Cleanup unexpected symbolic links from eula folder newly populated:

$ find <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/conf/eula -type l -exec rm -f {} \;

Then create the symbolic link with the machine used for your demo:

$ rm stm32mp1-mxcd <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/conf/eula
$ ln -ssf ST_EULA_SLA stm32mp1-demo

2.4 Move DeviceTree files and project coming from STM32CubeMX tool[edit]

The principle is that the user generates devicetree files for the targeted demo from the STM32CubeMX tool.

Warning white.png Warning
Most of the time, generated devicetree files - mainly user sections - must be reworked by the end user for compilation and functional purposes. Each demo is delivered with an application note that describe changes applied on STM32CubeMX devicetree files
.

These files are then moved into the “mx” folder created into your demo layer  : <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/mx/

Sub-folders are created and populated with the generated devicetree files:

mx/${CUBEMX_PROJECT}/kernel
mx/${CUBEMX_PROJECT}/u-boot
mx/${CUBEMX_PROJECT}/tf-a
mx/${CUBEMX_PROJECT}/optee-os

With CUBEMX_PROJECT that is equal to the value defined inside the machine used for the demo.

2.5 Update the README file[edit]

Please update the README file with the information needed for building and executing the demo.

2.6 Clean up useless content[edit]

You can delete the content of the recipes-example folder created by the create-layer command.

After making all of the updates, your demo layer should be similar to:

$ tree meta-my-demo-layer
meta-my-demo-layer
├── conf
│   └──├── eula
│      ├── └── ST_EULA_SLA
│      ├── └── stm32mp1-demo -> ST_EULA_SLA
│       └──  ...
│   └──├── layer.confmachine
│   └── machine │       └── stm32mp1-demo.conf
├── COPYING.MIT ├── mx
│   └── STM32MP157C-EV1
│        └── my-demo
│            └── DeviceTree
│  layer.conf
├── mx
│   └── ${CUBEMX_PROJECT}
│              └── my-demo
│                    └── kernel
│  ├── kernel
│                      └── stm32mp157cstm32mp1XXx-my-demo-mx.dts
│                    └── tf-a
│  ├── optee-os
│                      └── stm32mp157cstm32mp1XXx-my-demo-mx.dts
│                        └── stm32mp15-mx.h
│  ├── tf-a
│               ├──   └── u-boot
│  stm32mp1X-mx.dtsi
│                      └── stm32mp157c├── stm32mp1XXx-my-demo-mx.dts
│                        └── stm32mp157cstm32mp1XXx-my-demo-umx-bootfw-config.dtsidts
│                        └── stm32mp15u-mx.hboot
│                  ├──  └── optee-os
│  stm32mp1XXx-my-demo-mx.dts
│                      └── stm32mp157cstm32mp1XXx-my-demo.dts
-mx-u-boot.dtsi
├── COPYING.MIT
└── README

3 Adding specific recipes and content necessary for your demo[edit]

Examples of further add-on components:

  • Recipes for installing distro-specific configuration files
  • Any image recipes specific to user distribution
  • A psplash append file for a branded splash screen
  • Any other append files to make custom changes

Some other added components (*bb) are more specific: images, system services, and so on (a non-exhaustive list is shown below):

  • Recipes-core for psplash screen, systemd services
  • Recipes-samples for example images

...


{{InternalInfo|This article can be reviewed but not moved to APPROVED state
What is described below will be delivered after MMDV, planned with maintenance version V1.1.0}}
==<noinclude>

{{ReviewsComments|-- [[User:Yves Coppeaux|Yves Coppeaux]] ([[User talk:Yves Coppeaux|talk]]) 16:56, 20 September 2022 (CEST)<br />bad title for this page but right category, it is not only DTS compile but a permanent distribution update, with a new machine definition via a customize meta-layer included DTS and if needed some recipes<br>

The update of DTS can be made with the update of the meta-st-stm32mp-addons, right ? so it is not mandatory to create a new layer.<br>

If we keep the option to create a new layer, I suggest to keep the name my-custo-layer instead of my-demo-layer created here  [[How to create a new open embedded layer]] }}
{{ReviewsComments | [[User:Romuald Jeanne|Romuald Jeanne]] ([[User talk:Romuald Jeanne|talk]]) 15:57, 21 November 2022 (CET) - This section deals with CubeMX DTS generated file that user want to build through our distribution package. It refers to [[How to create a new open embedded layer]] to initiate the needed layer, but then it explains how to configure the machine that will set-up use of CubeMX DTS files as source. We don't want user to directly modify our meta-st-stm32mp-addons layer, this layer is a sample one to help user to create its own layer and machine to compile the CubeMX DTS files.}}

{{ApplicableFor
|MPUs list=STM32MP13x, STM32MP15x
|MPUs checklist=STM32MP13x,STM32MP15x
}}</noinclude>

==Introduction==
This article is intended for Yocto experts, or people who have some practical experience of the Yocto environmment.<br><br>

This section describes the steps needed to create and configure a demo layer using DeviceTree files from the STM32CubeMX tool, and to add and configure a machine similar to those already supported by the OpenSTLinux Distribution Package (in particular the machine delivered inside the existing STM32MP BSP layer 'addons').<br>


Reminder: this addon-layer is deployed under the following path in the delivery : '''<path of OpenSTLinux distribution delivery>/layers/meta-st/meta-st-stm32mp-addons/'''

==Creating a new open embedded layer for your demo==
You first need to create a new layer. See the latest  [[How to create a new open embedded layer]]<br><br>

After creation, you have under '''<path of OpenSTLinux distribution delivery>/layers/meta-st/''':
<pre>

$ tree meta-my-demo-layer
meta-my-demo-layer
├── conf
│   └── layer.conf
├── COPYING.MIT
├── README
└── recipes-example
    └── example
        └── example.bb
recipes-example
│   └── example
│       └── example.bb
├── COPYING.MIT
└── README
3 directories, 4 files</pre>


===Update layer.conf file===
Open the layer.conf file and add the lines below for the licenses,  demo layer path, and dependency with the STM32MP BSP layer 'addons' :

 EULA_FILE_ST_:{{Highlight|stm32mpmydemo}} = "${LAYERDIR}/conf/eula/${MACHINE}"
 EULA_FILE_ST_MD5SUM_:{{Highlight|stm32mpmydemo}} = "8b505090fb679839cefbcc784afe8ce9"

 #Inform bitbake for adding another location to search for licenses
 LICENSE_PATH += "${LAYERDIR}/files/licenses"

 # Set a variable to get the STM32MP MX BSP location
 {{Highlight|STM32MP_MY_DEMO_BASE}} = "${LAYERDIR}"

 # This should only be incremented on significant changes that may
 # cause compatibility issues with other layers
 LAYERVERSION_meta-my-demo-layer = "1"

 LAYERDEPENDS_meta-my-demo-layer = "{{Highlight|stm-st-stm32mp-mx}}"

 # OpenEmbedded compatibility information
 # This should only be incremented on significant changes that will
 # cause compatibility issues with other layers
 LAYERVERSION_meta-my-demo-layer = "1"
 LAYERSERIES_COMPAT_meta-my-demo-layer = "dunfellkirkstone"

{{Info| LAYERSERIES_COMPAT must be aligned with the version of OpenEmbedded used.<br>Please refer to https://wiki.yoctoproject.org/wiki/Releases}}

===Create the machine for your demo=======Prepare the machine configuration file====* Copy the machine delivered inside the existing STM32MP BSP layer 'addons' into your demo layer

 $ cp <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-st-stm32mp-addons/conf/machine/'''stm32mp1stm32mp1X-mx.conf''' <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/conf/machine/'''stm32mp1-demo.conf'''

* Open stm32mp1-demo.conf and update the line below
 #@NEEDED_BSPLAYERS: layers/meta-openembedded/meta-oe layers/meta-openembedded/meta-python {{Highlight|layers/meta-st/meta-st-stm32mp-addons}}

* Replace STM32MP_MX_BASE by {{Highlight|STM32MP_MY_DEMO_BASE}}

* Add these lines after the series of includes: 

 # Define specific common machine name
 MACHINEOVERRIDES .= ":{{Highlight|stm32mpmydemo}}"
* Uncomment variables to configure your own {{Highlight|Boot Mode Choice}}, {{Highlight|Boot Device Choice}},  {{Highlight|Board Type Choice, DeviceTree files and path}}
====Configure the machine configuration file for your demo====
{{:How to create your own machine}}
===Associate EULA with the new demo machine===
Copy the eula folder delivered inside the existing STM32MP BSP layer 'addons' into your demo layer 

 $ cp -rfRf <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-st-stm32mp-addons/conf/'''eula'''/ <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/conf/.
Then replace the existing Cleanup unexpected symbolic links from eula folder newly populated:

 $ find <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/conf/eula -type l -exec rm -f {} \;

Then create the symbolic link with the machine used for your demo:

 $ rm stm32mp1-mx
 $ ln -scd <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/conf/eula
 $ ln -sf ST_EULA_SLA stm32mp1-demo

===Move DeviceTree files and project coming from STM32CubeMX tool===
The principle is that the user generates devicetree files for the targeted demo from the STM32CubeMX tool.
{{Warning|'''Most of the time, generated devicetree files - mainly user sections - must be reworked by the end user for compilation and functional purposes. Each demo is delivered with an application note that describe changes applied on STM32CubeMX devicetree files'''}}.
{{InternalInfo|For a motor control demo the application note is located [https://epm-st.st.com/ProjectServerST/Wildcat%20APPLI%20Introduction%20Package/Working%20Documents/Support%20and%20Application/Demonstrations/MotorControlAN_v1.01.docx here]}}
These files are then moved into the “mx” folder created into your demo layer  : '''<path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/mx/'''

Sub-folders are created and populated with the generated devicetree files:
 mx/${CUBEMX_PROJECT}/kernel
 mx/${CUBEMX_PROJECT}/u-boot
 mx/${CUBEMX_PROJECT}/tf-a
 mx/${CUBEMX_PROJECT}/optee-os

With {{Highlight|CUBEMX_PROJECT}} that is equal to the value defined inside the machine used for the demo.

===Update the README file===
Please update the README file with the information needed for building and executing the demo.

===Clean up useless content===
You can delete the content of the recipes-example folder created by the create-layer command.

After making all of the updates, your demo layer should be similar to:
<pre>

$ tree meta-my-demo-layer
meta-my-demo-layer
├── conf
│   └──├── eula
│       └── │   ├── ST_EULA_SLA
│       └── │   ├── stm32mp1-demo -> ST_EULA_SLA
│       └──  ...
│   └── layer.conf
│   └── machine
│       ├── machine
│   │   └── stm32mp1-demo.conf├── COPYING.MIT
├── mx
│   └── STM32MP157C-EV1
│        └── my-demo
│            └── DeviceTree
│                └── my-demo
│                    └── kernel
│                        └── stm32mp157c-my-demo.dts
│                    └── tf-a
│                        └── stm32mp157c-my-demo.dts
│                        └── stm32mp15-mx.h
│                    └── u-boot
│                        └── stm32mp157c-my-demo.dts
│                        └── stm32mp157c-my-demo-u-boot.dtsi
│                        └── stm32mp15-mx.h
│                    └── optee-os
│                        └── stm32mp157c-my-demo.dts│   └── layer.conf
├── mx
│   └── ${CUBEMX_PROJECT}
│            ├── kernel
│            │   └── stm32mp1XXx-my-demo-mx.dts
│            ├── optee-os
│            │   └── stm32mp1XXx-my-demo-mx.dts
│            ├── tf-a
│            │   ├── stm32mp1X-mx.dtsi
│            │   ├── stm32mp1XXx-my-demo-mx.dts
│            │   └── stm32mp1XXx-my-demo-mx-fw-config.dts
│            └── u-boot
│                ├── stm32mp1XXx-my-demo-mx.dts
│                └── stm32mp1XXx-my-demo-mx-u-boot.dtsi
├── COPYING.MIT└── README</pre>


==Adding specific recipes and content necessary for your demo==

Examples of further add-on components: 
* Recipes for installing distro-specific configuration files
* Any image recipes specific to user distribution
* A ''psplash append file'' for a branded splash screen
* Any other append files to make custom changes

Some other added components (*bb) are more specific: images, system services, and so on (a non-exhaustive list is shown below):
* Recipes-core for ''psplash screen'', ''systemd services''
* Recipes-samples for example images
...<br>

<noinclude>

[[Category:How to customize software]]
{{PublicationRequestId | 12272| 2019-06-07}}</noinclude>
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{InternalInfo|This article can be reviewed but not moved to APPROVED state
+
<noinclude>
What is described below will be delivered after MMDV, planned with maintenance version V1.1.0}}
+
{{ReviewsComments|-- [[User:Yves Coppeaux|Yves Coppeaux]] ([[User talk:Yves Coppeaux|talk]]) 16:56, 20 September 2022 (CEST)<br />bad title for this page but right category, it is not only DTS compile but a permanent distribution update, with a new machine definition via a customize meta-layer included DTS and if needed some recipes<br>
  +
The update of DTS can be made with the update of the meta-st-stm32mp-addons, right ? so it is not mandatory to create a new layer.<br>
  +
If we keep the option to create a new layer, I suggest to keep the name my-custo-layer instead of my-demo-layer created here  [[How to create a new open embedded layer]] }}
  +
{{ReviewsComments | [[User:Romuald Jeanne|Romuald Jeanne]] ([[User talk:Romuald Jeanne|talk]]) 15:57, 21 November 2022 (CET) - This section deals with CubeMX DTS generated file that user want to build through our distribution package. It refers to [[How to create a new open embedded layer]] to initiate the needed layer, but then it explains how to configure the machine that will set-up use of CubeMX DTS files as source. We don't want user to directly modify our meta-st-stm32mp-addons layer, this layer is a sample one to help user to create its own layer and machine to compile the CubeMX DTS files.}}
  +
 
  +
{{ApplicableFor
  +
|MPUs list=STM32MP13x, STM32MP15x
  +
|MPUs checklist=STM32MP13x,STM32MP15x
  +
}}
  +
</noinclude>
 
==Introduction==
 
==Introduction==
 
This article is intended for Yocto experts, or people who have some practical experience of the Yocto environmment.<br><br>
 
This article is intended for Yocto experts, or people who have some practical experience of the Yocto environmment.<br><br>
Line 16: Line 25:
 
├── conf
 
├── conf
 
│   └── layer.conf
 
│   └── layer.conf
  +
├── recipes-example
  +
│  └── example
  +
│      └── example.bb
 
├── COPYING.MIT
 
├── COPYING.MIT
├── README
+
└── README
└── recipes-example
 
    └── example
 
        └── example.bb
 
   
 
3 directories, 4 files
 
3 directories, 4 files
Line 28: Line 37:
 
Open the layer.conf file and add the lines below for the licenses,  demo layer path, and dependency with the STM32MP BSP layer 'addons' :
 
Open the layer.conf file and add the lines below for the licenses,  demo layer path, and dependency with the STM32MP BSP layer 'addons' :
   
  EULA_FILE_ST_{{Highlight|stm32mpmydemo}} = "${LAYERDIR}/conf/eula/${MACHINE}"
+
  EULA_FILE_ST:{{Highlight|stm32mpmydemo}} = "${LAYERDIR}/conf/eula/${MACHINE}"
  EULA_FILE_ST_MD5SUM_{{Highlight|stm32mpmydemo}} = "8b505090fb679839cefbcc784afe8ce9"
+
  EULA_FILE_ST_MD5SUM:{{Highlight|stm32mpmydemo}} = "8b505090fb679839cefbcc784afe8ce9"
 
   
 
   
 
  #Inform bitbake for adding another location to search for licenses
 
  #Inform bitbake for adding another location to search for licenses
Line 47: Line 56:
 
  # cause compatibility issues with other layers
 
  # cause compatibility issues with other layers
 
  LAYERVERSION_meta-my-demo-layer = "1"
 
  LAYERVERSION_meta-my-demo-layer = "1"
  LAYERSERIES_COMPAT_meta-my-demo-layer = "dunfell"
+
  LAYERSERIES_COMPAT_meta-my-demo-layer = "kirkstone"
   
 
{{Info| LAYERSERIES_COMPAT must be aligned with the version of OpenEmbedded used.<br>Please refer to https://wiki.yoctoproject.org/wiki/Releases}}
 
{{Info| LAYERSERIES_COMPAT must be aligned with the version of OpenEmbedded used.<br>Please refer to https://wiki.yoctoproject.org/wiki/Releases}}
   
 
===Create the machine for your demo===
 
===Create the machine for your demo===
  +
====Prepare the machine configuration file====
 
* Copy the machine delivered inside the existing STM32MP BSP layer 'addons' into your demo layer
 
* Copy the machine delivered inside the existing STM32MP BSP layer 'addons' into your demo layer
   
  $ cp <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-st-stm32mp-addons/conf/machine/'''stm32mp1-mx.conf''' <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/conf/machine/'''stm32mp1-demo.conf'''
+
  $ cp <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-st-stm32mp-addons/conf/machine/'''stm32mp1X-mx.conf''' <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/conf/machine/'''stm32mp1-demo.conf'''
   
 
* Open stm32mp1-demo.conf and update the line below
 
* Open stm32mp1-demo.conf and update the line below
Line 66: Line 76:
 
  MACHINEOVERRIDES .= ":{{Highlight|stm32mpmydemo}}"
 
  MACHINEOVERRIDES .= ":{{Highlight|stm32mpmydemo}}"
   
* Uncomment variables to configure your own {{Highlight|Boot Mode Choice}}, {{Highlight|Boot Device Choice}},  {{Highlight|Board Type Choice, DeviceTree files and path}}
+
====Configure the machine configuration file for your demo====
  +
{{:How to create your own machine}}
   
 
===Associate EULA with the new demo machine===
 
===Associate EULA with the new demo machine===
 
Copy the eula folder delivered inside the existing STM32MP BSP layer 'addons' into your demo layer  
 
Copy the eula folder delivered inside the existing STM32MP BSP layer 'addons' into your demo layer  
   
  $ cp -rf <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-st-stm32mp-addons/conf/'''eula'''/ <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/conf/.
+
  $ cp -Rf <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-st-stm32mp-addons/conf/'''eula'''/ <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/conf/.
  +
 
  +
Cleanup unexpected symbolic links from eula folder newly populated:
  +
 
  +
$ find <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/conf/eula -type l -exec rm -f {} \;
   
Then replace the existing symbolic link with the machine used for your demo:
+
Then create the symbolic link with the machine used for your demo:
   
  $ rm stm32mp1-mx
+
  $ cd <path of OpenSTLinux distribution delivery>/layers/meta-st/meta-my-demo-layer/conf/eula
  $ ln -s ST_EULA_SLA stm32mp1-demo
+
  $ ln -sf ST_EULA_SLA stm32mp1-demo
   
 
===Move DeviceTree files and project coming from STM32CubeMX tool===
 
===Move DeviceTree files and project coming from STM32CubeMX tool===
Line 104: Line 119:
 
meta-my-demo-layer
 
meta-my-demo-layer
 
├── conf
 
├── conf
│   └── eula
+
│   ├── eula
│       └── ST_EULA_SLA
+
│   │  ├── ST_EULA_SLA
│       └── stm32mp1-demo -> ST_EULA_SLA
+
│   │  ├── stm32mp1-demo -> ST_EULA_SLA
│       └──  ...
+
│   │  └──  ...
│   └── layer.conf
+
│   ├── machine
│   └── machine
+
│  │  └── stm32mp1-demo.conf
│      └── stm32mp1-demo.conf
+
│  └── layer.conf
  +
├── mx
  +
│   └── ${CUBEMX_PROJECT}
  +
│            ├── kernel
  +
│            │  └── stm32mp1XXx-my-demo-mx.dts
  +
│            ├── optee-os
  +
│            │  └── stm32mp1XXx-my-demo-mx.dts
  +
│            ├── tf-a
  +
│            │  ├── stm32mp1X-mx.dtsi
  +
│            │  ├── stm32mp1XXx-my-demo-mx.dts
  +
│            │  └── stm32mp1XXx-my-demo-mx-fw-config.dts
  +
│            └── u-boot
  +
│                ├── stm32mp1XXx-my-demo-mx.dts
  +
│                └── stm32mp1XXx-my-demo-mx-u-boot.dtsi
 
├── COPYING.MIT
 
├── COPYING.MIT
├── mx
 
│   └── STM32MP157C-EV1
 
│        └── my-demo
 
│            └── DeviceTree
 
│                └── my-demo
 
│                    └── kernel
 
│                        └── stm32mp157c-my-demo.dts
 
│                    └── tf-a
 
│                        └── stm32mp157c-my-demo.dts
 
│                        └── stm32mp15-mx.h
 
│                    └── u-boot
 
│                        └── stm32mp157c-my-demo.dts
 
│                        └── stm32mp157c-my-demo-u-boot.dtsi
 
│                        └── stm32mp15-mx.h
 
│                    └── optee-os
 
│                        └── stm32mp157c-my-demo.dts
 
 
└── README
 
└── README
 
</pre>
 
</pre>