CLASSES/MACHINES: update for v2.0.0

Several updates integrated:
- removal of no more supported basic boot scheme
- removal of no more supported boot device (nor-nand and nor-emmc)
- rework of providers and machine features
- introduction of new board versions (a, c, d, f)
- update of extlinuxconf-stm32mp class to manage multiple board versions
- configure 'extlinux.conf' file to manage PARTUUID to select rootfs
partition
- new partition images management (easy to add or remove partition through
new PARTITIONS_CONFIG var
- specific configuration on machine side for all storage device supported

Change-Id: I7e4d3d16535a5654c7fd80f9b56296a61050def3
This commit is contained in:
Romuald JEANNE committed 2020-06-23 17:23:52 +02:00
1 parent 2fbe4ce39c
commit af5ae28215
33 files changed
+1297 -1245

No files matched your search

@@ -5,6 +5,7 @@ require conf/machine/include/st-machine-features-stm32mp.inc
require conf/machine/include/st-machine-flashlayout-stm32mp.inc
require conf/machine/include/st-machine-flashlayout-deleteall-stm32mp.inc
require conf/machine/include/st-machine-flashlayout-extensible-stm32mp.inc
require conf/machine/include/st-machine-storage-device-stm32mp.inc
# Define specific common machine name
MACHINEOVERRIDES .= ":stcommon"
@@ -16,13 +17,13 @@ MACHINEOVERRIDES .= ":stm32mpcommon"
# boot scheme
# =========================================================================
# List of supported boot schemes
BOOTSCHEME_LABELS ??= "basic trusted optee"
BOOTSCHEME_LABELS ??= "trusted optee"
# =========================================================================
# boot device
# =========================================================================
# List of supported boot devices
BOOTDEVICE_LABELS ??= "emmc nand-4-256 nor-emmc nor-nand-4-256 nor-sdcard sdcard"
BOOTDEVICE_LABELS ??= "emmc nand-4-256 nor-sdcard sdcard"
# =========================================================================
# Machine settings
@@ -30,9 +31,13 @@ BOOTDEVICE_LABELS ??= "emmc nand-4-256 nor-emmc nor-nand-4-256 nor-sdcard sdcard
# Default machine feature
MACHINE_FEATURES = "usbhost usbgadget alsa screen ext2"
MACHINE_FEATURES_append = " ${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', 'optee', '', d)} "
MACHINE_FEATURES_append = " watchdog "
MACHINE_FEATURES_append = " tpm2 "
MACHINE_FEATURES_append = " autoresize "
# Remove autoresize package from DISTRO_EXTRA_RRECOMMENDS to add it explicitly
# in our bootfs image instead of rootfs
DISTRO_EXTRA_RRECOMMENDS_remove = "${@bb.utils.contains('COMBINED_FEATURES', 'autoresize', '${AUTORESIZE}', '', d)}"
# Default serial consoles (TTYs) to enable using getty
# Before kernel 4.18, serial console are ttyS3 but after is ttySTM0
SERIAL_CONSOLES = "115200;ttySTM0"
@@ -56,51 +61,35 @@ STM32MP_DEVICETREE_append = " ${STM32MP_DT_FILES_EV} "
# =========================================================================
# Machine specific packages
# =========================================================================
WIFI_SUSPEND = "${@bb.utils.contains('DISTRO_FEATURES','systemd',' wifi-suspend ','',d)}"
MACHINE_EXTRA_RRECOMMENDS_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'wifi', 'linux-firmware-bcm43430', '', d)} "
MACHINE_EXTRA_RRECOMMENDS_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'wifi', '${WIFI_SUSPEND}', '', d)} "
MACHINE_EXTRA_RRECOMMENDS_append = " m4projects-stm32mp1 "
MACHINE_EXTRA_RRECOMMENDS_append = " linux-examples-stm32mp1 "
MACHINE_EXTRA_RRECOMMENDS_append = " m4fwcoredump "
# Enable Software watchdog when sysvinit
MACHINE_EXTRA_RRECOMMENDS_append = " ${@bb.utils.contains('DISTRO_FEATURES','sysvinit',' watchdog ','',d)} "
# =========================================================================
# Image
# =========================================================================
# For sparse, align on 4096b
IMAGE_ROOTFS_ALIGNMENT ?= "4"
# Enable licence summary and configure License content generation
ENABLE_IMAGE_LICENSE_SUMMARY ?= "1"
# Partitions configuration
IMAGE_CLASSES += "st-partitions-image"
# Define image to use for extra partitions
STM32MP_BOOTFS_IMAGE = "st-image-bootfs"
STM32MP_BOOTFS_LABEL = "boot"
STM32MP_BOOTFS_MOUNTPOINT_IMAGE = "/boot"
STM32MP_USERFS_IMAGE = "st-image-userfs"
STM32MP_USERFS_LABEL = "userfs"
STM32MP_USERFS_MOUNTPOINT_IMAGE = "/usr/local"
STM32MP_VENDORFS_IMAGE = "st-image-vendorfs"
STM32MP_VENDORFS_LABEL = "vendorfs"
STM32MP_VENDORFS_MOUNTPOINT_IMAGE = "/vendor"
# Configure use of VENDORFS partition
ST_VENDORFS ?= "1"
# Define extra partition to build
PARTITIONS_IMAGE = "${STM32MP_BOOTFS_IMAGE}"
PARTITIONS_IMAGE += "${STM32MP_USERFS_IMAGE}"
PARTITIONS_IMAGE += "${@bb.utils.contains('ST_VENDORFS','1','${STM32MP_VENDORFS_IMAGE}','',d)}"
PARTITIONS_MOUNTPOINT_IMAGE = "${STM32MP_BOOTFS_MOUNTPOINT_IMAGE}"
PARTITIONS_MOUNTPOINT_IMAGE += "${STM32MP_USERFS_MOUNTPOINT_IMAGE}"
PARTITIONS_MOUNTPOINT_IMAGE += "${@bb.utils.contains('ST_VENDORFS','1','${STM32MP_VENDORFS_MOUNTPOINT_IMAGE}','',d)}"
# Provide list of partition to mount
MOUNT_PARTITIONS_LIST = "${STM32MP_BOOTFS_LABEL},${STM32MP_BOOTFS_MOUNTPOINT_IMAGE}"
MOUNT_PARTITIONS_LIST += "${STM32MP_USERFS_LABEL},${STM32MP_USERFS_MOUNTPOINT_IMAGE}"
MOUNT_PARTITIONS_LIST += "${@bb.utils.contains('ST_VENDORFS','1','${STM32MP_VENDORFS_LABEL},${STM32MP_VENDORFS_MOUNTPOINT_IMAGE}','',d)}"
STM32MP_BOOTFS_IMAGE ?= "st-image-bootfs"
STM32MP_BOOTFS_LABEL ?= "boot"
STM32MP_BOOTFS_MOUNTPOINT ?= "/boot"
STM32MP_USERFS_IMAGE ?= "st-image-userfs"
STM32MP_USERFS_LABEL ?= "userfs"
STM32MP_USERFS_MOUNTPOINT ?= "/usr/local"
STM32MP_VENDORFS_IMAGE ?= "st-image-vendorfs"
STM32MP_VENDORFS_LABEL ?= "vendorfs"
STM32MP_VENDORFS_MOUNTPOINT ?= "/vendor"
# Define image partition size (supposed to be set as max size in image recipe)
# Proposed value for bootfs is 64MB
BOOTFS_PARTITION_SIZE = "65536"
BOOTFS_PARTITION_SIZE ?= "65536"
# Proposed value for rootfs should fit our highest constraint: NAND size (1GiB)
# For optee bootscheme we have the maximum partitions:
# FSBL1 + SSBL + SSBL2 + TEEH + TEED + TEEX + Multivolume UBI = NAND size
@@ -116,35 +105,38 @@ BOOTFS_PARTITION_SIZE = "65536"
# rootfs < 1016.5MiB - (256KiB + 256KiB + 64MiB + 16MiB + 128MiB + 53360KiB + 4 * 9 * 256KiB)
# rootfs < 746.8MiB
# Proposed value for rootfs is 746MiB
ROOTFS_PARTITION_SIZE = "763904"
# Define max size for ROOTFS image being built to this value
IMAGE_ROOTFS_MAXSIZE ?= "763904"
# And configure the ROOTFS_PARTITION_SIZE variable accordingly
ROOTFS_PARTITION_SIZE ?= "${IMAGE_ROOTFS_MAXSIZE}"
# Proposed value for userfs is 128MB (4*32MB)
USERFS_PARTITION_SIZE = "131072"
USERFS_PARTITION_SIZE ?= "131072"
# Proposed value for vendorfs is 16MB
VENDORFS_PARTITION_SIZE = "16384"
VENDORFS_PARTITION_SIZE ?= "16384"
# Define the max size for ROOTFS image being built
# On other image partition such settings is directly done in image recipe
IMAGE_ROOTFS_MAXSIZE ?= "${ROOTFS_PARTITION_SIZE}"
# Enable use of extra partition(s)
ST_BOOTFS ?= "1"
ST_VENDORFS ?= "1"
ST_USERFS ?= "1"
# Partitions configuration
PARTITIONS_CONFIG += "${@bb.utils.contains('ST_BOOTFS', '1', 'bootfs', '', d)}"
PARTITIONS_CONFIG += "${@bb.utils.contains('ST_VENDORFS', '1', 'vendorfs', '', d)}"
PARTITIONS_CONFIG += "rootfs"
PARTITIONS_CONFIG += "${@bb.utils.contains('ST_USERFS', '1', 'userfs', '', d)}"
PARTITIONS_CONFIG[bootfs] ?= "${STM32MP_BOOTFS_IMAGE},${STM32MP_BOOTFS_LABEL},${STM32MP_BOOTFS_MOUNTPOINT},${BOOTFS_PARTITION_SIZE},System"
PARTITIONS_CONFIG[vendorfs] ?= "${STM32MP_VENDORFS_IMAGE},${STM32MP_VENDORFS_LABEL},${STM32MP_VENDORFS_MOUNTPOINT},${VENDORFS_PARTITION_SIZE},FileSystem"
PARTITIONS_CONFIG[rootfs] ?= "${IMAGE_BASENAME},rootfs,,${ROOTFS_PARTITION_SIZE},FileSystem"
PARTITIONS_CONFIG[userfs] ?= "${STM32MP_USERFS_IMAGE},${STM32MP_USERFS_LABEL},${STM32MP_USERFS_MOUNTPOINT},${USERFS_PARTITION_SIZE},FileSystem"
# UBI Configuration
IMAGE_CLASSES += "image_types-stubi"
# Define specific U-Boot config partition settings
STM32MP_UBOOTCONFIG_NAME = "uboot_config"
UBOOTCONFIG_PARTITION_SIZE = "256"
# Define two empty volumes to manage U-Boot config beginning of multivolume UBIFS
STM32MP_UBI_VOLUME_prepend = "uboot_config:256:empty uboot_config_r:256:empty "
# Define volume list for multivolume UBIFS
# We need to have two empty UBI volumes to manage U-Boot config in our multivolume UBI
STM32MP_UBI_VOLUME += "${STM32MP_UBOOTCONFIG_NAME}:${UBOOTCONFIG_PARTITION_SIZE}:empty"
STM32MP_UBI_VOLUME += "${STM32MP_UBOOTCONFIG_NAME}_r:${UBOOTCONFIG_PARTITION_SIZE}:empty"
# Add default partition volumes
STM32MP_UBI_VOLUME += "${STM32MP_BOOTFS_IMAGE}-${DISTRO}-${MACHINE}:${BOOTFS_PARTITION_SIZE}"
STM32MP_UBI_VOLUME += "${IMAGE_LINK_NAME}:${ROOTFS_PARTITION_SIZE}"
STM32MP_UBI_VOLUME += "${@bb.utils.contains('ST_VENDORFS','1','${STM32MP_VENDORFS_IMAGE}-${DISTRO}-${MACHINE}:${VENDORFS_PARTITION_SIZE}','',d)}"
STM32MP_UBI_VOLUME += "${STM32MP_USERFS_IMAGE}-${DISTRO}-${MACHINE}:${USERFS_PARTITION_SIZE}"
# Define UBI volume label for ROOTFS image being built
# This is needed to have "generic" kernel command line to mount UBI file system
# Define UBI volume label to use in kernel command line to mount UBI file system
UBI_VOLNAME ?= "rootfs"
# Define UBI labels to build
@@ -152,7 +144,7 @@ UBI_VOLNAME ?= "rootfs"
# nand_<PageSize>_<BlockSize>
# nor_<BlockSize>
# Like that a same UBI partition can be used for severals NAND/NOR providers
MULTIUBI_BUILD_append = " nand_4_256 "
MULTIUBI_BUILD += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nand-4-256', 'nand_4_256', '', d)}"
# UBI Args for NAND by default on MB1262 (Micron MT29F8G16ABACAH4)
# LEB = BLOCK_SIZE - (2 * page size): 256*1024 - (2*4096)
@@ -164,6 +156,8 @@ EXTRA_UBIFS_SIZE_nand_4_256 = "2304"
# Default FSTYPES requested
WKS_IMAGE_FSTYPES ?= ""
IMAGE_FSTYPES ?= "${WKS_IMAGE_FSTYPES} tar.xz ext4"
# Append ubi FSTYPES to default ones for nand volumes
IMAGE_FSTYPES += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nand-4-256', 'stmultiubi', '', d)}"
# Define specific EXT4 command line:
# - Create minimal inode number (as it is done by default in image_types.bbclass)
@@ -173,13 +167,6 @@ IMAGE_FSTYPES ?= "${WKS_IMAGE_FSTYPES} tar.xz ext4"
# by U-Boot
EXTRA_IMAGECMD_ext4 = "-i 4096 -L ${@d.getVar('IMAGE_NAME_SUFFIX').replace('.', '', 1)[:16]} -O ^metadata_csum,^dir_index"
# Enable licence summary and configure License content generation
ENABLE_IMAGE_LICENSE_SUMMARY = "1"
IMAGE_SUMMARY_LIST = "${STM32MP_BOOTFS_IMAGE}"
IMAGE_SUMMARY_LIST_append = "${@bb.utils.contains('ST_VENDORFS','1',':${STM32MP_VENDORFS_IMAGE}','',d)}"
IMAGE_SUMMARY_LIST_append = ":#IMAGE#"
IMAGE_SUMMARY_LIST_append = ":${STM32MP_USERFS_IMAGE}"
# Allow debug on the platform with gdb and openocd tools
EXTRA_IMAGEDEPENDS_append = " \
gdb-cross-arm \
@@ -204,8 +191,16 @@ ST_TOOLS_FOR_SDK_PERL = " \
nativesdk-perl-module-encode \
nativesdk-perl-module-encode-mime-header \
"
ST_TOOLS_FOR_SDK_append = " ${ST_TOOLS_FOR_SDK_PERL} "
# For support of python module for optee-os
ST_TOOLS_FOR_SDK_append = " \
nativesdk-python3-pyelftools \
nativesdk-python3-pycryptodomex \
nativesdk-python3-pycrypto \
"
# For support of string convertion (iconv) in SDK
ST_TOOLS_FOR_SDK_append = " \
nativesdk-glibc-gconv-utf-16 \
@@ -216,6 +211,12 @@ ST_TOOLS_FOR_SDK_append = " \
nativesdk-wayland \
"
# For Kernel yaml dependency
ST_TOOLS_FOR_SDK_remove = " \
nativesdk-libyaml \
nativesdk-libyaml-dev \
"
# For CMSIS-SVD file parser with GDB
ST_TOOLS_FOR_SDK_append = " \
nativesdk-svd-tools \
@@ -284,21 +285,18 @@ LINUX_A7_EXAMPLES_DT ?= ""
# =========================================================================
# u-boot
# =========================================================================
EXTRA_IMAGEDEPENDS += "u-boot-stm32mp"
PREFERRED_PROVIDER_u-boot = "u-boot-stm32mp"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-stm32mp"
EXTRA_IMAGEDEPENDS += "virtual/bootloader"
# Define default U-Boot config
UBOOT_CONFIG += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'basic', 'basic', '', d)}"
UBOOT_CONFIG += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'trusted', 'trusted', '', d)}"
UBOOT_CONFIG += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', 'optee', '', d)}"
#Add this config until u-boot is able to flash with basic binary
UBOOT_CONFIG += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'basic', 'trusted', '', d)}"
# The 'basic' config is only available for stm32mp1 machines
UBOOT_CONFIG_append_stm32mp1common = " basic "
# Define u-boot defconfig and binary to use for each UBOOT_CONFIG
UBOOT_CONFIG[basic] = "stm32mp15_basic_defconfig,,u-boot.img"
UBOOT_CONFIG[trusted] = "stm32mp15_trusted_defconfig,,u-boot.stm32"
UBOOT_CONFIG[optee] = "stm32mp15_optee_defconfig,,u-boot.stm32"
UBOOT_CONFIG[optee] = "stm32mp15_trusted_defconfig,,u-boot.stm32"
# List of U-Boot device tree to use
UBOOT_DEVICETREE = "${STM32MP_DEVICETREE}"
@@ -306,27 +304,27 @@ UBOOT_DEVICETREE = "${STM32MP_DEVICETREE}"
# Define u-boot splashscreen file naming
UBOOT_SPLASH_IMAGE = "splash"
# =========================================================================
# tf-a
# =========================================================================
# Finally we must compile tf-a in all cases as we need trusted binary to boot
#EXTRA_IMAGEDEPENDS += "${@bb.utils.contains_any('BOOTSCHEME_LABELS', 'optee trusted', 'tf-a-stm32mp', '', d)}"
EXTRA_IMAGEDEPENDS += "tf-a-stm32mp"
PREFERRED_PROVIDER_u-boot-fw-utils_stm32mp1common = "libubootenv"
# Define default TF-A config
TF_A_CONFIG += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'trusted', 'trusted', '', d)}"
TF_A_CONFIG += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', 'optee', '', d)}"
MACHINE_EXTRA_RRECOMMENDS_append_stm32mp1common = " \
u-boot-fw-config-stm32mp \
"
#Add this config until tf-a is able to flash with basic binary
TF_A_CONFIG += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'basic', 'trusted', '', d)}"
#Add this config until optee is able to flash
TF_A_CONFIG += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', 'trusted', '', d)}"
# =========================================================================
# trusted-firmware-a
# =========================================================================
# Add trusted-firmware-a serialboot to allow images programming
EXTRA_IMAGEDEPENDS += "virtual/trusted-firmware-a-serialboot"
# Add optionnaly trusted-firmware-a
EXTRA_IMAGEDEPENDS += "${@bb.utils.contains_any('BOOTSCHEME_LABELS', 'optee trusted', 'virtual/trusted-firmware-a', '', d)}"
# Define SECURE_PAYLOAD config to set for each TF_A_CONFIG
TF_A_CONFIG_optee = "AARCH32_SP=optee STM32MP_BOOT_ONLY=1"
TF_A_CONFIG_trusted = "AARCH32_SP=sp_min"
TF_A_CONFIG_serialboot = "AARCH32_SP=sp_min"
TF_A_CONFIG_optee = "AARCH32_SP=optee"
TF_A_CONFIG_trusted = "AARCH32_SP=sp_min"
# Manage proper dependency
# Manage proper update for TF_A_CONFIG_* var
tfaconfig_env[vardeps] += "${@bb.utils.contains('TF_A_CONFIG', 'serialboot', 'TF_A_CONFIG_serialboot', '', d)}"
tfaconfig_env[vardeps] += "${@bb.utils.contains('TF_A_CONFIG', 'optee', 'TF_A_CONFIG_optee', '', d)}"
tfaconfig_env[vardeps] += "${@bb.utils.contains('TF_A_CONFIG', 'trusted', 'TF_A_CONFIG_trusted', '', d)}"
@@ -339,16 +337,6 @@ TF_A_DEVICETREE = "${STM32MP_DEVICETREE}"
# Map OPTEE configuration to device tree list
OPTEE_CONF = "${STM32MP_DEVICETREE}"
# =========================================================================
# flashlayout
# =========================================================================
# Add specific scheme to provide flashlayout that will erase all storage devices
FLASHLAYOUT_BOOTSCHEME_LABELS += "deleteall"
# Add specific scheme to provide flashlayout that will make rootfs extensible to
# remaining device free space
# NOTE: this scheme is ONLY compatible with disco board and trusted bootscheme
FLASHLAYOUT_BOOTSCHEME_LABELS += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'trusted', 'extensible', '', d)}"
# =========================================================================
# Xserver
# =========================================================================
@@ -369,7 +357,6 @@ ELF_DEBUG_ENABLE = "1"
# =========================================================================
PREFERRED_PROVIDER_sysdig = "sysdig-stm32mp"
# =========================================================================
# M4 copro
# =========================================================================
@@ -389,4 +376,4 @@ M4_PACKAGE_4USERFS = "${@bb.utils.contains('ST_USERFS','1','1','0',d)}"
# =========================================================================
# Variable for using vendor directory instead of usr
GCNANO_USERLAND_USE_VENDOR_DIR = "${@bb.utils.contains('ST_VENDORFS','1','1','0',d)}"
GCNANO_USERLAND_VENDOR_DIR = "${STM32MP_VENDORFS_MOUNTPOINT_IMAGE}"
GCNANO_USERLAND_VENDOR_DIR = "${STM32MP_VENDORFS_MOUNTPOINT}"
@@ -1,275 +1,94 @@
#@DESCRIPTION: STM32MP machine extlinux file configuration
# Set generic extlinux bootdevice variable to ease definition
EXTLINUX_BOOTDEVICE_EMMC = "mmc1"
EXTLINUX_BOOTDEVICE_SDCARD = "mmc0"
EXTLINUX_BOOTDEVICE_NORSDCARD = "nor0"
EXTLINUX_BOOTDEVICE_NOREMMC = "nor0-mmc1"
EXTLINUX_BOOTDEVICE_NAND = "nand0"
# Set generic extlinux root variable to ease definition
EXTLINUX_ROOT_EMMC = "${@bb.utils.contains('ST_VENDORFS','1','root=/dev/mmcblk1p4','root=/dev/mmcblk1p3',d)}"
EXTLINUX_ROOT_EMMC_OPTEE = "${@bb.utils.contains('ST_VENDORFS','1','root=/dev/mmcblk1p7','root=/dev/mmcblk1p6',d)}"
EXTLINUX_ROOT_NAND = "ubi.mtd=UBI rootfstype=ubifs root=ubi0:rootfs"
EXTLINUX_ROOT_NOREMMC = "${@bb.utils.contains('ST_VENDORFS','1','root=/dev/mmcblk1p3','root=/dev/mmcblk1p2',d)}"
EXTLINUX_ROOT_NORSDCARD = "${@bb.utils.contains('ST_VENDORFS','1','root=/dev/mmcblk0p3','root=/dev/mmcblk0p2',d)}"
EXTLINUX_ROOT_SDCARD = "${@bb.utils.contains('ST_VENDORFS','1','root=/dev/mmcblk0p6','root=/dev/mmcblk0p5',d)}"
EXTLINUX_ROOT_SDCARD_OPTEE = "${@bb.utils.contains('ST_VENDORFS','1','root=/dev/mmcblk0p9','root=/dev/mmcblk0p8',d)}"
# -----------------------------------------------------------------------------
# REMINDER: how 'exlinux.conf' files are built
#
# The 'extlinux.conf' files are generated under ${UBOOT_EXTLINUX_INSTALL_DIR}:
# ${UBOOT_EXTLINUX_INSTALL_DIR}/${UBOOT_EXTLINUX_BOOTPREFIXES_${UBOOT_EXTLINUX_TARGETS}[0]}extlinux/extlinux.conf
# ${UBOOT_EXTLINUX_INSTALL_DIR}/${UBOOT_EXTLINUX_BOOTPREFIXES_${UBOOT_EXTLINUX_TARGETS}[1]}extlinux/extlinux.conf
# ...
#
# File content (${UBOOT_EXTLINUX_BOOTPREFIXES_${UBOOT_EXTLINUX_TARGETS}[0]}extlinux/exlinux.conf):
# menu title Select the boot mode
# TIMEOUT ${UBOOT_EXTLINUX_TIMEOUT}
# DEFAULT ${UBOOT_EXTLINUX_DEFAULT_LABEL_${UBOOT_EXTLINUX_TARGETS}[0]}
# LABEL ${UBOOT_EXTLINUX_LABELS_${UBOOT_EXTLINUX_TARGETS}[0]}[0]
# KERNEL ${UBOOT_EXTLINUX_KERNEL} < OR OVERRIDE WITH : ${UBOOT_EXTLINUX_KERNEL_${IMAGE_UBOOT_EXTLINUX_LABELS}[0]} >
# FDT ${UBOOT_EXTLINUX_FDT} < OR OVERRIDE WITH : ${UBOOT_EXTLINUX_FDT_${IMAGE_UBOOT_EXTLINUX_LABELS}[0]} >
# APPEND ${UBOOT_EXTLINUX_ROOT} < OR OVERRIDE WITH : ${UBOOT_EXTLINUX_ROOT_${IMAGE_UBOOT_EXTLINUX_LABELS}[0]} >
# LABEL ${UBOOT_EXTLINUX_LABELS_${UBOOT_EXTLINUX_TARGETS}[0]}[1]
# KERNEL ${UBOOT_EXTLINUX_KERNEL} < OR OVERRIDE WITH : ${UBOOT_EXTLINUX_KERNEL_${IMAGE_UBOOT_EXTLINUX_LABELS}[1]} >
# FDT ${UBOOT_EXTLINUX_FDT} < OR OVERRIDE WITH : ${UBOOT_EXTLINUX_FDT_${IMAGE_UBOOT_EXTLINUX_LABELS}[1]} >
# APPEND ${UBOOT_EXTLINUX_ROOT} < OR OVERRIDE WITH : ${UBOOT_EXTLINUX_ROOT_${IMAGE_UBOOT_EXTLINUX_LABELS}[1]} >
#
# File content (${UBOOT_EXTLINUX_BOOTPREFIXES_${UBOOT_EXTLINUX_TARGETS}[0]}extlinux/exlinux.conf):
# menu title Select the boot mode
# TIMEOUT ${UBOOT_EXTLINUX_TIMEOUT}
# DEFAULT ${UBOOT_EXTLINUX_DEFAULT_LABEL_${UBOOT_EXTLINUX_TARGETS}[1]}
# LABEL ${UBOOT_EXTLINUX_LABELS_${UBOOT_EXTLINUX_TARGETS}[1]}[0]
# KERNEL ${UBOOT_EXTLINUX_KERNEL} < OR OVERRIDE WITH : ${UBOOT_EXTLINUX_KERNEL_${IMAGE_UBOOT_EXTLINUX_LABELS}[0]} >
# FDT ${UBOOT_EXTLINUX_FDT} < OR OVERRIDE WITH : ${UBOOT_EXTLINUX_FDT_${IMAGE_UBOOT_EXTLINUX_LABELS}[0]} >
# APPEND ${UBOOT_EXTLINUX_ROOT} < OR OVERRIDE WITH : ${UBOOT_EXTLINUX_ROOT_${IMAGE_UBOOT_EXTLINUX_LABELS}[0]} >
# LABEL ${UBOOT_EXTLINUX_LABELS_${UBOOT_EXTLINUX_TARGETS}[1]}[1]
# KERNEL ${UBOOT_EXTLINUX_KERNEL} < OR OVERRIDE WITH : ${UBOOT_EXTLINUX_KERNEL_${IMAGE_UBOOT_EXTLINUX_LABELS}[1]} >
# FDT ${UBOOT_EXTLINUX_FDT} < OR OVERRIDE WITH : ${UBOOT_EXTLINUX_FDT_${IMAGE_UBOOT_EXTLINUX_LABELS}[1]} >
# APPEND ${UBOOT_EXTLINUX_ROOT} < OR OVERRIDE WITH : ${UBOOT_EXTLINUX_ROOT_${IMAGE_UBOOT_EXTLINUX_LABELS}[1]} >
# -----------------------------------------------------------------------------
# Init the list of targets per device config
UBOOT_EXTLINUX_TARGETS_emmc ?= ""
UBOOT_EXTLINUX_TARGETS_emmc-optee ?= ""
UBOOT_EXTLINUX_TARGETS_nand ?= ""
UBOOT_EXTLINUX_TARGETS_nor-emmc ?= ""
UBOOT_EXTLINUX_TARGETS_nor-sdcard ?= ""
UBOOT_EXTLINUX_TARGETS_sdcard ?= ""
UBOOT_EXTLINUX_TARGETS_sdcard-optee ?= ""
# Configure bootscheme diversity for emmc and sdcard
EXTLINUX_TARGETS_EMMC += "${@bb.utils.contains_any('BOOTSCHEME_LABELS', [ 'basic', 'trusted' ], '${UBOOT_EXTLINUX_TARGETS_emmc}', '', d)}"
EXTLINUX_TARGETS_EMMC += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', '${UBOOT_EXTLINUX_TARGETS_emmc-optee}', '', d)}"
EXTLINUX_TARGETS_SDCARD += "${@bb.utils.contains_any('BOOTSCHEME_LABELS', [ 'basic', 'trusted' ], '${UBOOT_EXTLINUX_TARGETS_sdcard}', '', d)}"
EXTLINUX_TARGETS_SDCARD += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', '${UBOOT_EXTLINUX_TARGETS_sdcard-optee}', '', d)}"
# Define the extlinux targets to use
UBOOT_EXTLINUX_TARGETS += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'emmc', '${EXTLINUX_TARGETS_EMMC}', '', d)}"
UBOOT_EXTLINUX_TARGETS += "${@bb.utils.contains_any('BOOTDEVICE_LABELS', [ 'nand-4-256', 'nor-nand-4-256' ], '${UBOOT_EXTLINUX_TARGETS_nand}', '', d)}"
UBOOT_EXTLINUX_TARGETS += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nor-emmc', '${UBOOT_EXTLINUX_TARGETS_nor-emmc}', '', d)}"
UBOOT_EXTLINUX_TARGETS += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nor-sdcard', '${UBOOT_EXTLINUX_TARGETS_nor-sdcard}', '', d)}"
UBOOT_EXTLINUX_TARGETS += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'sdcard', '${EXTLINUX_TARGETS_SDCARD}', '', d)}"
# Set extlinux console for stm32mp machine
# Define extlinux console for stm32mp machine
UBOOT_EXTLINUX_CONSOLE = "console=${@d.getVar('SERIAL_CONSOLE').split()[1]},${@d.getVar('SERIAL_CONSOLE').split()[0]}"
# Define default FDTDIR for all configs
UBOOT_EXTLINUX_FDTDIR = "/"
# Define default MENU DESCRIPTION for all configs
UBOOT_EXTLINUX_MENU_DESCRIPTION = "OpenSTLinux"
# Define default boot config for all config
UBOOT_EXTLINUX_DEFAULT_LABEL ?= "OpenSTLinux"
# Define default INITRD for all configs
INITRD_SHORTNAME ??= ""
UBOOT_EXTLINUX_INITRD ?= "${@bb.utils.contains('COMBINED_FEATURES', 'autoresize', '/${INITRD_SHORTNAME}', '', d)}"
# -----------------------------------------------------------------------------
# DK1 configuration
# Configurations
# -----------------------------------------------------------------------------
# Define additional targets to use
UBOOT_EXTLINUX_TARGETS_sdcard += "${@bb.utils.contains('STM32MP_DEVICETREE', 'stm32mp157a-dk1', 'mp157a-dk1_sdcard', '', d)}"
UBOOT_EXTLINUX_TARGETS_sdcard-optee += "${@bb.utils.contains('STM32MP_DEVICETREE', 'stm32mp157a-dk1', 'mp157a-dk1_sdcard-optee', '', d)}"
# Define bootprefix for each target
UBOOT_EXTLINUX_BOOTPREFIXES_mp157a-dk1_sdcard = "${EXTLINUX_BOOTDEVICE_SDCARD}_stm32mp157a-dk1_"
UBOOT_EXTLINUX_BOOTPREFIXES_mp157a-dk1_sdcard-optee = "${EXTLINUX_BOOTDEVICE_SDCARD}_stm32mp157a-dk1-optee_"
UBOOT_EXTLINUX_TARGETS += "${@bb.utils.contains_any('BOOTDEVICE_LABELS', [ 'sdcard', 'nor-sdcard' ], 'target-sdcard', '', d)}"
UBOOT_EXTLINUX_TARGETS += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'emmc', 'target-emmc', '', d)}"
UBOOT_EXTLINUX_TARGETS += "${@bb.utils.contains_any('BOOTDEVICE_LABELS', [ 'nand-4-256', 'nor-nand-4-256' ], 'target-nand', '', d)}"
# Define labels for each target
UBOOT_EXTLINUX_LABELS_mp157a-dk1_sdcard = "stm32mp157a-dk1-sdcard"
UBOOT_EXTLINUX_LABELS_mp157a-dk1_sdcard-optee = "stm32mp157a-dk1-sdcard-optee"
# Define default boot config for each target
UBOOT_EXTLINUX_DEFAULT_LABEL_mp157a-dk1_sdcard ?= "stm32mp157a-dk1-sdcard"
UBOOT_EXTLINUX_DEFAULT_LABEL_mp157a-dk1_sdcard-optee ?= "stm32mp157a-dk1-sdcard-optee"
# Define FDT overrides for all labels
UBOOT_EXTLINUX_FDT_stm32mp157a-dk1-sdcard = "/stm32mp157a-dk1.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157a-dk1-sdcard-optee = "/stm32mp157a-dk1.dtb"
# Define ROOT overrides for all labels
UBOOT_EXTLINUX_ROOT_stm32mp157a-dk1-sdcard = "${EXTLINUX_ROOT_SDCARD}"
UBOOT_EXTLINUX_ROOT_stm32mp157a-dk1-sdcard-optee = "${EXTLINUX_ROOT_SDCARD_OPTEE}"
# (mandatory to allow specific var override if needed)
UBOOT_EXTLINUX_LABELS_target-sdcard += "rootfs"
UBOOT_EXTLINUX_LABELS_target-emmc += "rootfs"
UBOOT_EXTLINUX_LABELS_target-nand += "rootfs"
# Define specific bootprefix for each target
UBOOT_EXTLINUX_BOOTPREFIXES_target-sdcard = "${DEVICE_SDCARD}_"
UBOOT_EXTLINUX_BOOTPREFIXES_target-emmc = "${DEVICE_EMMC}_"
UBOOT_EXTLINUX_BOOTPREFIXES_target-nand = "${DEVICE_NAND}_"
# Define ROOT overrides for each target
UBOOT_EXTLINUX_ROOT_target-nand = "ubi.mtd=UBI rootfstype=ubifs root=ubi0:rootfs"
UBOOT_EXTLINUX_ROOT_target-sdcard = "root=PARTUUID=${DEVICE_PARTUUID_ROOTFS_SDCARD}"
UBOOT_EXTLINUX_ROOT_target-emmc = "root=PARTUUID=${DEVICE_PARTUUID_ROOTFS_EMMC}"
# Define INITRD overrides for nand target
UBOOT_EXTLINUX_INITRD_target-nand = ""
# -----------------------------------------------------------------------------
# Append specific examples configs
# -----------------------------------------------------------------------------
# Enable UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG var that allows to configure
# additional target:
# UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG = "extra-target"
# Then define new label(s) to append to the label list from current target
# UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG[extra-target] = "newlabel1 newlabel2"
# This will create new 'extlinux.conf' file with name 'extra-target_extlinux.conf'
# that will use UBOOT_EXTLINUX_LABELS label list defined for current target plus
# the 'newlabel1' and 'newlabel2' labels.
# -----------------------------------------------------------------------------
# Define additional extra targets to consider
UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG_target-sdcard += "${STM32MP_DT_FILES_DK}"
UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG_target-sdcard += "${STM32MP_DT_FILES_ED}"
UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG_target-sdcard += "${STM32MP_DT_FILES_EV}"
UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG_target-emmc += "${STM32MP_DT_FILES_ED}"
UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG_target-emmc += "${STM32MP_DT_FILES_EV}"
UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG_target-nand += "${STM32MP_DT_FILES_ED}"
UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG_target-nand += "${STM32MP_DT_FILES_EV}"
# Define extra label configuration
UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG[stm32mp157c-dk2] += "stm32mp157c-dk2-a7"
UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG[stm32mp157c-dk2] += "stm32mp157c-dk2-m4"
UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG[stm32mp157c-ev1] += "stm32mp157c-ev1-a7"
UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG[stm32mp157c-ev1] += "stm32mp157c-ev1-m4"
UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG[stm32mp157f-dk2] += "stm32mp157f-dk2-a7"
UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG[stm32mp157f-dk2] += "stm32mp157f-dk2-m4"
UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG[stm32mp157f-ev1] += "stm32mp157f-ev1-a7"
UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG[stm32mp157f-ev1] += "stm32mp157f-ev1-m4"
# -----------------------------------------------------------------------------
# DK2 configuration
# Configure A7 examples labels
# -----------------------------------------------------------------------------
# Define additional targets to use
UBOOT_EXTLINUX_TARGETS_sdcard += "${@bb.utils.contains('STM32MP_DEVICETREE', 'stm32mp157c-dk2', 'mp157c-dk2_sdcard', '', d)}"
UBOOT_EXTLINUX_TARGETS_sdcard-optee += "${@bb.utils.contains('STM32MP_DEVICETREE', 'stm32mp157c-dk2', 'mp157c-dk2_sdcard-optee', '', d)}"
# Define bootprefix for each target
UBOOT_EXTLINUX_BOOTPREFIXES_mp157c-dk2_sdcard = "${EXTLINUX_BOOTDEVICE_SDCARD}_stm32mp157c-dk2_"
UBOOT_EXTLINUX_BOOTPREFIXES_mp157c-dk2_sdcard-optee = "${EXTLINUX_BOOTDEVICE_SDCARD}_stm32mp157c-dk2-optee_"
# Define labels for each target
UBOOT_EXTLINUX_LABELS_mp157c-dk2_sdcard = "stm32mp157c-dk2-sdcard"
UBOOT_EXTLINUX_LABELS_mp157c-dk2_sdcard-optee = "stm32mp157c-dk2-sdcard-optee"
# Define default boot config for each target
UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-dk2_sdcard ?= "stm32mp157c-dk2-sdcard"
UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-dk2_sdcard-optee ?= "stm32mp157c-dk2-sdcard-optee"
# Define FDT overrides for all labels
UBOOT_EXTLINUX_FDT_stm32mp157c-dk2-sdcard = "/stm32mp157c-dk2.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-dk2-sdcard-optee = "/stm32mp157c-dk2.dtb"
# Define ROOT overrides for all labels
UBOOT_EXTLINUX_ROOT_stm32mp157c-dk2-sdcard = "${EXTLINUX_ROOT_SDCARD}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-dk2-sdcard-optee = "${EXTLINUX_ROOT_SDCARD_OPTEE}"
# -----------------------------------------------------------------------------
# Append A7 examples labels for each target
UBOOT_EXTLINUX_LABELS_mp157c-dk2_sdcard += "stm32mp157c-dk2-a7-examples-sdcard"
UBOOT_EXTLINUX_LABELS_mp157c-dk2_sdcard-optee += "stm32mp157c-dk2-a7-examples-sdcard-optee"
# Define FDT overrides for A7 labels
UBOOT_EXTLINUX_FDT_stm32mp157c-dk2-a7-examples-sdcard = "/stm32mp157c-dk2-a7-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-dk2-a7-examples-sdcard-optee = "/stm32mp157c-dk2-a7-examples.dtb"
# Define ROOT overrides for A7 labels
UBOOT_EXTLINUX_ROOT_stm32mp157c-dk2-a7-examples-sdcard = "${EXTLINUX_ROOT_SDCARD}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-dk2-a7-examples-sdcard-optee = "${EXTLINUX_ROOT_SDCARD_OPTEE}"
# -----------------------------------------------------------------------------
# Append M4 examples labels for each target
UBOOT_EXTLINUX_LABELS_mp157c-dk2_sdcard += "stm32mp157c-dk2-m4-examples-sdcard"
UBOOT_EXTLINUX_LABELS_mp157c-dk2_sdcard-optee += "stm32mp157c-dk2-m4-examples-sdcard-optee"
# Define FDT overrides for M4 labels
UBOOT_EXTLINUX_FDT_stm32mp157c-dk2-m4-examples-sdcard = "/stm32mp157c-dk2-m4-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-dk2-m4-examples-sdcard-optee = "/stm32mp157c-dk2-m4-examples.dtb"
# Define ROOT overrides for M4 labels
UBOOT_EXTLINUX_ROOT_stm32mp157c-dk2-m4-examples-sdcard = "${EXTLINUX_ROOT_SDCARD}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-dk2-m4-examples-sdcard-optee = "${EXTLINUX_ROOT_SDCARD_OPTEE}"
# Define MENU DESCRIPTION overrides for new A7 labels
UBOOT_EXTLINUX_MENU_DESCRIPTION_stm32mp157c-dk2-a7 = "stm32mp157c-dk2-a7-examples"
UBOOT_EXTLINUX_MENU_DESCRIPTION_stm32mp157c-ev1-a7 = "stm32mp157c-ev1-a7-examples"
UBOOT_EXTLINUX_MENU_DESCRIPTION_stm32mp157f-dk2-a7 = "stm32mp157f-dk2-a7-examples"
UBOOT_EXTLINUX_MENU_DESCRIPTION_stm32mp157f-ev1-a7 = "stm32mp157f-ev1-a7-examples"
# Define FDT overrides for new A7 labels
UBOOT_EXTLINUX_FDT_stm32mp157c-dk2-a7 = "/stm32mp157c-dk2-a7-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-a7 = "/stm32mp157c-ev1-a7-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157f-dk2-a7 = "/stm32mp157f-dk2-a7-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157f-ev1-a7 = "/stm32mp157f-ev1-a7-examples.dtb"
# -----------------------------------------------------------------------------
# ED1 configuration
# Configure M4 examples labels
# -----------------------------------------------------------------------------
# Define additional targets to use
UBOOT_EXTLINUX_TARGETS_emmc += "${@bb.utils.contains('STM32MP_DEVICETREE', 'stm32mp157c-ed1', 'mp157c-ed1_emmc', '', d)}"
UBOOT_EXTLINUX_TARGETS_emmc-optee += "${@bb.utils.contains('STM32MP_DEVICETREE', 'stm32mp157c-ed1', 'mp157c-ed1_emmc-optee', '', d)}"
UBOOT_EXTLINUX_TARGETS_sdcard += "${@bb.utils.contains('STM32MP_DEVICETREE', 'stm32mp157c-ed1', 'mp157c-ed1_sdcard', '', d)}"
UBOOT_EXTLINUX_TARGETS_sdcard-optee += "${@bb.utils.contains('STM32MP_DEVICETREE', 'stm32mp157c-ed1', 'mp157c-ed1_sdcard-optee', '', d)}"
# Define bootprefix for each target
UBOOT_EXTLINUX_BOOTPREFIXES_mp157c-ed1_emmc = "${EXTLINUX_BOOTDEVICE_EMMC}_stm32mp157c-ed1_"
UBOOT_EXTLINUX_BOOTPREFIXES_mp157c-ed1_emmc-optee = "${EXTLINUX_BOOTDEVICE_EMMC}_stm32mp157c-ed1-optee_"
UBOOT_EXTLINUX_BOOTPREFIXES_mp157c-ed1_sdcard = "${EXTLINUX_BOOTDEVICE_SDCARD}_stm32mp157c-ed1_"
UBOOT_EXTLINUX_BOOTPREFIXES_mp157c-ed1_sdcard-optee = "${EXTLINUX_BOOTDEVICE_SDCARD}_stm32mp157c-ed1-optee_"
# Define labels for each target
UBOOT_EXTLINUX_LABELS_mp157c-ed1_emmc = "stm32mp157c-ed1-emmc"
UBOOT_EXTLINUX_LABELS_mp157c-ed1_emmc-optee = "stm32mp157c-ed1-emmc-optee"
UBOOT_EXTLINUX_LABELS_mp157c-ed1_sdcard = "stm32mp157c-ed1-sdcard"
UBOOT_EXTLINUX_LABELS_mp157c-ed1_sdcard-optee = "stm32mp157c-ed1-sdcard-optee"
# Define default boot config for each target
UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-ed1_emmc ?= "stm32mp157c-ed1-emmc"
UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-ed1_emmc-optee ?= "stm32mp157c-ed1-emmc-optee"
UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-ed1_sdcard ?= "stm32mp157c-ed1-sdcard"
UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-ed1_sdcard-optee ?= "stm32mp157c-ed1-sdcard-optee"
# Define FDT overrides for all labels
UBOOT_EXTLINUX_FDT_stm32mp157c-ed1-emmc = "/stm32mp157c-ed1.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ed1-emmc-optee = "/stm32mp157c-ed1.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ed1-sdcard = "/stm32mp157c-ed1.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ed1-sdcard-optee = "/stm32mp157c-ed1.dtb"
# Define ROOT overrides for all labels
UBOOT_EXTLINUX_ROOT_stm32mp157c-ed1-emmc = "${EXTLINUX_ROOT_EMMC}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ed1-emmc-optee = "${EXTLINUX_ROOT_EMMC_OPTEE}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ed1-sdcard = "${EXTLINUX_ROOT_SDCARD}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ed1-sdcard-optee = "${EXTLINUX_ROOT_SDCARD_OPTEE}"
# -----------------------------------------------------------------------------
# EV1 configuration
# -----------------------------------------------------------------------------
# Define additional targets to use
UBOOT_EXTLINUX_TARGETS_emmc += "${@bb.utils.contains('STM32MP_DEVICETREE', 'stm32mp157c-ev1', 'mp157c-ev1_emmc', '', d)}"
UBOOT_EXTLINUX_TARGETS_emmc-optee += "${@bb.utils.contains('STM32MP_DEVICETREE', 'stm32mp157c-ev1', 'mp157c-ev1_emmc-optee', '', d)}"
UBOOT_EXTLINUX_TARGETS_nand += "${@bb.utils.contains('STM32MP_DEVICETREE', 'stm32mp157c-ev1', 'mp157c-ev1_nand', '', d)}"
UBOOT_EXTLINUX_TARGETS_nor-sdcard += "${@bb.utils.contains('STM32MP_DEVICETREE', 'stm32mp157c-ev1', 'mp157c-ev1_nor-sdcard', '', d)}"
UBOOT_EXTLINUX_TARGETS_nor-emmc += "${@bb.utils.contains('STM32MP_DEVICETREE', 'stm32mp157c-ev1', 'mp157c-ev1_nor-emmc', '', d)}"
UBOOT_EXTLINUX_TARGETS_sdcard += "${@bb.utils.contains('STM32MP_DEVICETREE', 'stm32mp157c-ev1', 'mp157c-ev1_sdcard', '', d)}"
UBOOT_EXTLINUX_TARGETS_sdcard-optee += "${@bb.utils.contains('STM32MP_DEVICETREE', 'stm32mp157c-ev1', 'mp157c-ev1_sdcard-optee', '', d)}"
# Define bootprefix for each target
UBOOT_EXTLINUX_BOOTPREFIXES_mp157c-ev1_emmc = "${EXTLINUX_BOOTDEVICE_EMMC}_stm32mp157c-ev1_"
UBOOT_EXTLINUX_BOOTPREFIXES_mp157c-ev1_emmc-optee = "${EXTLINUX_BOOTDEVICE_EMMC}_stm32mp157c-ev1-optee_"
UBOOT_EXTLINUX_BOOTPREFIXES_mp157c-ev1_nand = "${EXTLINUX_BOOTDEVICE_NAND}_stm32mp157c-ev1_"
UBOOT_EXTLINUX_BOOTPREFIXES_mp157c-ev1_nor-sdcard = "${EXTLINUX_BOOTDEVICE_NORSDCARD}_stm32mp157c-ev1_"
UBOOT_EXTLINUX_BOOTPREFIXES_mp157c-ev1_nor-emmc = "${EXTLINUX_BOOTDEVICE_NOREMMC}_stm32mp157c-ev1_"
UBOOT_EXTLINUX_BOOTPREFIXES_mp157c-ev1_sdcard = "${EXTLINUX_BOOTDEVICE_SDCARD}_stm32mp157c-ev1_"
UBOOT_EXTLINUX_BOOTPREFIXES_mp157c-ev1_sdcard-optee = "${EXTLINUX_BOOTDEVICE_SDCARD}_stm32mp157c-ev1-optee_"
# Define labels for each target
UBOOT_EXTLINUX_LABELS_mp157c-ev1_emmc = "stm32mp157c-ev1-emmc"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_emmc-optee = "stm32mp157c-ev1-emmc-optee"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_nand = "stm32mp157c-ev1-nand"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_nor-sdcard = "stm32mp157c-ev1-nor-sdcard"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_nor-emmc = "stm32mp157c-ev1-nor-emmc"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_sdcard = "stm32mp157c-ev1-sdcard"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_sdcard-optee = "stm32mp157c-ev1-sdcard-optee"
# Define default boot config for each target
UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-ev1_emmc ?= "stm32mp157c-ev1-emmc"
UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-ev1_emmc-optee ?= "stm32mp157c-ev1-emmc-optee"
UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-ev1_nand ?= "stm32mp157c-ev1-nand"
UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-ev1_nor-sdcard ?= "stm32mp157c-ev1-nor-sdcard"
UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-ev1_nor-emmc ?= "stm32mp157c-ev1-nor-emmc"
UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-ev1_sdcard ?= "stm32mp157c-ev1-sdcard"
UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-ev1_sdcard-optee ?= "stm32mp157c-ev1-sdcard-optee"
# Define FDT overrides for all labels
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-emmc = "/stm32mp157c-ev1.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-emmc-optee = "/stm32mp157c-ev1.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-nand = "/stm32mp157c-ev1.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-nor-sdcard = "/stm32mp157c-ev1.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-nor-emmc = "/stm32mp157c-ev1.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-sdcard = "/stm32mp157c-ev1.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-sdcard-optee = "/stm32mp157c-ev1.dtb"
# Define ROOT overrides for all labels
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-emmc = "${EXTLINUX_ROOT_EMMC}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-emmc-optee = "${EXTLINUX_ROOT_EMMC_OPTEE}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-nand = "${EXTLINUX_ROOT_NAND}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-nor-sdcard = "${EXTLINUX_ROOT_NORSDCARD}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-nor-emmc = "${EXTLINUX_ROOT_NOREMMC}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-sdcard = "${EXTLINUX_ROOT_SDCARD}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-sdcard-optee = "${EXTLINUX_ROOT_SDCARD_OPTEE}"
# -----------------------------------------------------------------------------
# Append A7 examples labels for each target
UBOOT_EXTLINUX_LABELS_mp157c-ev1_emmc += "stm32mp157c-ev1-a7-examples-emmc"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_emmc-optee += "stm32mp157c-ev1-a7-examples-emmc-optee"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_nand += "stm32mp157c-ev1-a7-examples-nand"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_nor-sdcard += "stm32mp157c-ev1-a7-examples-nor-sdcard"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_nor-emmc += "stm32mp157c-ev1-a7-examples-nor-emmc"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_sdcard += "stm32mp157c-ev1-a7-examples-sdcard"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_sdcard-optee += "stm32mp157c-ev1-a7-examples-sdcard-optee"
# Define FDT overrides for A7 labels
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-a7-examples-emmc = "/stm32mp157c-ev1-a7-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-a7-examples-emmc-optee = "/stm32mp157c-ev1-a7-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-a7-examples-nand = "/stm32mp157c-ev1-a7-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-a7-examples-nor-sdcard = "/stm32mp157c-ev1-a7-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-a7-examples-nor-emmc = "/stm32mp157c-ev1-a7-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-a7-examples-sdcard = "/stm32mp157c-ev1-a7-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-a7-examples-sdcard-optee = "/stm32mp157c-ev1-a7-examples.dtb"
# Define ROOT overrides for A7 labels
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-a7-examples-emmc = "${EXTLINUX_ROOT_EMMC}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-a7-examples-emmc-optee = "${EXTLINUX_ROOT_EMMC_OPTEE}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-a7-examples-nand = "${EXTLINUX_ROOT_NAND}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-a7-examples-nor-sdcard = "${EXTLINUX_ROOT_NORSDCARD}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-a7-examples-nor-emmc = "${EXTLINUX_ROOT_NOREMMC}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-a7-examples-sdcard = "${EXTLINUX_ROOT_SDCARD}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-a7-examples-sdcard-optee = "${EXTLINUX_ROOT_SDCARD_OPTEE}"
# -----------------------------------------------------------------------------
# Append M4 examples labels for each target
UBOOT_EXTLINUX_LABELS_mp157c-ev1_emmc += "stm32mp157c-ev1-m4-examples-emmc"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_emmc-optee += "stm32mp157c-ev1-m4-examples-emmc-optee"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_nand += "stm32mp157c-ev1-m4-examples-nand"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_nor-sdcard += "stm32mp157c-ev1-m4-examples-nor-sdcard"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_nor-emmc += "stm32mp157c-ev1-m4-examples-nor-emmc"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_sdcard += "stm32mp157c-ev1-m4-examples-sdcard"
UBOOT_EXTLINUX_LABELS_mp157c-ev1_sdcard-optee += "stm32mp157c-ev1-m4-examples-sdcard-optee"
# Define FDT overrides for M4 labels
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-m4-examples-emmc = "/stm32mp157c-ev1-m4-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-m4-examples-emmc-optee = "/stm32mp157c-ev1-m4-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-m4-examples-nand = "/stm32mp157c-ev1-m4-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-m4-examples-nor-sdcard = "/stm32mp157c-ev1-m4-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-m4-examples-nor-emmc = "/stm32mp157c-ev1-m4-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-m4-examples-sdcard = "/stm32mp157c-ev1-m4-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-m4-examples-sdcard-optee = "/stm32mp157c-ev1-m4-examples.dtb"
# Define ROOT overrides for M4 labels
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-m4-examples-emmc = "${EXTLINUX_ROOT_EMMC}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-m4-examples-emmc-optee = "${EXTLINUX_ROOT_EMMC_OPTEE}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-m4-examples-nand = "${EXTLINUX_ROOT_NAND}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-m4-examples-nor-sdcard = "${EXTLINUX_ROOT_NORSDCARD}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-m4-examples-nor-emmc = "${EXTLINUX_ROOT_NOREMMC}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-m4-examples-sdcard = "${EXTLINUX_ROOT_SDCARD}"
UBOOT_EXTLINUX_ROOT_stm32mp157c-ev1-m4-examples-sdcard-optee = "${EXTLINUX_ROOT_SDCARD_OPTEE}"
# Define MENU DESCRIPTION overrides for new A7 labels
UBOOT_EXTLINUX_MENU_DESCRIPTION_stm32mp157c-dk2-m4 = "stm32mp157c-dk2-m4-examples"
UBOOT_EXTLINUX_MENU_DESCRIPTION_stm32mp157c-ev1-m4 = "stm32mp157c-ev1-m4-examples"
UBOOT_EXTLINUX_MENU_DESCRIPTION_stm32mp157f-dk2-m4 = "stm32mp157f-dk2-m4-examples"
UBOOT_EXTLINUX_MENU_DESCRIPTION_stm32mp157f-ev1-m4 = "stm32mp157f-ev1-m4-examples"
# Define FDT overrides for new M4 labels
UBOOT_EXTLINUX_FDT_stm32mp157c-dk2-m4 = "/stm32mp157c-dk2-m4-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157c-ev1-m4 = "/stm32mp157c-ev1-m4-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157f-dk2-m4 = "/stm32mp157f-dk2-m4-examples.dtb"
UBOOT_EXTLINUX_FDT_stm32mp157f-ev1-m4 = "/stm32mp157f-ev1-m4-examples.dtb"
@@ -2,53 +2,70 @@
include conf/machine/include/gpu_vivante.inc
#------------------
#
# GPU
#
# =========================================================================
# gpu
# =========================================================================
# To support gpu on a machine,
# please add "gpu" to MACHINE_FEATURES in machine conf file
GPU_LIST = "gcnano-driver-stm32mp"
GPU_LIST ?= "\
gcnano-driver-stm32mp \
"
GPU_IMAGE_INSTALL = "${@bb.utils.contains('MACHINE_FEATURES', 'gpu', '${GPU_LIST}', '', d)} "
#------------------
#
# =========================================================================
# alsa
# =========================================================================
ALSA_LIST ?= "\
alsa-state-stm32mp1 \
"
ALSA_IMAGE_INSTALL = "${@bb.utils.contains('COMBINED_FEATURES', 'alsa', '${ALSA_LIST}', '', d)} "
# =========================================================================
# bluetooth
# =========================================================================
BLUETOOTH_LIST ?= ""
BLUETOOTH_IMAGE_INSTALL = "${@bb.utils.contains('MACHINE_FEATURES', 'bluetooth', '${BLUETOOTH_LIST}', '', d)}"
# =========================================================================
# m4copro
# =========================================================================
M4COPRO_LIST ?= "\
m4fwcoredump \
m4projects-stm32mp1 \
"
M4COPRO_IMAGE_INSTALL = "${@bb.utils.contains('MACHINE_FEATURES', 'm4copro', '${M4COPRO_LIST}', '', d)}"
# =========================================================================
# optee
#
OPTEE_LIST = "optee-os-stm32mp"
# =========================================================================
OPTEE_LIST ?= "\
virtual/optee-os \
"
OPTEE_IMAGE_INSTALL = "${@bb.utils.contains('COMBINED_FEATURES', 'optee', '${OPTEE_LIST}', '', d)} "
PREFERRED_PROVIDER_optee-os = "optee-os-stm32mp"
OPTEE_BINARY = "optee-os-stm32mp"
OPTEE_BINARY ?= "\
virtual/optee-os \
"
OPTEE_BINARY_INSTALL = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '${OPTEE_BINARY}', '', d)} "
#------------------
#
# Alsa
#
ALSA_ADDONS = "alsa-state-stm32mp1"
ALSA_ADDONS_INSTALL = "${@bb.utils.contains('COMBINED_FEATURES', 'alsa', '${ALSA_ADDONS}', '', d)} "
# =========================================================================
# wifi
# =========================================================================
WIFI_LIST ?= ""
WIFI_IMAGE_INSTALL = "${@bb.utils.contains('MACHINE_FEATURES', 'wifi', '${WIFI_LIST}', '', d)} "
#------------------
#
# bluetooth
#
BLUETOOTH_LIST = " linux-firmware-bluetooth-bcm4343 "
BLUETOOTH_IMAGE_INSTALL = "${@bb.utils.contains('MACHINE_FEATURES', 'bluetooth', '${BLUETOOTH_LIST}', '', d)} "
#------------------
#
# =========================================================================
# Image appends
#
# =========================================================================
EXTRA_IMAGEDEPENDS_append = " \
${OPTEE_BINARY_INSTALL} \
"
MACHINE_EXTRA_RRECOMMENDS_append = " \
${GPU_IMAGE_INSTALL} \
${OPTEE_IMAGE_INSTALL} \
${ALSA_ADDONS_INSTALL} \
${BLUETOOTH_IMAGE_INSTALL}\
${GPU_IMAGE_INSTALL} \
${ALSA_IMAGE_INSTALL} \
${BLUETOOTH_IMAGE_INSTALL} \
${M4COPRO_IMAGE_INSTALL} \
${OPTEE_IMAGE_INSTALL} \
${WIFI_IMAGE_INSTALL} \
"
@@ -1,7 +1,7 @@
#@DESCRIPTION: STM32MP machine flashlayout deleteall configuration
# Set configuration file to monitor
FLASHLAYOUT_CONFIGURE_FILES_append = " ${STM32MP_BASE}/conf/machine/include/st-machine-flashlayout-deleteall-stm32mp.inc:True "
# Add specific scheme to provide flashlayout that will erase all storage devices
FLASHLAYOUT_BOOTSCHEME_LABELS += "deleteall"
# -----------------------------------------------------------------------------
# Define config labels
@@ -9,40 +9,47 @@ FLASHLAYOUT_CONFIGURE_FILES_append = " ${STM32MP_BASE}/conf/machine/include/st-m
FLASHLAYOUT_CONFIG_LABELS_deleteall = "disco eval"
# -----------------------------------------------------------------------------
# Define label types
# Define label types for each config
# -----------------------------------------------------------------------------
FLASHLAYOUT_TYPE_LABELS_deleteall_disco = "${STM32MP_DT_FILES_DK}"
FLASHLAYOUT_TYPE_LABELS_deleteall_eval = "${STM32MP_DT_FILES_ED} ${STM32MP_DT_FILES_EV}"
# -----------------------------------------------------------------------------
# Define partitions to use
# Define partitions to consider for flashlayout file generation
#
# NB: To manage bootloader partitions, simplification is done by directly
# re-using 'fsbl1-boot' and 'ssbl-boot' partitions already defined in file
# NB: We re-use as much as possible partitions already defined in file
# 'st-machine-flashlayout-stm32mp.inc'
# -----------------------------------------------------------------------------
FLASHLAYOUT_PARTITION_LABELS_deleteall_disco = "fsbl1-boot ssbl-boot sdcardall"
FLASHLAYOUT_PARTITION_LABELS_deleteall_eval = "fsbl1-boot ssbl-boot emmcfsbl1 emmcfsbl2 emmcall nandall norall sdcardall"
FLASHLAYOUT_PARTITION_LABELS_deleteall = "fsbl1-boot ssbl-boot fsbl1 fsbl2 emmcall nandall norall sdcardall"
# -----------------------------------------------------------------------------
# Partition configuration for each partition label
FLASHLAYOUT_PARTITION_DEVICE_emmcfsbl1 = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_emmcfsbl2 = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_emmcall = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_nandall = "${DEVICE_NAND}"
FLASHLAYOUT_PARTITION_DEVICE_norall = "${DEVICE_NOR}"
FLASHLAYOUT_PARTITION_DEVICE_sdcardall = "${DEVICE_SDCARD}"
# Specific for fsbl1-boot ssbl-boot partitions
FLASHLAYOUT_PARTITION_DEVICE_deleteall_fsbl1-boot = "none"
FLASHLAYOUT_PARTITION_DEVICE_deleteall_ssbl-boot = "none"
FLASHLAYOUT_PARTITION_ENABLE_deleteall = "PED"
FLASHLAYOUT_PARTITION_ENABLE_deleteall_fsbl1-boot = "-"
FLASHLAYOUT_PARTITION_ENABLE_deleteall_ssbl-boot = "-"
FLASHLAYOUT_PARTITION_OFFSET_deleteall = "0x0"
FLASHLAYOUT_PARTITION_OFFSET_deleteall_emmcfsbl1 = "${FLASHLAYOUT_PARTITION_OFFSET_emmc_fsbl1}"
FLASHLAYOUT_PARTITION_OFFSET_deleteall_emmcfsbl2 = "${FLASHLAYOUT_PARTITION_OFFSET_emmc_fsbl2}"
FLASHLAYOUT_PARTITION_ID_emmcall = "0x30"
FLASHLAYOUT_PARTITION_ID_nandall = "0x40"
FLASHLAYOUT_PARTITION_ID_norall = "0x50"
FLASHLAYOUT_PARTITION_ID_sdcardall = "0x60"
FLASHLAYOUT_PARTITION_TYPE_emmcall = "RawImage"
FLASHLAYOUT_PARTITION_TYPE_nandall = "RawImage"
FLASHLAYOUT_PARTITION_TYPE_norall = "RawImage"
FLASHLAYOUT_PARTITION_TYPE_sdcardall = "RawImage"
FLASHLAYOUT_PARTITION_DEVICE_deleteall = "none:fsbl1-boot ssbl-boot,${DEVICE_EMMC}:fsbl1 fsbl2 emmcall,${DEVICE_NAND}:nandall,${DEVICE_NOR}:norall,${DEVICE_SDCARD}:sdcardall"
FLASHLAYOUT_PARTITION_OFFSET_deleteall = "0x0"
FLASHLAYOUT_PARTITION_OFFSET_deleteall_fsbl1 = "${DEVICE_START_OFFSET_BOOT0_EMMC}"
FLASHLAYOUT_PARTITION_OFFSET_deleteall_fsbl2 = "${DEVICE_START_OFFSET_BOOT1_EMMC}"
FLASHLAYOUT_PARTITION_BIN2LOAD_deleteall_fsbl1 = "none"
FLASHLAYOUT_PARTITION_BIN2LOAD_deleteall_fsbl2 = "none"
# -----------------------------------------------------------------------------
# The 'deleteall' bootscheme is a trick to generate flashlayout files to clean
# all memory devices on board. There are no specific 'deleteall' bootloader
# binaries so use the 'trusted' or 'optee' one.
BIN2BOOT_REPLACE_PATTERNS_fsbl1-boot_append = " deleteall;trusted"
BIN2BOOT_REPLACE_PATTERNS_ssbl-boot_append = " ${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', 'deleteall;optee', 'deleteall;trusted', d)}"
# binaries so use the proper one ('serialboot', 'optee' or 'trusted').
FLASHLAYOUT_PARTITION_REPLACE_PATTERNS_fsbl1-boot_append = " deleteall;serialboot"
FLASHLAYOUT_PARTITION_REPLACE_PATTERNS_ssbl-boot_append = " deleteall;trusted"
@@ -1,12 +1,14 @@
#@DESCRIPTION: STM32MP machine flashlayout extensible configuration
# Set configuration file to monitor
FLASHLAYOUT_CONFIGURE_FILES_append = " ${STM32MP_BASE}/conf/machine/include/st-machine-flashlayout-extensible-stm32mp.inc:True "
# Add specific scheme to provide flashlayout that will make rootfs extensible to
# remaining device free space
# NOTE: this scheme is ONLY compatible with disco board and trusted bootscheme
FLASHLAYOUT_BOOTSCHEME_LABELS += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'trusted', 'extensible', '', d)}"
# -----------------------------------------------------------------------------
# Define config labels
# -----------------------------------------------------------------------------
FLASHLAYOUT_CONFIG_LABELS_extensible = "sdcard"
FLASHLAYOUT_CONFIG_LABELS_extensible = "${@bb.utils.contains('BOOTDEVICE_LABELS', 'sdcard', 'sdcard', 'none', d)}"
# -----------------------------------------------------------------------------
# Define label types
@@ -20,17 +22,17 @@ FLASHLAYOUT_TYPE_LABELS_extensible = "${STM32MP_DT_FILES_DK}"
# re-using 'fsbl1-boot' and 'ssbl-boot' partitions already defined in file
# 'st-machine-flashlayout-stm32mp.inc'
# -----------------------------------------------------------------------------
FLASHLAYOUT_PARTITION_LABELS_extensible = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl bootfs ${VENDORFS_PART} rootfs"
# -----------------------------------------------------------------------------
# Partition configuration for each partition label
# Specific for fsbl1-boot ssbl-boot partitions
FLASHLAYOUT_PARTITION_DEVICE_extensible_fsbl1-boot = "none"
FLASHLAYOUT_PARTITION_DEVICE_extensible_ssbl-boot = "none"
FLASHLAYOUT_PARTITION_LABELS_extensible = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl ${FLASHLAYOUT_PARTITION_IMAGES}"
FLASHLAYOUT_PARTITION_LABELS_extensible_remove = "userfs"
# -----------------------------------------------------------------------------
# The 'extensible' bootscheme is a trick to generate flashlayout files without
# userfs partition for trusted bootscheme ONLY. So rootfs partition will be
# extended up to the end of memory device, leaving plenty of space for user to
# install more applications via 'apt-get'
BIN2BOOT_REPLACE_PATTERNS_extensible_append = " extensible;trusted"
# Make sure to use 'trusted' bootscheme for binary naming instead of 'extensible'
# each time it is required
FLASHLAYOUT_PARTITION_REPLACE_PATTERNS_extensible_prepend = "extensible;trusted "
# Additionnal replacement is expected for specific fsbl1 bootloader binary, as
# we should use the 'serialboot' one instead of the 'trusted' one
FLASHLAYOUT_PARTITION_REPLACE_PATTERNS_extensible_fsbl1-boot_append = " trusted;serialboot"
@@ -1,87 +1,102 @@
#@DESCRIPTION: STM32MP machine flashlayout configuration
INHERIT += "flashlayout-stm32mp"
# Set configuration file to monitor
FLASHLAYOUT_CONFIGURE_FILES_append = " ${STM32MP_BASE}/conf/machine/include/st-machine-flashlayout-stm32mp.inc:True "
inherit flashlayout-stm32mp
# Add specific dependencies to get all binaries generated before flashlayout files
FLASHLAYOUT_DEPEND_TASKS += "${@bb.utils.contains('EXTRA_IMAGEDEPENDS', 'tf-a-stm32mp', 'tf-a-stm32mp:do_deploy', '', d)}"
FLASHLAYOUT_DEPEND_TASKS += "${@bb.utils.contains('EXTRA_IMAGEDEPENDS', 'u-boot-stm32mp', 'u-boot-stm32mp:do_deploy', '', d)}"
FLASHLAYOUT_DEPEND_TASKS += "${@bb.utils.contains('EXTRA_IMAGEDEPENDS', 'optee-os-stm32mp', 'optee-os-stm32mp:do_deploy', '', d)}"
FLASHLAYOUT_DEPEND_TASKS += "${@bb.utils.contains('EXTRA_IMAGEDEPENDS', 'virtual/trusted-firmware-a', 'virtual/trusted-firmware-a:do_deploy', '', d)}"
FLASHLAYOUT_DEPEND_TASKS += "${@bb.utils.contains('EXTRA_IMAGEDEPENDS', 'virtual/trusted-firmware-a-serialboot', 'virtual/trusted-firmware-a-serialboot:do_deploy', '', d)}"
FLASHLAYOUT_DEPEND_TASKS += "${@bb.utils.contains('EXTRA_IMAGEDEPENDS', 'virtual/bootloader', 'virtual/bootloader:do_deploy', '', d)}"
FLASHLAYOUT_DEPEND_TASKS += "${@bb.utils.contains('EXTRA_IMAGEDEPENDS', 'virtual/optee-os', 'virtual/optee-os:do_deploy', '', d)}"
# -----------------------------------------------------------------------------
# Define flashlayout devices
# For the stm32mp flashlayout files, configuration is done to get output file
# with following name scheme:
# FlashLayout_<CONFIG_LABEL>[_<TYPE_LABEL>-<BOOTSCHEME_LABEL>].tsv
#
# The different labels are stored as list in different vars:
# - <BOOTSCHEME_LABEL> FLASHLAYOUT_BOOTSCHEME_LABELS
# - <CONFIG_LABEL> FLASHLAYOUT_CONFIG_LABELS
# - <TYPE_LABEL> FLASHLAYOUT_TYPE_LABELS
#
# The flashlayout file name is generated with following loop logic:
# for bootscheme in FLASHLAYOUT_BOOTSCHEME_LABELS (expanded according to ongoing OVERRIDES)
# for config in FLASHLAYOUT_CONFIG_LABELS (expanded according to ongoing $bootscheme and OVERRIDES)
# for typelabel in FLASHLAYOUT_TYPE_LABELS (expanded according to ongoing $bootscheme, $config and OVERRIDES)
# if FLASHLAYOUT_BOOTSCHEME_LABELS items > 1 && FLASHLAYOUT_TYPE_LABELS items > 1
# flashlayout_name = FlashLayout_$config_$typelabel-$bootscheme.tsv
# else
# flashlayout_name = FlashLayout_$config.tsv
#
# Each flashlayout file should contain lines that set the partition properties:
# <Opt> <Id> <Name> <Type> <IP> <Offset> <Binary>
#
# The partition properties are set with 'FLASHLAYOUT_PARTITION_xxx' vars:
# - <Opt> FLASHLAYOUT_PARTITION_ENABLE
# - <Id> FLASHLAYOUT_PARTITION_ID
# - <Name> Item from FLASHLAYOUT_PARTITION_LABELS list
# - <Type> FLASHLAYOUT_PARTITION_TYPE
# - <IP> FLASHLAYOUT_PARTITION_DEVICE
# - <Offset> FLASHLAYOUT_PARTITION_OFFSET
# - <Binary> FLASHLAYOUT_PARTITION_BIN2LOAD
#
# For the '$flashlayout_name' flashlayout file, the partition lines are generated
# with following loop logic:
# for partition in FLASHLAYOUT_PARTITION_LABELS (expanded according to ongoing $bootscheme, $config and OVERRIDES)
# OVERRIDES_PREV = OVERRIDES
# OVERRIDES = $partition:OVERRIDES
# Compute partition properties for $partiton (expanded according to ongoing $bootscheme, $config and OVERRIDES)
# Write new partition line to $flashlayout_name
# OVERRIDES = OVERRIDES_PREV
#
# Modifying the OVERRIDES inside the loop allows dynamic configuration for each
# partition property. This leaves plenty of possibility and guarantee specific
# '$partition' override.
# -----------------------------------------------------------------------------
DEVICE_EMMC = "mmc1"
DEVICE_NAND = "nand0"
DEVICE_NOR = "nor0"
DEVICE_SDCARD = "mmc0"
# -----------------------------------------------------------------------------
# EMMC
# Extra space is required to store 'Protective MBR' and 'Primary GPT Header'
# Currently the required size is 17kBytes (i.e. 0x4400)
# We need to align this size to get the first offset to use
DEVICE_START_OFFSET_mmc1 = "0x00080000"
DEVICE_ALIGNMENT_SIZE_mmc1 = "0x00080000"
# -----------------------------------------------------------------------------
# NAND
DEVICE_START_OFFSET_nand0 = "0x00000000"
DEVICE_ALIGNMENT_SIZE_nand0 = "0x00040000"
# -----------------------------------------------------------------------------
# NOR
DEVICE_START_OFFSET_nor0 = "0x00000000"
DEVICE_ALIGNMENT_SIZE_nor0 = "0x00010000"
# -----------------------------------------------------------------------------
# SDCARD
# Extra space is required to store 'Protective MBR' and 'Primary GPT Header'
# Currently the required size is 17kBytes (i.e. 0x4400)
# We need to align this size to get the first offset to use
DEVICE_START_OFFSET_mmc0 = "0x00004400"
DEVICE_ALIGNMENT_SIZE_mmc0 = "0x00000200"
# -----------------------------------------------------------------------------
# Define bootscheme labels
# -----------------------------------------------------------------------------
# Define bootscheme label to allow specific expansion for partition vars
FLASHLAYOUT_BOOTSCHEME_LABELS += "${BOOTSCHEME_LABELS}"
# -----------------------------------------------------------------------------
# Define config labels
# -----------------------------------------------------------------------------
# NOTE: define can be done with following priority assignment:
# 1) list_<BOOTSCHEME>
# 2) list
# 3) Default 'list' to 'none' when not defined
# Priority var assignment (where <OVERRIDES> are the usual override mechanism):
# 1) FLASHLAYOUT_CONFIG_LABELS_<BOOTSCHEME>_<OVERRIDES>
# 2) FLASHLAYOUT_CONFIG_LABELS_<BOOTSCHEME>
# 3) FLASHLAYOUT_CONFIG_LABELS_<OVERRIDES>
# 4) FLASHLAYOUT_CONFIG_LABELS
# -----------------------------------------------------------------------------
# Define supported config labels
FLASHLAYOUT_CONFIG_LABELS += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'emmc', 'emmc', '', d)}"
FLASHLAYOUT_CONFIG_LABELS += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nand-4-256', 'nand-4-256', '', d)}"
FLASHLAYOUT_CONFIG_LABELS += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nor-emmc', 'nor-emmc', '', d)}"
FLASHLAYOUT_CONFIG_LABELS += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nor-nand-4-256', 'nor-nand-4-256', '', d)}"
FLASHLAYOUT_CONFIG_LABELS += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nor-sdcard', 'nor-sdcard', '', d)}"
FLASHLAYOUT_CONFIG_LABELS += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'sdcard', 'sdcard', '', d)}"
# Set by default this variable to 0, and set to 1 only when we are using st-example-image-*
ST_EXAMPLE_IMAGE ??= "0"
#FIXME need to manage overall device size to abort flashlayout creation in case of oversizing the storage devices
# Remove NAND flashlayout when we are using st-example-image-* as rootfs too big for a NAND device size of 1 GBytes
#FLASHLAYOUT_CONFIG_LABELS_remove = "${@bb.utils.contains('ST_EXAMPLE_IMAGE', '1', 'emmc', '', d)}"
FLASHLAYOUT_CONFIG_LABELS_remove = "${@bb.utils.contains('ST_EXAMPLE_IMAGE', '1', 'nand-4-256', '', d)}"
#FLASHLAYOUT_CONFIG_LABELS_remove = "${@bb.utils.contains('ST_EXAMPLE_IMAGE', '1', 'nor-sdcard', '', d)}"
#FLASHLAYOUT_CONFIG_LABELS_remove = "${@bb.utils.contains('ST_EXAMPLE_IMAGE', '1', 'nor-emmc', '', d)}"
FLASHLAYOUT_CONFIG_LABELS_remove = "${@bb.utils.contains('ST_EXAMPLE_IMAGE', '1', 'nor-nand-4-256', '', d)}"
#FLASHLAYOUT_CONFIG_LABELS_remove = "${@bb.utils.contains('ST_EXAMPLE_IMAGE', '1', 'sdcard', '', d)}"
# -----------------------------------------------------------------------------
# Define label types
# Define label types for each config
# -----------------------------------------------------------------------------
# NOTE: define can be done with following priority assignment:
# 1) list_<BOOTSCHEME>_<CONFIG>
# 2) list_<BOOTSCHEME>
# 3) list_<CONFIG>
# 4) list
# 5) Default 'list' to 'none' when not defined
# NOTE: We use devicetree to allow proper filtering on supported storage device
# -----------------------------------------------------------------------------
# Priority var assignment (where <OVERRIDES> are the usual override mechanism):
# 1) FLASHLAYOUT_TYPE_LABELS_<BOOTSCHEME>_<CONFIG>_<OVERRIDES>
# 2) FLASHLAYOUT_TYPE_LABELS_<BOOTSCHEME>_<CONFIG>
# 3) FLASHLAYOUT_TYPE_LABELS_<BOOTSCHEME>_<OVERRIDES>
# 4) FLASHLAYOUT_TYPE_LABELS_<BOOTSCHEME>
# 5) FLASHLAYOUT_TYPE_LABELS_<CONFIG>_<OVERRIDES>
# 6) FLASHLAYOUT_TYPE_LABELS_<CONFIG>
# 7) FLASHLAYOUT_TYPE_LABELS_<OVERRIDES>
# 8) FLASHLAYOUT_TYPE_LABELS
# -----------------------------------------------------------------------------
# EMMC
# Set flashlayout file generation to eval board (mother and daughter) only
@@ -91,98 +106,67 @@ FLASHLAYOUT_TYPE_LABELS_emmc = "${STM32MP_DT_FILES_ED} ${STM32MP_DT_FILES_EV}"
FLASHLAYOUT_TYPE_LABELS_nand-4-256 = "${STM32MP_DT_FILES_EV}"
# NOR
# Set flashlayout file generation to eval board only
FLASHLAYOUT_TYPE_LABELS_nor-emmc = "${STM32MP_DT_FILES_EV}"
FLASHLAYOUT_TYPE_LABELS_nor-nand-4-256 = "${STM32MP_DT_FILES_EV}"
FLASHLAYOUT_TYPE_LABELS_nor-sdcard = "${STM32MP_DT_FILES_EV}"
FLASHLAYOUT_TYPE_LABELS_nor-sdcard = "${STM32MP_DT_FILES_EV}"
# SDCARD
# Set flashlayout file generation for all boards
FLASHLAYOUT_TYPE_LABELS_sdcard = "${STM32MP_DT_FILES_DK} ${STM32MP_DT_FILES_ED} ${STM32MP_DT_FILES_EV}"
# -----------------------------------------------------------------------------
# Define partitions to use
# Define partitions to consider for flashlayout file generation
# -----------------------------------------------------------------------------
# There are few restrictions to follow:
# - The partition for the first boot loader should follow the naming rule:
# fsbl*
# - The partition for the secondary boot loader should follow the naming rule:
# ssbl
# NOTE: There are few restrictions to follow:
# - The partition for the first boot loader should follow the naming
# rule: fsbl*
# - The partition for the secondary boot loader should follow the naming
# rule: ssbl
# -----------------------------------------------------------------------------
# NOTE: define can be done with following priority assignment:
# 1) list_<BOOTSCHEME>_<CONFIG>
# 2) list_<BOOTSCHEME>
# 3) list_<CONFIG>
# 4) list
# 5) Default 'list' to 'none' when not defined
# Priority var assignment (where <OVERRIDES> are the usual override mechanism):
# 1) FLASHLAYOUT_PARTITION_LABELS_<BOOTSCHEME>_<CONFIG>_<OVERRIDES>
# 2) FLASHLAYOUT_PARTITION_LABELS_<BOOTSCHEME>_<CONFIG>
# 3) FLASHLAYOUT_PARTITION_LABELS_<BOOTSCHEME>_<OVERRIDES>
# 4) FLASHLAYOUT_PARTITION_LABELS_<BOOTSCHEME>
# 5) FLASHLAYOUT_PARTITION_LABELS_<CONFIG>_<OVERRIDES>
# 6) FLASHLAYOUT_PARTITION_LABELS_<CONFIG>
# 7) FLASHLAYOUT_PARTITION_LABELS_<OVERRIDES>
# 8) FLASHLAYOUT_PARTITION_LABELS
# -----------------------------------------------------------------------------
VENDORFS_PART = "${@bb.utils.contains('ST_VENDORFS','1','vendorfs','',d)}"
FLASHLAYOUT_PARTITION_LABELS_basic_emmc = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl bootfs ${VENDORFS_PART} rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_basic_nand-4-256 = "none"
FLASHLAYOUT_PARTITION_LABELS_basic_nor-nand-4-256 = "none"
FLASHLAYOUT_PARTITION_LABELS_basic_nor-emmc = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl env empty bootfs ${VENDORFS_PART} rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_basic_nor-sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl env empty bootfs ${VENDORFS_PART} rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_basic_sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl bootfs ${VENDORFS_PART} rootfs userfs"
# FLASHLAYOUT_PARTITION_IMAGES is initalized through PARTITIONS_CONFIG within 'flashlayout-stm32mp' class
FLASHLAYOUT_PARTITION_IMAGES ?= ""
FLASHLAYOUT_PARTITION_LABELS_optee_emmc = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl teeh teed teex bootfs ${VENDORFS_PART} rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_optee_nand-4-256 = "fsbl1-boot ssbl-boot fsbl1 ssbl ssbl2 teeh teed teex ubifs"
FLASHLAYOUT_PARTITION_LABELS_optee_nor-nand-4-256 = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl env teeh teed teex empty emptyfsbl1 emptyssbl emptyssbl2 emptyteeh emptyteed emptyteex ubifs"
FLASHLAYOUT_PARTITION_LABELS_optee_nor-emmc = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl env teeh teed teex empty bootfs ${VENDORFS_PART} rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_optee_nor-sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl env teeh teed teex empty bootfs ${VENDORFS_PART} rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_optee_sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl teeh teed teex bootfs ${VENDORFS_PART} rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_optee_emmc = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl teeh teed teex ${FLASHLAYOUT_PARTITION_IMAGES}"
FLASHLAYOUT_PARTITION_LABELS_optee_nand-4-256 = "fsbl1-boot ssbl-boot fsbl1 ssbl ssbl2 teeh teed teex ubifs"
FLASHLAYOUT_PARTITION_LABELS_optee_nor-sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl env teeh teed teex empty ${FLASHLAYOUT_PARTITION_IMAGES}"
FLASHLAYOUT_PARTITION_LABELS_optee_sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl teeh teed teex ${FLASHLAYOUT_PARTITION_IMAGES}"
FLASHLAYOUT_PARTITION_LABELS_trusted_emmc = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl bootfs ${VENDORFS_PART} rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_trusted_nand-4-256 = "fsbl1-boot ssbl-boot fsbl1 ssbl ssbl2 ubifs"
FLASHLAYOUT_PARTITION_LABELS_trusted_nor-nand-4-256 = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl env empty emptyfsbl1 emptyssbl emptyssbl2 ubifs"
FLASHLAYOUT_PARTITION_LABELS_trusted_nor-emmc = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl env empty bootfs ${VENDORFS_PART} rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_trusted_nor-sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl env empty bootfs ${VENDORFS_PART} rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_trusted_sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl bootfs ${VENDORFS_PART} rootfs userfs"
# To manage properly dynamic boot for NOR use case, our 'boot.src' script scans
# one after one the devices to find out expected binaries from bootfs partition.
# So we make sure to erase all devices we do not want to use to boot
# for our NOR-* boot configurations
FLASHLAYOUT_PARTITION_LABELS_basic_nor-emmc += "nandall sdcardall"
FLASHLAYOUT_PARTITION_LABELS_basic_nor-sdcard += "emmcfsbl1 emmcfsbl2 emmcall nandall"
FLASHLAYOUT_PARTITION_LABELS_optee_nor-nand-4-256 += "emmcfsbl1 emmcfsbl2 emmcall sdcardall"
FLASHLAYOUT_PARTITION_LABELS_optee_nor-emmc += "nandall sdcardall"
FLASHLAYOUT_PARTITION_LABELS_optee_nor-sdcard += "emmcfsbl1 emmcfsbl2 emmcall nandall"
FLASHLAYOUT_PARTITION_LABELS_trusted_nor-nand-4-256 += "emmcfsbl1 emmcfsbl2 emmcall sdcardall"
FLASHLAYOUT_PARTITION_LABELS_trusted_nor-emmc += "nandall sdcardall"
FLASHLAYOUT_PARTITION_LABELS_trusted_nor-sdcard += "emmcfsbl1 emmcfsbl2 emmcall nandall"
FLASHLAYOUT_PARTITION_LABELS_trusted_emmc = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl ${FLASHLAYOUT_PARTITION_IMAGES}"
FLASHLAYOUT_PARTITION_LABELS_trusted_nand-4-256 = "fsbl1-boot ssbl-boot fsbl1 ssbl ssbl2 ubifs"
FLASHLAYOUT_PARTITION_LABELS_trusted_nor-sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl env empty ${FLASHLAYOUT_PARTITION_IMAGES}"
FLASHLAYOUT_PARTITION_LABELS_trusted_sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl ${FLASHLAYOUT_PARTITION_IMAGES}"
# -----------------------------------------------------------------------------
# Partition configuration for each partition label
# NOTE: each item can be defined with following priority assignment:
# 1) item_<BOOTSCHEME>_<CONFIG>_<PARTITION>
# 2) item_<BOOTSCHEME>_<CONFIG>
# 3) item_<BOOTSCHEME>_<PARTITION>
# 4) item_<BOOTSCHEME>
# 5) item_<CONFIG>_<PARTITION>
# 6) item_<CONFIG>
# 7) item_<PARTITION>
# 8) item
# 9) Default 'item' to 'none' when not defined
# Partition properties configuration
# -----------------------------------------------------------------------------
# Priority var assignment (where <OVERRIDES> are the usual override mechanism
# with dynamic append of ongoing 'partition name' item):
# 1) FLASHLAYOUT_PARTITION_xxx_<BOOTSCHEME>_<CONFIG>_<OVERRIDES>
# 2) FLASHLAYOUT_PARTITION_xxx_<BOOTSCHEME>_<CONFIG>
# 3) FLASHLAYOUT_PARTITION_xxx_<BOOTSCHEME>_<OVERRIDES>
# 4) FLASHLAYOUT_PARTITION_xxx_<BOOTSCHEME>
# 5) FLASHLAYOUT_PARTITION_xxx_<CONFIG>_<OVERRIDES>
# 6) FLASHLAYOUT_PARTITION_xxx_<CONFIG>
# 7) FLASHLAYOUT_PARTITION_xxx_<OVERRIDES>
# 8) FLASHLAYOUT_PARTITION_xxx
# 9) Default 'FLASHLAYOUT_PARTITION_xxx' to 'none' when not defined
# -----------------------------------------------------------------------------
FLASHLAYOUT_PARTITION_ENABLE = "P"
FLASHLAYOUT_PARTITION_ENABLE_fsbl1-boot = "-"
FLASHLAYOUT_PARTITION_ENABLE_ssbl-boot = "-"
FLASHLAYOUT_PARTITION_ENABLE_empty = "PE"
FLASHLAYOUT_PARTITION_ENABLE_emptyfsbl1 = "PE"
FLASHLAYOUT_PARTITION_ENABLE_emptyssbl = "PE"
FLASHLAYOUT_PARTITION_ENABLE_emptyssbl2 = "PE"
FLASHLAYOUT_PARTITION_ENABLE_emptyteeh = "PE"
FLASHLAYOUT_PARTITION_ENABLE_emptyteed = "PE"
FLASHLAYOUT_PARTITION_ENABLE_emptyteex = "PE"
FLASHLAYOUT_PARTITION_ENABLE_env = "PED"
# Specific to manage partition erase
FLASHLAYOUT_PARTITION_ENABLE_emmcall = "PED"
FLASHLAYOUT_PARTITION_ENABLE_emmcfsbl1 = "PED"
FLASHLAYOUT_PARTITION_ENABLE_emmcfsbl2 = "PED"
FLASHLAYOUT_PARTITION_ENABLE_nandall = "PED"
FLASHLAYOUT_PARTITION_ENABLE_norall = "PED"
FLASHLAYOUT_PARTITION_ENABLE_sdcardall = "PED"
# Due to association of u-boot and env, the ssbl partition need to be deleted
FLASHLAYOUT_PARTITION_ENABLE_sdcard_ssbl = "PD"
FLASHLAYOUT_PARTITION_ENABLE_emmc_ssbl = "PD"
# -----------------------------------------------------------------------------
# Partition ID
@@ -198,162 +182,75 @@ FLASHLAYOUT_PARTITION_ENABLE_sdcardall = "PED"
# there are two reserved IDs
# 0x01 for FSBL
# 0x03 for SSBL
FLASHLAYOUT_PARTITION_ID_fsbl1-boot = "0x01"
FLASHLAYOUT_PARTITION_ID_ssbl-boot = "0x03"
FLASHLAYOUT_PARTITION_ID_fsbl1 = "0x04"
FLASHLAYOUT_PARTITION_ID_fsbl2 = "0x05"
FLASHLAYOUT_PARTITION_ID_ssbl = "0x06"
FLASHLAYOUT_PARTITION_ID_ssbl2 = "0x07"
FLASHLAYOUT_PARTITION_ID_teeh = "0x0A"
FLASHLAYOUT_PARTITION_ID_teed = "0x0B"
FLASHLAYOUT_PARTITION_ID_teex = "0x0C"
FLASHLAYOUT_PARTITION_ID_empty = "0x10"
FLASHLAYOUT_PARTITION_ID_emptyfsbl1 = "0x11"
FLASHLAYOUT_PARTITION_ID_emptyssbl = "0x12"
FLASHLAYOUT_PARTITION_ID_emptyssbl2 = "0x13"
FLASHLAYOUT_PARTITION_ID_emptyteeh = "0x14"
FLASHLAYOUT_PARTITION_ID_emptyteed = "0x15"
FLASHLAYOUT_PARTITION_ID_emptyteex = "0x16"
FLASHLAYOUT_PARTITION_ID_env = "0x20"
FLASHLAYOUT_PARTITION_ID_ubifs = "0x21"
FLASHLAYOUT_PARTITION_ID_bootfs = "0x21"
FLASHLAYOUT_PARTITION_ID_vendorfs = "0x22"
FLASHLAYOUT_PARTITION_ID_rootfs = "0x23"
FLASHLAYOUT_PARTITION_ID_userfs = "0x24"
# Specific to manage partition erase
FLASHLAYOUT_PARTITION_ID_emmcfsbl1 = "0x08"
FLASHLAYOUT_PARTITION_ID_emmcfsbl2 = "0x09"
FLASHLAYOUT_PARTITION_ID_emmcall = "0x30"
FLASHLAYOUT_PARTITION_ID_nandall = "0x40"
FLASHLAYOUT_PARTITION_ID_norall = "0x50"
FLASHLAYOUT_PARTITION_ID_sdcardall = "0x60"
FLASHLAYOUT_PARTITION_ID_fsbl1-boot = "0x01"
FLASHLAYOUT_PARTITION_ID_ssbl-boot = "0x03"
FLASHLAYOUT_PARTITION_ID_fsbl1 = "0x04"
FLASHLAYOUT_PARTITION_ID_fsbl2 = "0x05"
FLASHLAYOUT_PARTITION_ID_ssbl = "0x06"
FLASHLAYOUT_PARTITION_ID_ssbl2 = "0x07"
FLASHLAYOUT_PARTITION_ID_teeh = "0x0A"
FLASHLAYOUT_PARTITION_ID_teed = "0x0B"
FLASHLAYOUT_PARTITION_ID_teex = "0x0C"
FLASHLAYOUT_PARTITION_ID_empty = "0x10"
FLASHLAYOUT_PARTITION_ID_env = "0x20"
FLASHLAYOUT_PARTITION_ID_ubifs = "0x21"
FLASHLAYOUT_PARTITION_TYPE = "Binary"
FLASHLAYOUT_PARTITION_TYPE_nand-4-256_fsbl1 = "Binary(2)"
FLASHLAYOUT_PARTITION_TYPE_ubifs = "System"
FLASHLAYOUT_PARTITION_TYPE_bootfs = "System"
FLASHLAYOUT_PARTITION_TYPE_vendorfs = "FileSystem"
FLASHLAYOUT_PARTITION_TYPE_rootfs = "FileSystem"
FLASHLAYOUT_PARTITION_TYPE_userfs = "FileSystem"
# Specific to manage partition erase
FLASHLAYOUT_PARTITION_TYPE_emmcall = "RawImage"
FLASHLAYOUT_PARTITION_TYPE_nandall = "RawImage"
FLASHLAYOUT_PARTITION_TYPE_norall = "RawImage"
FLASHLAYOUT_PARTITION_TYPE_sdcardall = "RawImage"
FLASHLAYOUT_PARTITION_DEVICE_emmc = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_nand-4-256 = "${DEVICE_NAND}"
FLASHLAYOUT_PARTITION_DEVICE_nor = "${DEVICE_NOR}"
FLASHLAYOUT_PARTITION_DEVICE_nor-emmc = "${DEVICE_NOR}"
FLASHLAYOUT_PARTITION_DEVICE_nor-emmc_bootfs = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_nor-emmc_vendorfs = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_nor-emmc_rootfs = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_nor-emmc_userfs = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_nor-nand-4-256 = "${DEVICE_NOR}"
FLASHLAYOUT_PARTITION_DEVICE_nor-nand-4-256_emptyfsbl1 = "${DEVICE_NAND}"
FLASHLAYOUT_PARTITION_DEVICE_nor-nand-4-256_emptyssbl = "${DEVICE_NAND}"
FLASHLAYOUT_PARTITION_DEVICE_nor-nand-4-256_emptyssbl2 = "${DEVICE_NAND}"
FLASHLAYOUT_PARTITION_DEVICE_nor-nand-4-256_emptyteeh = "${DEVICE_NAND}"
FLASHLAYOUT_PARTITION_DEVICE_nor-nand-4-256_emptyteed = "${DEVICE_NAND}"
FLASHLAYOUT_PARTITION_DEVICE_nor-nand-4-256_emptyteex = "${DEVICE_NAND}"
FLASHLAYOUT_PARTITION_DEVICE_nor-nand-4-256_ubifs = "${DEVICE_NAND}"
FLASHLAYOUT_PARTITION_DEVICE_nor-sdcard = "${DEVICE_NOR}"
FLASHLAYOUT_PARTITION_DEVICE_nor-sdcard_bootfs = "${DEVICE_SDCARD}"
FLASHLAYOUT_PARTITION_DEVICE_nor-sdcard_vendorfs = "${DEVICE_SDCARD}"
FLASHLAYOUT_PARTITION_DEVICE_nor-sdcard_rootfs = "${DEVICE_SDCARD}"
FLASHLAYOUT_PARTITION_DEVICE_nor-sdcard_userfs = "${DEVICE_SDCARD}"
FLASHLAYOUT_PARTITION_DEVICE_sdcard = "${DEVICE_SDCARD}"
# Specific for fsbl1-boot ssbl-boot partitions
FLASHLAYOUT_PARTITION_DEVICE_basic_fsbl1-boot = "none"
FLASHLAYOUT_PARTITION_DEVICE_basic_ssbl-boot = "none"
FLASHLAYOUT_PARTITION_DEVICE_optee_fsbl1-boot = "none"
FLASHLAYOUT_PARTITION_DEVICE_optee_ssbl-boot = "none"
FLASHLAYOUT_PARTITION_DEVICE_trusted_fsbl1-boot = "none"
FLASHLAYOUT_PARTITION_DEVICE_trusted_ssbl-boot = "none"
# Specific to manage partition erase for NOR-* boot
FLASHLAYOUT_PARTITION_DEVICE_nor-emmc_nandall = "${DEVICE_NAND}"
FLASHLAYOUT_PARTITION_DEVICE_nor-emmc_sdcardall = "${DEVICE_SDCARD}"
FLASHLAYOUT_PARTITION_DEVICE_nor-nand-4-256_emmcall = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_nor-nand-4-256_emmcfsbl1 = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_nor-nand-4-256_emmcfsbl2 = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_nor-nand-4-256_sdcardall = "${DEVICE_SDCARD}"
FLASHLAYOUT_PARTITION_DEVICE_nor-sdcard_emmcall = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_nor-sdcard_emmcfsbl1 = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_nor-sdcard_emmcfsbl2 = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_nor-sdcard_nandall = "${DEVICE_NAND}"
FLASHLAYOUT_PARTITION_DEVICE_emmc = "none:fsbl1-boot ssbl-boot,${DEVICE_EMMC}:default"
FLASHLAYOUT_PARTITION_DEVICE_nand-4-256 = "none:fsbl1-boot ssbl-boot,${DEVICE_NAND}:default"
FLASHLAYOUT_PARTITION_DEVICE_nor-sdcard = "none:fsbl1-boot ssbl-boot,${DEVICE_NOR}:default,${DEVICE_SDCARD}:${FLASHLAYOUT_PARTITION_IMAGES}"
FLASHLAYOUT_PARTITION_DEVICE_sdcard = "none:fsbl1-boot ssbl-boot,${DEVICE_SDCARD}:default"
FLASHLAYOUT_PARTITION_OFFSET_fsbl1-boot = "0x0"
FLASHLAYOUT_PARTITION_OFFSET_ssbl-boot = "0x0"
FLASHLAYOUT_PARTITION_OFFSET_emmc_fsbl1 = "boot1"
FLASHLAYOUT_PARTITION_OFFSET_emmc_fsbl2 = "boot2"
FLASHLAYOUT_PARTITION_OFFSET_emmc_ssbl = "${DEVICE_START_OFFSET_mmc1}"
FLASHLAYOUT_PARTITION_OFFSET_nand-4-256_fsbl1 = "${DEVICE_START_OFFSET_nand0}"
FLASHLAYOUT_PARTITION_OFFSET_nor-sdcard_fsbl1 = "${DEVICE_START_OFFSET_nor0}"
FLASHLAYOUT_PARTITION_OFFSET_nor-sdcard_bootfs = "${DEVICE_START_OFFSET_mmc0}"
FLASHLAYOUT_PARTITION_OFFSET_nor-emmc_fsbl1 = "${DEVICE_START_OFFSET_nor0}"
FLASHLAYOUT_PARTITION_OFFSET_nor-emmc_bootfs = "${DEVICE_START_OFFSET_mmc1}"
FLASHLAYOUT_PARTITION_OFFSET_nor-nand-4-256_fsbl1 = "${DEVICE_START_OFFSET_nor0}"
FLASHLAYOUT_PARTITION_OFFSET_nor-nand-4-256_emptyfsbl1 = "${DEVICE_START_OFFSET_nand0}"
FLASHLAYOUT_PARTITION_OFFSET_sdcard_fsbl1 = "${DEVICE_START_OFFSET_mmc0}"
# Specific to manage partition erase
FLASHLAYOUT_PARTITION_OFFSET_nandall = "0x0"
FLASHLAYOUT_PARTITION_OFFSET_sdcardall = "0x0"
FLASHLAYOUT_PARTITION_OFFSET_emmcall = "0x0"
FLASHLAYOUT_PARTITION_OFFSET_emmcfsbl1 = "${FLASHLAYOUT_PARTITION_OFFSET_emmc_fsbl1}"
FLASHLAYOUT_PARTITION_OFFSET_emmcfsbl2 = "${FLASHLAYOUT_PARTITION_OFFSET_emmc_fsbl2}"
FLASHLAYOUT_PARTITION_OFFSET_emmc_fsbl1 = "${DEVICE_START_OFFSET_BOOT0_EMMC}"
FLASHLAYOUT_PARTITION_OFFSET_emmc_fsbl2 = "${DEVICE_START_OFFSET_BOOT1_EMMC}"
FLASHLAYOUT_PARTITION_OFFSET_emmc_ssbl = "${DEVICE_START_OFFSET_EMMC}"
# Size defined in Kbytes
FLASHLAYOUT_PARTITION_SIZE_fsbl1 = "256"
FLASHLAYOUT_PARTITION_SIZE_nand-4-256_fsbl1 = "2048"
FLASHLAYOUT_PARTITION_SIZE_fsbl2 = "256"
FLASHLAYOUT_PARTITION_SIZE_ssbl = "2048"
FLASHLAYOUT_PARTITION_SIZE_ssbl2 = "2048"
FLASHLAYOUT_PARTITION_SIZE_env = "256"
FLASHLAYOUT_PARTITION_SIZE_env = "512"
FLASHLAYOUT_PARTITION_SIZE_teeh = "256"
FLASHLAYOUT_PARTITION_SIZE_teed = "256"
FLASHLAYOUT_PARTITION_SIZE_teed = "512"
FLASHLAYOUT_PARTITION_SIZE_teex = "256"
# Specific override for partition size as the configuration should follow
# the U-Boot source code where these partition sizes are hard coded
FLASHLAYOUT_PARTITION_SIZE_empty = "0"
# Specific override for MTD partitions hard coded on U-Boot side
FLASHLAYOUT_PARTITION_SIZE_nand-4-256_fsbl1 = "2048"
FLASHLAYOUT_PARTITION_SIZE_nand-4-256_ssbl = "2048"
FLASHLAYOUT_PARTITION_SIZE_nand-4-256_ssbl2 = "2048"
FLASHLAYOUT_PARTITION_SIZE_nand-4-256_teeh = "512"
FLASHLAYOUT_PARTITION_SIZE_nand-4-256_teed = "512"
FLASHLAYOUT_PARTITION_SIZE_nand-4-256_teex = "512"
FLASHLAYOUT_PARTITION_SIZE_empty = "0"
FLASHLAYOUT_PARTITION_SIZE_emptyfsbl1 = "${FLASHLAYOUT_PARTITION_SIZE_nand-4-256_fsbl1}"
FLASHLAYOUT_PARTITION_SIZE_emptyssbl = "${FLASHLAYOUT_PARTITION_SIZE_ssbl}"
FLASHLAYOUT_PARTITION_SIZE_emptyssbl2 = "${FLASHLAYOUT_PARTITION_SIZE_ssbl2}"
FLASHLAYOUT_PARTITION_SIZE_emptyteeh = "${FLASHLAYOUT_PARTITION_SIZE_nand-4-256_teeh}"
FLASHLAYOUT_PARTITION_SIZE_emptyteed = "${FLASHLAYOUT_PARTITION_SIZE_nand-4-256_teed}"
FLASHLAYOUT_PARTITION_SIZE_emptyteex = "${FLASHLAYOUT_PARTITION_SIZE_nand-4-256_teex}"
FLASHLAYOUT_PARTITION_SIZE_bootfs = "${BOOTFS_PARTITION_SIZE}"
FLASHLAYOUT_PARTITION_SIZE_vendorfs = "${VENDORFS_PARTITION_SIZE}"
FLASHLAYOUT_PARTITION_SIZE_rootfs = "${IMAGE_ROOTFS_MAXSIZE}"
FLASHLAYOUT_PARTITION_SIZE_ubifs = "none"
FLASHLAYOUT_PARTITION_SIZE_userfs = "${USERFS_PARTITION_SIZE}"
FLASHLAYOUT_PARTITION_SIZE_nor-sdcard_fsbl1 = "256"
FLASHLAYOUT_PARTITION_SIZE_nor-sdcard_fsbl2 = "256"
FLASHLAYOUT_PARTITION_SIZE_nor-sdcard_ssbl = "2048"
FLASHLAYOUT_PARTITION_SIZE_nor-sdcard_env = "512"
FLASHLAYOUT_PARTITION_SIZE_nor-sdcard_teeh = "256"
FLASHLAYOUT_PARTITION_SIZE_nor-sdcard_teed = "512"
FLASHLAYOUT_PARTITION_SIZE_nor-sdcard_teex = "256"
# Set binaries to use for each partition
FLASHLAYOUT_PARTITION_BIN2LOAD_fsbl1-boot = "tf-a.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_ssbl-boot = "u-boot.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_fsbl1 = "tf-a.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_basic_fsbl1 = "u-boot-spl.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_fsbl2 = "tf-a.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_basic_fsbl2 = "u-boot-spl.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_ssbl = "u-boot.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_basic_ssbl = "u-boot.img"
FLASHLAYOUT_PARTITION_BIN2LOAD_ssbl2 = "u-boot.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_teeh = "tee-header_v2.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_teed = "tee-pageable_v2.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_teex = "tee-pager_v2.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_env = "none"
FLASHLAYOUT_PARTITION_BIN2LOAD_fsbl1-boot = "arm-trusted-firmware/tf-a.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_ssbl-boot = "bootloader/u-boot.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_fsbl1 = "arm-trusted-firmware/tf-a.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_fsbl2 = "arm-trusted-firmware/tf-a.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_ssbl = "bootloader/u-boot.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_ssbl2 = "bootloader/u-boot.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_teeh = "optee/tee-header_v2.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_teed = "optee/tee-pageable_v2.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_teex = "optee/tee-pager_v2.stm32"
FLASHLAYOUT_PARTITION_BIN2LOAD_ubifs = "${IMAGE_LINK_NAME}_nand_4_256_multivolume.ubi"
FLASHLAYOUT_PARTITION_BIN2LOAD_bootfs = "${STM32MP_BOOTFS_IMAGE}-${DISTRO}-${MACHINE}.ext4"
FLASHLAYOUT_PARTITION_BIN2LOAD_vendorfs = "${STM32MP_VENDORFS_IMAGE}-${DISTRO}-${MACHINE}.ext4"
FLASHLAYOUT_PARTITION_BIN2LOAD_rootfs = "${IMAGE_LINK_NAME}.ext4"
FLASHLAYOUT_PARTITION_BIN2LOAD_userfs = "${STM32MP_USERFS_IMAGE}-${DISTRO}-${MACHINE}.ext4"
# -----------------------------------------------------------------------------
# Use the 'BIN2BOOT_REPLACE_PATTERNS' var to allow dynamic binary renaming for
# the bootloader binaries. This is only required for fsbl1-boot and ssbl-boot
# partitions that provides the binary to flash the device.
# Use the 'FLASHLAYOUT_PARTITION_REPLACE_PATTERNS' var to allow dynamic binary
# renaming for the bootloader binaries. This is only required for fsbl1-boot and
# ssbl-boot partitions that provides the binary to flash the device.
# The format to follow is:
# '<PATTERN2REPLACE_1>;<PATTERN2SET_1> <PATTERN2REPLACE_2>;<PATTERN2SET_2>'
# And the pattern to replace in binary name is only searched as:
@@ -361,17 +258,14 @@ FLASHLAYOUT_PARTITION_BIN2LOAD_userfs = "${STM32MP_USERFS_IMAGE}-${DISTRO}
# or
# '-<PATTERN>-'
# -----------------------------------------------------------------------------
# The 'basic' bootscheme does not support Programmer mode, so use 'trusted' one
# (valid for both fsbl1-boot and ssbl-boot)
BIN2BOOT_REPLACE_PATTERNS_DEFAULT = "basic;trusted"
# We use specific tf-a serialboot mode for any bootscheme for fsbl1-boot
FLASHLAYOUT_PARTITION_REPLACE_PATTERNS_fsbl1-boot_append = " optee;serialboot trusted;serialboot"
# For u-boot the 'optee' bootscheme is the same than trusted so use 'trusted'
FLASHLAYOUT_PARTITION_REPLACE_PATTERNS_ssbl-boot_append = " optee;trusted"
FLASHLAYOUT_PARTITION_REPLACE_PATTERNS_ssbl_append = " optee;trusted"
FLASHLAYOUT_PARTITION_REPLACE_PATTERNS_ssbl2_append = " optee;trusted"
# The daughter board does not support Programmer mode, so use eval one
# (valid for both fsbl1-boot and ssbl-boot)
BIN2BOOT_REPLACE_PATTERNS_DEFAULT_append = " ed1;ev1"
# Apply for fsbl1-boot and ssbl-boot
BIN2BOOT_REPLACE_PATTERNS_fsbl1-boot = "${BIN2BOOT_REPLACE_PATTERNS_DEFAULT}"
BIN2BOOT_REPLACE_PATTERNS_ssbl-boot = "${BIN2BOOT_REPLACE_PATTERNS_DEFAULT}"
# For fsbl1-boot, the 'optee' bootscheme does not support Programmer mode, so
# prefer the 'trusted' one.
BIN2BOOT_REPLACE_PATTERNS_fsbl1-boot_append = " optee;trusted"
FLASHLAYOUT_PARTITION_REPLACE_PATTERNS_fsbl1-boot_append = " ed1;ev1"
FLASHLAYOUT_PARTITION_REPLACE_PATTERNS_ssbl-boot_append = " ed1;ev1"
@@ -7,6 +7,7 @@ PREFERRED_PROVIDER_virtual/kernel = "linux-stm32mp"
# u-boot
# =========================================================================
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-stm32mp"
PREFERRED_PROVIDER_u-boot = "u-boot-stm32mp"
# =========================================================================
# trusted-firmware-a
@@ -0,0 +1,117 @@
#@DESCRIPTION: STM32MP machine storage device configuration
# -----------------------------------------------------------------------------
# Define device storage name and type mapping
# -----------------------------------------------------------------------------
DEVICE_STORAGE ?= "EMMC:mmc1, NAND:nand0, NOR:nor0, SDCARD:mmc0"
# -----------------------------------------------------------------------------
# Define device storage name alias
# -----------------------------------------------------------------------------
DEVICE_STORAGE_NAMES += "EMMC"
DEVICE_STORAGE_NAMES += "NAND"
DEVICE_STORAGE_NAMES += "NOR"
DEVICE_STORAGE_NAMES += "SDCARD"
# -----------------------------------------------------------------------------
# Define device storage type
# -----------------------------------------------------------------------------
DEVICE_STORAGE_TYPES += "mmc0"
DEVICE_STORAGE_TYPES += "mmc1"
DEVICE_STORAGE_TYPES += "mmc2"
DEVICE_STORAGE_TYPES += "nand0"
DEVICE_STORAGE_TYPES += "nor0"
python () {
"""
This function configure dynamically the needed alias between generic storage
device name and device type.
Output for this function is the initialization of:
DEVICE_<device_name> = '<device_type>'
DEVICE_<device_type> = '<device_name>'
"""
device_storage_config = d.getVar('DEVICE_STORAGE') or ''
if not device_storage_config:
return
if not device_storage_config.strip():
return
if len(device_storage_config.split(',')) > 0:
# Init supported device storage configuration
supported_device_names = (d.getVar('DEVICE_STORAGE_NAMES') or '').split()
supported_device_types = (d.getVar('DEVICE_STORAGE_TYPES') or '').split()
# Loop for all storage device configurations
for device_storage in device_storage_config.split(','):
device_name = device_storage.split(':')[0].strip()
device_type = device_storage.split(':')[1].strip()
# Check for configuration consistency
if device_name and device_type:
# Make sure configuration is correctly done
if device_name not in supported_device_names:
bb.fatal('Wrong DEVICE_STORAGE configuration: "%s" is not part of supported device name (%s)' % (device_name, supported_device_names))
if device_type not in supported_device_types:
bb.fatal('Wrong DEVICE_STORAGE configuration: "%s" is not part of supported device type (%s)' % (device_type, supported_device_types))
# Configure alias
d.setVar('DEVICE_%s' % device_name, device_type)
d.setVar('DEVICE_%s' % device_type, device_name)
else:
bb.fatal('Wrong DEVICE_STORAGE configuration: expecting DEVICE_STORAGE = "<device_name1>:<devie_type1>,<device_name2>:<device_type2>"')
}
# -----------------------------------------------------------------------------
# EMMC
# Extra space is required to store 'Protective MBR' and 'Primary GPT Header'
# Currently the required size is 17kBytes (i.e. 0x4400)
# We need to align this size to get the first offset to use
DEVICE_START_OFFSET_EMMC ?= "0x00080000"
DEVICE_ALIGNMENT_SIZE_EMMC ?= "0x00080000"
# Specific to EMMC, there are two boot partitions using specific offset to access
DEVICE_START_OFFSET_BOOT0_EMMC ?= "boot1"
DEVICE_START_OFFSET_BOOT1_EMMC ?= "boot2"
# Configure the rootfs partition uid used in gpt partition table for EMMC
DEVICE_PARTUUID_ROOTFS_EMMC ?= "${@d.getVar(d.expand('DEVICE_PARTUUID_ROOTFS_${DEVICE_EMMC}')) or ''}"
# Configure the list of boards that enable EMMC
DEVICE_BOARD_ENABLE_EMMC += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'emmc', '${STM32MP_DT_FILES_ED}', '', d)}"
DEVICE_BOARD_ENABLE_EMMC += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'emmc', '${STM32MP_DT_FILES_EV}', '', d)}"
# -----------------------------------------------------------------------------
# NAND
DEVICE_START_OFFSET_NAND ?= "0x00000000"
DEVICE_ALIGNMENT_SIZE_NAND ?= "0x00040000"
# Configure the list of boards that enable EMMC
DEVICE_BOARD_ENABLE_NAND += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nand-4-256', '${STM32MP_DT_FILES_ED}', '', d)}"
DEVICE_BOARD_ENABLE_NAND += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nand-4-256', '${STM32MP_DT_FILES_EV}', '', d)}"
# -----------------------------------------------------------------------------
# NOR
DEVICE_START_OFFSET_NOR ?= "0x00000000"
DEVICE_ALIGNMENT_SIZE_NOR ?= "0x00010000"
# Configure the list of boards that enable EMMC
DEVICE_BOARD_ENABLE_NOR += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nor-sdcard' , '${STM32MP_DT_FILES_EV}', '', d)}"
# -----------------------------------------------------------------------------
# SDCARD
# Extra space is required to store 'Protective MBR' and 'Primary GPT Header'
# Currently the required size is 17kBytes (i.e. 0x4400)
# We need to align this size to get the first offset to use
DEVICE_START_OFFSET_SDCARD ?= "0x00004400"
DEVICE_ALIGNMENT_SIZE_SDCARD ?= "0x00000200"
# Configure the rootfs partition uid used in gpt partition table for SDCARD
DEVICE_PARTUUID_ROOTFS_SDCARD ?= "${@d.getVar(d.expand('DEVICE_PARTUUID_ROOTFS_${DEVICE_SDCARD}')) or ''}"
# Configure the list of boards that enable SDCARD
DEVICE_BOARD_ENABLE_SDCARD += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'sdcard', '${STM32MP_DT_FILES_DK}', '', d)}"
DEVICE_BOARD_ENABLE_SDCARD += "${@bb.utils.contains_any('BOOTDEVICE_LABELS', [ 'sdcard', 'nor-sdcard' ], '${STM32MP_DT_FILES_ED}', '', d)}"
DEVICE_BOARD_ENABLE_SDCARD += "${@bb.utils.contains_any('BOOTDEVICE_LABELS', [ 'sdcard', 'nor-sdcard' ], '${STM32MP_DT_FILES_EV}', '', d)}"
# -----------------------------------------------------------------------------
# Fixed configuration from U-Boot source code
# -----------------------------------------------------------------------------
DEVICE_PARTUUID_ROOTFS_mmc0 ?= "e91c4e10-16e6-4c0e-bd0e-77becf4a3582"
DEVICE_PARTUUID_ROOTFS_mmc1 ?= "491f6117-415d-4f53-88c9-6e0de54deac6"
DEVICE_PARTUUID_ROOTFS_mmc2 ?= "fd58f1c7-be0d-4338-8ee9-ad8f050aeb18"
+27 -21
View File
@@ -1,9 +1,13 @@
#@TYPE: Machine
#@NAME: stm32mp1-disco
#@DESCRIPTION: Configuration for STM32MP157C-DK2 board (Trusted boot and SDcard only)
#@DESCRIPTION: [EXAMPLE] STM32MP157C-DK2 board ONLY with Trusted boot and SDcard support
#@NEEDED_BSPLAYERS: layers/meta-openembedded/meta-oe layers/meta-openembedded/meta-python
include conf/machine/include/st-machine-common-stm32mp.inc
include conf/machine/include/st-machine-providers-stm32mp.inc
# Define specific familly common machine name
MACHINEOVERRIDES .= ":stm32mp1common"
# =========================================================================
# Chip architecture
@@ -14,7 +18,6 @@ include conf/machine/include/tune-cortexa7.inc
# =========================================================================
# boot scheme
# =========================================================================
#BOOTSCHEME_LABELS += "basic"
BOOTSCHEME_LABELS += "trusted"
#BOOTSCHEME_LABELS += "optee"
@@ -24,8 +27,6 @@ BOOTSCHEME_LABELS += "trusted"
# Define the boot device supported
#BOOTDEVICE_LABELS += "emmc"
#BOOTDEVICE_LABELS += "nand-4-256"
#BOOTDEVICE_LABELS += "nor-emmc"
#BOOTDEVICE_LABELS += "nor-nand-4-256"
#BOOTDEVICE_LABELS += "nor-sdcard"
BOOTDEVICE_LABELS += "sdcard"
@@ -33,25 +34,26 @@ BOOTDEVICE_LABELS += "sdcard"
# Machine settings
# =========================================================================
# Define list of devicetree per board
#STM32MP_DT_FILES_DK += "stm32mp157a-dk1"
#STM32MP_DT_FILES_DK += "stm32mp157a-dk1 stm32mp157d-dk1"
#STM32MP_DT_FILES_DK += "stm32mp157c-dk2 stm32mp157f-dk2"
STM32MP_DT_FILES_DK += "stm32mp157c-dk2"
#STM32MP_DT_FILES_ED += "stm32mp157c-ed1"
#STM32MP_DT_FILES_EV += "stm32mp157c-ev1"
#STM32MP_DT_FILES_ED += "stm32mp157c-ed1 stm32mp157f-ed1"
#STM32MP_DT_FILES_EV += "stm32mp157a-ev1 stm32mp157c-ev1 stm32mp157d-ev1 stm32mp157f-ev1"
# =========================================================================
# Machine features
# =========================================================================
MACHINE_FEATURES += "splashscreen"
MACHINE_FEATURES += "watchdog"
MACHINE_FEATURES += "bluetooth"
MACHINE_FEATURES += "wifi"
MACHINE_FEATURES += "${@'gpu' if d.getVar('ACCEPT_EULA_'+d.getVar('MACHINE')) == '1' else ''}"
# Splashscreen enabled
MACHINE_FEATURES += "splashscreen"
MACHINE_FEATURES += "m4copro"
# =========================================================================
# Image
# =========================================================================
# Add ubi FSTYPES to default ones for nand volumes
#IMAGE_FSTYPES += "stmultiubi"
# Bluetooth
BLUETOOTH_LIST += "linux-firmware-bluetooth-bcm4343"
# Wifi
WIFI_LIST += "linux-firmware-bcm43430"
# =========================================================================
# Kernel
@@ -62,6 +64,8 @@ MACHINE_FEATURES += "splashscreen"
# Define the devicetree for Linux A7 examples
LINUX_A7_EXAMPLES_DT += "stm32mp157c-dk2-a7-examples"
#LINUX_A7_EXAMPLES_DT += "stm32mp157c-ev1-a7-examples"
#LINUX_A7_EXAMPLES_DT += "stm32mp157f-dk2-a7-examples"
#LINUX_A7_EXAMPLES_DT += "stm32mp157f-ev1-a7-examples"
# =========================================================================
# M4 copro
@@ -69,6 +73,8 @@ LINUX_A7_EXAMPLES_DT += "stm32mp157c-dk2-a7-examples"
# Define the devicetree for M4 example
CUBE_M4_EXAMPLES_DT += "stm32mp157c-dk2-m4-examples"
#CUBE_M4_EXAMPLES_DT += "stm32mp157c-ev1-m4-examples"
#CUBE_M4_EXAMPLES_DT += "stm32mp157f-dk2-m4-examples"
#CUBE_M4_EXAMPLES_DT += "stm32mp157f-ev1-m4-examples"
# Define specific board reference to use
M4_BOARDS = "STM32MP157C-DK2"
@@ -76,20 +82,20 @@ M4_BOARDS = "STM32MP157C-DK2"
# =========================================================================
# extlinux configuration
# =========================================================================
# As example, modify the default boot config for each target to M4 config
#UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-dk2_sdcard = "stm32mp157c-dk2-m4-examples-sdcard"
#UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-dk2_sdcard-optee = "stm32mp157c-dk2-m4-examples-sdcard-optee"
# As example, modify the default boot config to M4 config
#UBOOT_EXTLINUX_DEFAULT_LABEL_stm32mp157c-dk2 = "stm32mp157c-dk2-m4-examples"
# =========================================================================
# WIC for sdcard raw image
# =========================================================================
WIC_CREATE_EXTRA_ARGS = "--no-fstab-update"
WKS_FILE_DEPENDS ?= " \
u-boot-stm32mp \
tf-a-stm32mp \
${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', 'optee-os-stm32mp', '', d)} \
virtual/bootloader \
virtual/trusted-firmware-a \
virtual/trusted-firmware-a-serialboot \
${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', 'virtual/optee-os', '', d)} \
st-image-bootfs \
st-image-vendorfs \
${@bb.utils.contains('ST_VENDORFS','1','st-image-vendorfs', '', d)} \
st-image-userfs \
"
TRUSTED_WIC_FILE = "${@bb.utils.contains('ST_VENDORFS','1','sdcard-stm32mp157c-dk2-trusted-vendorfs-1GB.wks.in','sdcard-stm32mp157c-dk2-trusted-1GB.wks.in',d)}"
+21 -16
View File
@@ -1,9 +1,13 @@
#@TYPE: Machine
#@NAME: stm32mp1-eval
#@DESCRIPTION: Configuration for STM32MP157C-EV1 board (Trusted boot and SDcard only)
#@DESCRIPTION: [EXAMPLE] STM32MP157C-EV1 board ONLY with Trusted boot and SDcard support
#@NEEDED_BSPLAYERS: layers/meta-openembedded/meta-oe layers/meta-openembedded/meta-python
include conf/machine/include/st-machine-common-stm32mp.inc
include conf/machine/include/st-machine-providers-stm32mp.inc
# Define specific familly common machine name
MACHINEOVERRIDES .= ":stm32mp1common"
# =========================================================================
# Chip architecture
@@ -14,7 +18,6 @@ include conf/machine/include/tune-cortexa7.inc
# =========================================================================
# boot scheme
# =========================================================================
#BOOTSCHEME_LABELS += "basic"
BOOTSCHEME_LABELS += "trusted"
#BOOTSCHEME_LABELS += "optee"
@@ -24,8 +27,6 @@ BOOTSCHEME_LABELS += "trusted"
# Define the boot device supported
#BOOTDEVICE_LABELS += "emmc"
#BOOTDEVICE_LABELS += "nand-4-256"
#BOOTDEVICE_LABELS += "nor-emmc"
#BOOTDEVICE_LABELS += "nor-nand-4-256"
#BOOTDEVICE_LABELS += "nor-sdcard"
BOOTDEVICE_LABELS += "sdcard"
@@ -33,25 +34,26 @@ BOOTDEVICE_LABELS += "sdcard"
# Machine settings
# =========================================================================
# Define list of devicetree per board
#STM32MP_DT_FILES_DK += "stm32mp157a-dk1"
#STM32MP_DT_FILES_DK += "stm32mp157c-dk2"
#STM32MP_DT_FILES_ED += "stm32mp157c-ed1"
#STM32MP_DT_FILES_DK += "stm32mp157a-dk1 stm32mp157d-dk1"
#STM32MP_DT_FILES_DK += "stm32mp157c-dk2 stm32mp157f-dk2"
#STM32MP_DT_FILES_ED += "stm32mp157c-ed1 stm32mp157f-ed1"
#STM32MP_DT_FILES_EV += "stm32mp157a-ev1 stm32mp157c-ev1 stm32mp157d-ev1 stm32mp157f-ev1"
STM32MP_DT_FILES_EV += "stm32mp157c-ev1"
# =========================================================================
# Machine features
# =========================================================================
MACHINE_FEATURES += "splashscreen"
MACHINE_FEATURES += "watchdog"
#MACHINE_FEATURES += "bluetooth"
#MACHINE_FEATURES += "wifi"
MACHINE_FEATURES += "${@'gpu' if d.getVar('ACCEPT_EULA_'+d.getVar('MACHINE')) == '1' else ''}"
# Splashscreen enabled
MACHINE_FEATURES += "splashscreen"
MACHINE_FEATURES += "m4copro"
# =========================================================================
# Image
# =========================================================================
# Add ubi FSTYPES to default ones for nand volumes
#IMAGE_FSTYPES += "stmultiubi"
# Bluetooth
#BLUETOOTH_LIST += "linux-firmware-bluetooth-bcm4343"
# Wifi
#WIFI_LIST += "linux-firmware-bcm43430"
# =========================================================================
# Kernel
@@ -62,6 +64,8 @@ KERNEL_MODULE_AUTOLOAD = "goodix"
# Define the devicetree for Linux A7 examples
#LINUX_A7_EXAMPLES_DT += "stm32mp157c-dk2-a7-examples"
LINUX_A7_EXAMPLES_DT += "stm32mp157c-ev1-a7-examples"
#LINUX_A7_EXAMPLES_DT += "stm32mp157f-dk2-a7-examples"
#LINUX_A7_EXAMPLES_DT += "stm32mp157f-ev1-a7-examples"
# =========================================================================
# M4 copro
@@ -69,6 +73,8 @@ LINUX_A7_EXAMPLES_DT += "stm32mp157c-ev1-a7-examples"
# Define the devicetree for M4 example
#CUBE_M4_EXAMPLES_DT += "stm32mp157c-dk2-m4-examples"
CUBE_M4_EXAMPLES_DT += "stm32mp157c-ev1-m4-examples"
#CUBE_M4_EXAMPLES_DT += "stm32mp157f-dk2-m4-examples"
#CUBE_M4_EXAMPLES_DT += "stm32mp157f-ev1-m4-examples"
# Define specific board reference to use
M4_BOARDS = "STM32MP157C-EV1"
@@ -77,6 +83,5 @@ M4_BOARDS = "STM32MP157C-EV1"
# extlinux configuration
# =========================================================================
# As example, modify the default boot config for each target to M4 config
#UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-ev1_sdcard = "stm32mp157c-ev1-m4-examples-sdcard"
#UBOOT_EXTLINUX_DEFAULT_LABEL_mp157c-ev1_sdcard-optee = "stm32mp157c-ev1-m4-examples-sdcard-optee"
#UBOOT_EXTLINUX_DEFAULT_LABEL_stm32mp157c-ev1 = "stm32mp157c-ev1-m4-examples"
+19 -14
View File
@@ -4,6 +4,10 @@
#@NEEDED_BSPLAYERS: layers/meta-openembedded/meta-oe layers/meta-openembedded/meta-python
include conf/machine/include/st-machine-common-stm32mp.inc
include conf/machine/include/st-machine-providers-stm32mp.inc
# Define specific familly common machine name
MACHINEOVERRIDES .= ":stm32mp1common"
# =========================================================================
# Chip architecture
@@ -14,7 +18,6 @@ include conf/machine/include/tune-cortexa7.inc
# =========================================================================
# boot scheme
# =========================================================================
BOOTSCHEME_LABELS += "basic"
BOOTSCHEME_LABELS += "trusted"
BOOTSCHEME_LABELS += "optee"
@@ -24,8 +27,6 @@ BOOTSCHEME_LABELS += "optee"
# Define the boot device supported
BOOTDEVICE_LABELS += "emmc"
BOOTDEVICE_LABELS += "nand-4-256"
BOOTDEVICE_LABELS += "nor-emmc"
BOOTDEVICE_LABELS += "nor-nand-4-256"
BOOTDEVICE_LABELS += "nor-sdcard"
BOOTDEVICE_LABELS += "sdcard"
@@ -33,25 +34,25 @@ BOOTDEVICE_LABELS += "sdcard"
# Machine settings
# =========================================================================
# Define list of devicetree per board
STM32MP_DT_FILES_DK += "stm32mp157a-dk1"
STM32MP_DT_FILES_DK += "stm32mp157c-dk2"
STM32MP_DT_FILES_ED += "stm32mp157c-ed1"
STM32MP_DT_FILES_EV += "stm32mp157c-ev1"
STM32MP_DT_FILES_DK += "stm32mp157a-dk1 stm32mp157d-dk1"
STM32MP_DT_FILES_DK += "stm32mp157c-dk2 stm32mp157f-dk2"
STM32MP_DT_FILES_ED += "stm32mp157c-ed1 stm32mp157f-ed1"
STM32MP_DT_FILES_EV += "stm32mp157a-ev1 stm32mp157c-ev1 stm32mp157d-ev1 stm32mp157f-ev1"
# =========================================================================
# Machine features
# =========================================================================
MACHINE_FEATURES += "splashscreen"
MACHINE_FEATURES += "watchdog"
MACHINE_FEATURES += "bluetooth"
MACHINE_FEATURES += "wifi"
MACHINE_FEATURES += "${@'gpu' if d.getVar('ACCEPT_EULA_'+d.getVar('MACHINE')) == '1' else ''}"
# Splashscreen enabled
MACHINE_FEATURES += "splashscreen"
MACHINE_FEATURES += "m4copro"
# =========================================================================
# Image
# =========================================================================
# Add ubi FSTYPES to default ones for nand volumes
IMAGE_FSTYPES += "stmultiubi"
# Bluetooth
BLUETOOTH_LIST += "linux-firmware-bluetooth-bcm4343"
# Wifi
WIFI_LIST += "linux-firmware-bcm43430"
# =========================================================================
# Kernel
@@ -62,6 +63,8 @@ KERNEL_MODULE_AUTOLOAD = "goodix"
# Define the devicetree for Linux A7 examples
LINUX_A7_EXAMPLES_DT += "stm32mp157c-dk2-a7-examples"
LINUX_A7_EXAMPLES_DT += "stm32mp157c-ev1-a7-examples"
LINUX_A7_EXAMPLES_DT += "stm32mp157f-dk2-a7-examples"
LINUX_A7_EXAMPLES_DT += "stm32mp157f-ev1-a7-examples"
# =========================================================================
# M4 copro
@@ -69,3 +72,5 @@ LINUX_A7_EXAMPLES_DT += "stm32mp157c-ev1-a7-examples"
# Define the devicetree for M4 example
CUBE_M4_EXAMPLES_DT += "stm32mp157c-dk2-m4-examples"
CUBE_M4_EXAMPLES_DT += "stm32mp157c-ev1-m4-examples"
CUBE_M4_EXAMPLES_DT += "stm32mp157f-dk2-m4-examples"
CUBE_M4_EXAMPLES_DT += "stm32mp157f-ev1-m4-examples"