cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to build Yocto scarthgap using CubeMX generated device tree

DavidStruggle
Associate

Hi STM32Community,

i am currently trying to build openSTLinux using the STM32CubeMX (6.17.0) generated device tree files with the yocto build process.
For this I am using the STM32MPU Distribution Package. (stm32mp-openstlinux-6.6-yocto-scarthgap-mpu-v26.02.18)

I set up the Distribution Package according your Wiki Installing_the_OpenSTLinux_distribution and I have set up the STM32CubeMX Project according How_to_create_your_own_machine  :

  • I created the STM32CubeMX project directory "mx" /layers/meta-st/meta-st-stm32mp-addons and generated the project files
  • I created a new machine config file under /layers/meta-st/meta-st-stm32mp-addons/conf/machine, using the example stm32mp25-mx.conf as a template.
  • I created the symlink for the EULA
  • I modified the cubemx class accordingly under <STM32MP BSP layer addons>/classes/cubemx-stm32mp.bbclass

 

and started the build process with

source layers/meta-st/scripts/envsetup.sh
bitbake st-image-core

 

The buildprocess runs fine until it tries to process the device tree for linux-stm32mp_6.6.116-stm32mp-r3:

Error: /yocto/layers/meta-st/meta-st-stm32mp-addons/mx/SpikeOS/CA35/DeviceTree/SpikeOS/kernel/stm32mp257f-spikeos-mx.dts:521.1-6 Label or path boot not found
FATAL ERROR: Syntax error parsing input tree

 

While debugging, I commented out the section in question in my device tree:

&boot {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&boot_pins_mx>;
pinctrl-1 = <&boot_sleep_pins_mx>;
status = "okay";
};


This allowed me to pass this problem for now and continue further, looking for more clues whats going wrong. The buildprocess again fails now with multiple errors:

Error: /yocto/build-openstlinuxweston-stm32mp25-spike-mx/tmp-glibc/work/stm32mp25_spike_mx-ostl-linux/tf-a-stm32mp/v2.10.24-stm32mp-r3/build/optee-emmc-stm32mp25-stm32mp257f-spikeos-mx/fdts/stm32mp257f-spikeos-mx-bl2.pre.dts:1295.1-6 Label or path boot not found
Error: /yocto/build-openstlinuxweston-stm32mp25-spike-mx/tmp-glibc/work/stm32mp25_spike_mx-ostl-linux/tf-a-stm32mp/v2.10.24-stm32mp-r3/build/optee-emmc-stm32mp25-stm32mp257f-spikeos-mx/fdts/stm32mp257f-spikeos-mx-bl2.pre.dts:1306.1-6 Label or path eth1 not found
Error: /yocto/build-openstlinuxweston-stm32mp25-spike-mx/tmp-glibc/work/stm32mp25_spike_mx-ostl-linux/tf-a-stm32mp/v2.10.24-stm32mp-r3/build/optee-emmc-stm32mp25-stm32mp257f-spikeos-mx/fdts/stm32mp257f-spikeos-mx-bl2.pre.dts:1326.1-6 Label or path lvds not found
Error: /yocto/build-openstlinuxweston-stm32mp25-spike-mx/tmp-glibc/work/stm32mp25_spike_mx-ostl-linux/tf-a-stm32mp/v2.10.24-stm32mp-r3/build/optee-emmc-stm32mp25-stm32mp257f-spikeos-mx/fdts/stm32mp257f-spikeos-mx-bl2.pre.dts:1345.1-11 Label or path usb2_phy1 not found
Error: /yocto/build-openstlinuxweston-stm32mp25-spike-mx/tmp-glibc/work/stm32mp25_spike_mx-ostl-linux/tf-a-stm32mp/v2.10.24-stm32mp-r3/build/optee-emmc-stm32mp25-stm32mp257f-spikeos-mx/fdts/stm32mp257f-spikeos-mx-bl2.pre.dts:1348.1-6 Label or path usbh not found

 

I would guess, that somewhere either in my machine configuration file or the device tree files an include is missing, but I don't know what include. I then compared the official machine configurations and device trees to my files and they (more or less) match in the most parts.

 

My build configuration:

BB_VERSION = "2.8.1"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "universal"
TARGET_SYS = "aarch64-ostl-linux"
MACHINE = "stm32mp25-spike-mx"
DISTRO = "openstlinux-weston"
DISTRO_VERSION = "5.0.15-snapshot-20260312"
TUNE_FEATURES = "aarch64 crc cortexa35"
TARGET_FPU = ""
DISTRO_CODENAME = "scarthgap"
ACCEPT_EULA_stm32mp25-spike-mx = "1"
GCCVERSION = "13.%"
PREFERRED_PROVIDER_virtual/kernel = "linux-stm32mp"
MACHINE_FEATURES = "usbhost usbgadget alsa screen ext2 pci splashscreen watchdog gpu m33copro optee tpm2 initrd autoresize fip fw-update"

 

CubeMX Versions:

TF-A v2.10
OP-TEE v4.0.0
Linux 6.6.116
TF-M v2.1.3
SCP-firmware v2.13.0
U-Boot v2023.10

 

As far as i can see, this all should match.

As for hardware, I am using a custom board which is more or less close to a stock STM32MP257F-DK.

 

To reproduce this behaviour, simply open the CubeMX board project for the STM32MP257F-DK with standard peripherals initialized and try to compile it using the yocto build process.

 

According to the Github repository, the last change to the Distribution Package was 3 weeks ago - is the current CubeMX version 6.17.0 compatible to stm32mp-openstlinux-6.6-yocto-scarthgap-mpu-v26.02.18 ?


Am I overseeing something?

Thanks in advance.

1 ACCEPTED SOLUTION

Accepted Solutions
DavidStruggle
Associate

Hello STM32Community,

I managed to solve the problem.
The root cause is user error/misconfiguration. Several peripherals were checked at boot stages, where they were not needed at all.
Disabling these cleared the errors.

I am now able to build successfully.

View solution in original post

1 REPLY 1
DavidStruggle
Associate

Hello STM32Community,

I managed to solve the problem.
The root cause is user error/misconfiguration. Several peripherals were checked at boot stages, where they were not needed at all.
Disabling these cleared the errors.

I am now able to build successfully.