MACHINE: add support of stm32mp1

stm32mp1 machine are a machine which support several board.

Signed-off-by: Christophe Priouzeau <christophe.priouzeau@st.com>
This commit is contained in:
Christophe Priouzeau 2019-02-04 15:04:13 +01:00
parent 2c397423da
commit c5fda24713
7 changed files with 1112 additions and 0 deletions

View File

@ -0,0 +1,47 @@
# =========================================================================
# GPU
# =========================================================================
GPU_USERLAND_LIBRARIES_WAYLAND ?= "gcnano-userland-multi-binary-stm32mp"
GPU_USERLAND_LIBRARIES_EGLFS ?= "gcnano-userland-multi-binary-stm32mp"
GPU_USERLAND_LIBRARIES_X11 ?= "mesa"
# Helper function for overloading the default EGL/GLES implementation.
# The Vivnate libraries are compatible with the Mesa headers
# but we can have several backend available following the distro configuration:
# - wayland
# - x11
# - wayland + x11
# - framebuffer
# - drm
def get_gpu_vivante_handler(d):
""" Overloading the default EGL/GLES/mesa implementation."""
machine_features = d.getVar('MACHINE_FEATURES').split()
distro_features = d.getVar('DISTRO_FEATURES').split()
gpu_lib_wayland = d.getVar('GPU_USERLAND_LIBRARIES_WAYLAND').split()
gpu_lib_eglfs = d.getVar('GPU_USERLAND_LIBRARIES_EGLFS').split()
gpu_lib_x11 = d.getVar('GPU_USERLAND_LIBRARIES_X11').split()
if 'gpu' in machine_features:
if 'wayland' in distro_features:
provider = gpu_lib_wayland[0]
else:
if 'x11' in distro_features:
provider = gpu_lib_x11[0]
else:
'''no wayland, no X11 -> choose DRM/FB for eglfs'''
provider = gpu_lib_eglfs[0]
else:
provider = "mesa"
return provider;
GPU_USERLAND_LIBRARIES_INSTALL = "${@get_gpu_vivante_handler(d)}"
PREFERRED_PROVIDER_virtual/egl = "${@get_gpu_vivante_handler(d)}"
PREFERRED_PROVIDER_virtual/libgles1 = "${@get_gpu_vivante_handler(d)}"
PREFERRED_PROVIDER_virtual/libgles2 = "${@get_gpu_vivante_handler(d)}"
PREFERRED_PROVIDER_virtual/libgbm = "${@get_gpu_vivante_handler(d)}"
PREFERRED_PROVIDER_virtual/mesa = "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/egl','mesa','mesa','mesa-gl',d)}"
PREFERRED_PROVIDER_virtual/libgl = "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/egl','mesa','mesa','mesa-gl',d)}"

View File

@ -0,0 +1,302 @@
#@DESCRIPTION: Common Machine configuration for STM32 systems
require conf/machine/include/st-machine-extlinux-config-stm32mp.inc
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
# Define specific common machine name
MACHINEOVERRIDES .= ":stcommon"
# Define specific common layer name
MACHINEOVERRIDES .= ":stm32mpcommon"
# =========================================================================
# boot scheme
# =========================================================================
# List of supported boot schemes
BOOTSCHEME_LABELS ??= "basic trusted optee"
# =========================================================================
# Machine settings
# =========================================================================
# Default machine feature
MACHINE_FEATURES = "usbhost usbgadget alsa screen ext2"
MACHINE_FEATURES_append = " ${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', 'optee', '', d)} "
MACHINE_FEATURES_append = " tpm2 "
# Default serial consoles (TTYs) to enable using getty
# Before kernel 4.18, serial console are ttyS3 but after is ttySTM0
SERIAL_CONSOLES = "115200;ttySTM0"
SERIAL_CONSOLE = "115200 ttySTM0"
# Don't include kernels in standard images
RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""
# Ship all kernel modules by default
MACHINE_EXTRA_RRECOMMENDS = " kernel-modules"
# Default device tree list supported per board
STM32MP_DT_FILES_DK ??= ""
STM32MP_DT_FILES_ED ??= ""
STM32MP_DT_FILES_EV ??= ""
# Set default supported device tree list
STM32MP_DEVICETREE_append = " ${STM32MP_DT_FILES_DK} "
STM32MP_DEVICETREE_append = " ${STM32MP_DT_FILES_ED} "
STM32MP_DEVICETREE_append = " ${STM32MP_DT_FILES_EV} "
# =========================================================================
# Machine specific packages
# =========================================================================
MACHINE_EXTRA_RRECOMMENDS_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'wifi', 'linux-firmware-bcm43430', '', d)} "
MACHINE_EXTRA_RRECOMMENDS_append = " ${@bb.utils.contains('DISTRO_FEATURES','systemd',' 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
# We enable it to be aligned with the activation within u-boot https://gerrit.st.com/#/c/102528
MACHINE_EXTRA_RRECOMMENDS_append = " ${@bb.utils.contains('DISTRO_FEATURES','sysvinit',' watchdog ','',d)} "
# =========================================================================
# Image
# =========================================================================
IMAGE_CLASSES += "image_types-stubi 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"
# Define extra partition to build
PARTITIONS_IMAGE = "${STM32MP_BOOTFS_IMAGE} ${STM32MP_USERFS_IMAGE} ${STM32MP_VENDORFS_IMAGE}"
PARTITIONS_MOUNTPOINT_IMAGE = "${STM32MP_BOOTFS_MOUNTPOINT_IMAGE} ${STM32MP_USERFS_MOUNTPOINT_IMAGE} ${STM32MP_VENDORFS_MOUNTPOINT_IMAGE}"
# Enable licence summary and configure License content generation
ENABLE_IMAGE_LICENSE_SUMMARY = "1"
IMAGE_SUMMARY_LIST = "${STM32MP_BOOTFS_IMAGE}:${STM32MP_VENDORFS_IMAGE}:#IMAGE#:${STM32MP_USERFS_IMAGE}"
# 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 += "${STM32MP_VENDORFS_LABEL},${STM32MP_VENDORFS_MOUNTPOINT_IMAGE}"
# Define image partition size (supposed to be set as max size in image recipe)
BOOTFS_PARTITION_SIZE = "65536"
# New value proposed for rootfs is 768MB
ROOTFS_PARTITION_SIZE = "768432"
# If we consider the highest constraint is NAND size (so < 1GB)
# Boot binaries 4 MB max (with optee) + bootfs 64 MB max + rootfs 768 MB max + userfs size (4*32MB) < 1024 MB
USERFS_PARTITION_SIZE = "131072"
# New value proposed for vendorfs is 16MB
VENDORFS_PARTITION_SIZE = "16384"
# Define volume list for multivolume UBIFS
STM32MP_UBI_VOLUME += "${STM32MP_BOOTFS_IMAGE}-${DISTRO}-${MACHINE}:${BOOTFS_PARTITION_SIZE}"
STM32MP_UBI_VOLUME += "${IMAGE_LINK_NAME}:${ROOTFS_PARTITION_SIZE}"
STM32MP_UBI_VOLUME += "${STM32MP_VENDORFS_IMAGE}-${DISTRO}-${MACHINE}:${VENDORFS_PARTITION_SIZE}"
STM32MP_UBI_VOLUME += "${STM32MP_USERFS_IMAGE}-${DISTRO}-${MACHINE}:${USERFS_PARTITION_SIZE}"
# Set on machine side the max size for ROOTFS image to apply for default rootfs being built
# On other image partition such settings is directly done in image recipe
IMAGE_ROOTFS_MAXSIZE ?= "${ROOTFS_PARTITION_SIZE}"
# ST Naming rules partitions for UBI format are :
# nand_<PageSize>_<BlockSize>
# nor_<BlockSize>
# Like that a same UBI partition can be used for severals NAND/NOR providers
# UBI Args for NAND soldered by default on MB1262
# Micron MT29F8G16ABACAH4
# LEB = BLOCK_SIZE - (2 * page size): 256*1024 - (2*4096)
MKUBIFS_ARGS_nand_4_256 = "--min-io-size 4096 --leb-size 253952 --max-leb-cnt 4096 --space-fixup"
UBINIZE_ARGS_nand_4_256 = "--min-io-size 4096 --peb-size 256KiB"
# Define UBI labels to build
MULTIUBI_BUILD_append = " nand_4_256 "
# Set on machine side the UBI volume label for ROOTFS image to apply to reuse it
# on kernel command line to mount UBI file system
# On other image partition such settings is directly done in image recipe
UBI_VOLNAME ?= "rootfs"
# create minimal inode number (as it is done by default in image_types.bbclass)
# add naming of ext4 FS to be aligned with gpt... scripts
# For label name we are using IMAGE_NAME_SUFFIX we are removing "." and truncing to 16 caracters
# -L new-volume-label
# Set the volume label for the filesystem to new-volume-label. The maximum length of the volume label is 16 bytes.
EXTRA_IMAGECMD_ext4 = "-i 4096 -L ${@d.getVar('IMAGE_NAME_SUFFIX').replace('.', '', 1)[:16]}"
# Default FSTYPES requested
IMAGE_FSTYPES = "tar.xz ext4"
# Allow debug on the platform with gdb and openocd tools
EXTRA_IMAGEDEPENDS_append = " \
gdb-cross-arm \
openocd-stm32mp-native \
sdcard-raw-tools-native \
"
# Make sure to provide all expected tools in SDK
ST_TOOLS_FOR_SDK = " \
nativesdk-gcc-arm-none-eabi \
nativesdk-binutils \
nativesdk-openocd-stm32mp \
nativesdk-sdcard-raw-tools \
nativesdk-ncurses-libncursesw \
nativesdk-perl-module-term-ansicolor \
nativesdk-perl-module-encode \
nativesdk-perl-module-encode-mime-header \
"
# For support of string convertion (iconv) in SDK
ST_TOOLS_FOR_SDK_append = " \
nativesdk-glibc-gconv-utf-16 \
nativesdk-glibc-gconv-utf-32 \
"
# for populate_sdk, we will have all the tools
TOOLCHAIN_HOST_TASK_append = " ${ST_TOOLS_FOR_SDK} "
# Make sure to append mkimage to SDK for kernel uImage build
TOOLCHAIN_HOST_TASK_append = " ${@bb.utils.contains('KERNEL_IMAGETYPE', 'uImage', 'nativesdk-u-boot-mkimage', '', d)} "
TOOLCHAIN_HOST_TASK_append = " ${@bb.utils.contains('KERNEL_ALT_IMAGETYPE', 'uImage', 'nativesdk-u-boot-mkimage', '', d)} "
# Make sure to append openssl to SDK for kernel-module and scripts build
TOOLCHAIN_HOST_TASK_append = " nativesdk-openssl-dev "
# Make sure to append bison to SDK for u-boot build
TOOLCHAIN_HOST_TASK_append = " ${@bb.utils.contains('EXTRA_IMAGEDEPENDS', 'u-boot-stm32mp', 'nativesdk-bison', '', d)} "
# for populate_sdk_ext, the tools are not desired as mandatory tools (aka basic
# tools for devtool)
TOOLCHAIN_HOST_TASK_remove_task-populate-sdk-ext = " ${ST_TOOLS_FOR_SDK} "
# buildtools and uninatve are used only by populate_sdk_ext
# populate_sdk_ext = buildtools + uninatve + layer
# buildtools: sdk part of esdk (like sdk generated by populate_sdk)
# uninative: basic tools for devtool
TOOLCHAIN_HOST_TASK_append_pn-buildtools-tarball = " ${ST_TOOLS_FOR_SDK} "
TOOLCHAIN_HOST_TASK_remove_pn-uninative-tarball = " ${ST_TOOLS_FOR_SDK} "
# =========================================================================
# Kernel
# =========================================================================
# Select kernel version
PREFERRED_PROVIDER_virtual/kernel = "linux-stm32mp"
# Kernel image type
KERNEL_IMAGETYPE = "uImage"
KERNEL_ALT_IMAGETYPE = " Image "
KERNEL_ALT_IMAGETYPE =+ " vmlinux "
KERNEL_ALT_IMAGETYPE =+ " zImage "
# Maxsize authorized for uncompressed kernel binary
# Define to null to skip kernel image size check
KERNEL_IMAGE_MAXSIZE ?= ""
# List of device tree to install
KERNEL_DEVICETREE ?= "${STM32MP_KERNEL_DEVICETREE}"
STM32MP_KERNEL_DEVICETREE += "${@' '.join('%s.dtb' % d for d in '${STM32MP_DEVICETREE}'.split())}"
STM32MP_KERNEL_DEVICETREE += "${@' '.join('%s.dtb' % d for d in '${CUBE_M4_EXAMPLES_DT}'.split())}"
STM32MP_KERNEL_DEVICETREE += "${@' '.join('%s.dtb' % d for d in '${LINUX_A7_EXAMPLES_DT}'.split())}"
# Define the devicetree for Linux A7 examples
LINUX_A7_EXAMPLES_DT ?= ""
# =========================================================================
# u-boot
# =========================================================================
EXTRA_IMAGEDEPENDS += "u-boot-stm32mp"
# 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)}"
# 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"
# List of U-Boot device tree to use
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"
# 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)}"
#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)}"
# Define SECURE_PAYLOAD config to set for each TF_A_CONFIG
TF_A_CONFIG_optee = "AARCH32_SP=optee"
TF_A_CONFIG_trusted = "AARCH32_SP=sp_min"
# List of TF-A device tree to use
TF_A_DEVICETREE = "${STM32MP_DEVICETREE}"
# =========================================================================
# optee
# =========================================================================
# Map OPTEE configuration to device tree list
OPTEE_CONF = "${STM32MP_DEVICETREE}"
# =========================================================================
# flashlayout
# =========================================================================
# Define bootscheme label to allow specific expansion for partition vars
FLASHLAYOUT_BOOTSCHEME_LABELS += "${BOOTSCHEME_LABELS}"
# Add specific scheme to provide flashlayout that will erase all storage devices
FLASHLAYOUT_BOOTSCHEME_LABELS += "deleteall"
# Default config labels supported
FLASHLAYOUT_CONFIG_LABELS ??= ""
# =========================================================================
# Xserver
# =========================================================================
XSERVER ?= " \
xserver-xorg \
xserver-xorg-module-libint10 \
xf86-input-evdev \
xf86-video-modesetting \
"
# =========================================================================
# Enable deploy of bootloader elf files
# =========================================================================
ELF_DEBUG_ENABLE = "1"
# =========================================================================
# M4 copro
# =========================================================================
# Define the devicetree for M4 examples
CUBE_M4_EXAMPLES_DT ?= ""
# Define the name of default copro firmware executed @boot time
# This name is cherry picked from list defined in m4projects-stm32mp1.bb
DEFAULT_COPRO_FIRMWARE = "OpenAMP_TTY_echo"
# =========================================================================
# GCNANO userland configuration
# =========================================================================
# Variable for using vendor directory instead of usr
GCNANO_USERLAND_VENDOR_DIR = "${STM32MP_VENDORFS_MOUNTPOINT_IMAGE}"

View File

@ -0,0 +1,274 @@
#@DESCRIPTION: STM32MP machine extlinux file configuration
# Set configuration file to monitor
UBOOT_EXTLINUX_CONFIGURE_FILES_append = " ${STM32MP_BASE}/conf/machine/include/st-machine-extlinux-config-stm32mp.inc:True "
# Define the config flags to use to generate all extlinux targets
UBOOT_EXTLINUX_CONFIG_FLAGS += "${@bb.utils.contains('FLASHLAYOUT_CONFIG_LABELS', 'emmc', '%s' % bb.utils.contains('BOOTSCHEME_LABELS', 'optee', 'emmc emmc-optee', 'emmc', d), '', d)}"
UBOOT_EXTLINUX_CONFIG_FLAGS += "${@bb.utils.contains_any('FLASHLAYOUT_CONFIG_LABELS', [ 'nand-4-256', 'nor-nand-4-256' ], 'nand', '', d)}"
UBOOT_EXTLINUX_CONFIG_FLAGS += "${@bb.utils.contains('FLASHLAYOUT_CONFIG_LABELS', 'nor-emmc', 'nor-emmc', '', d)}"
UBOOT_EXTLINUX_CONFIG_FLAGS += "${@bb.utils.contains('FLASHLAYOUT_CONFIG_LABELS', 'nor-sdcard', 'nor-sdcard', '', d)}"
UBOOT_EXTLINUX_CONFIG_FLAGS += "${@bb.utils.contains('FLASHLAYOUT_CONFIG_LABELS', 'sdcard', '%s' % bb.utils.contains('BOOTSCHEME_LABELS', 'optee', 'sdcard sdcard-optee', 'sdcard', d), '', d)}"
# Provide the list of supported devicetree for each config flag
UBOOT_EXTLINUX_DEVICEFLAG_emmc ?= "${STM32MP_DT_FILES_ED} ${STM32MP_DT_FILES_EV}"
UBOOT_EXTLINUX_DEVICEFLAG_emmc-optee ?= "${STM32MP_DT_FILES_ED} ${STM32MP_DT_FILES_EV}"
UBOOT_EXTLINUX_DEVICEFLAG_nand ?= "${STM32MP_DT_FILES_EV}"
UBOOT_EXTLINUX_DEVICEFLAG_nor-emmc ?= "${STM32MP_DT_FILES_EV}"
UBOOT_EXTLINUX_DEVICEFLAG_nor-sdcard ?= "${STM32MP_DT_FILES_EV}"
UBOOT_EXTLINUX_DEVICEFLAG_sdcard ?= "${STM32MP_DT_FILES_DK} ${STM32MP_DT_FILES_ED} ${STM32MP_DT_FILES_EV}"
UBOOT_EXTLINUX_DEVICEFLAG_sdcard-optee ?= "${STM32MP_DT_FILES_DK} ${STM32MP_DT_FILES_ED} ${STM32MP_DT_FILES_EV}"
# 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 = "root=/dev/mmcblk1p4"
EXTLINUX_ROOT_EMMC_OPTEE = "root=/dev/mmcblk1p7"
EXTLINUX_ROOT_NAND = "ubi.mtd=UBI rootfstype=ubifs root=ubi0:rootfs"
EXTLINUX_ROOT_NOREMMC = "root=/dev/mmcblk1p3"
EXTLINUX_ROOT_NORSDCARD = "root=/dev/mmcblk0p3"
EXTLINUX_ROOT_SDCARD = "root=/dev/mmcblk0p6"
EXTLINUX_ROOT_SDCARD_OPTEE = "root=/dev/mmcblk0p9"
# -----------------------------------------------------------------------------
# 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]} >
# -----------------------------------------------------------------------------
# Set extlinux console for stm32mp machine
UBOOT_EXTLINUX_CONSOLE = "console=${@d.getVar('SERIAL_CONSOLE').split()[1]},${@d.getVar('SERIAL_CONSOLE').split()[0]}"
# -----------------------------------------------------------------------------
# DK1 configuration
# -----------------------------------------------------------------------------
# Define available targets to use
UBOOT_EXTLINUX_CONFIGURED_TARGETS += "mp157a-dk1_sdcard"
UBOOT_EXTLINUX_CONFIGURED_TARGETS += "mp157a-dk1_sdcard-optee"
# 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_"
# 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}"
# -----------------------------------------------------------------------------
# DK2 configuration
# -----------------------------------------------------------------------------
# Define available targets to use
UBOOT_EXTLINUX_CONFIGURED_TARGETS += "mp157c-dk2_sdcard"
UBOOT_EXTLINUX_CONFIGURED_TARGETS += "mp157c-dk2_sdcard-optee"
# 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}"
# -----------------------------------------------------------------------------
# ED1 configuration
# -----------------------------------------------------------------------------
# Define available targets to use
UBOOT_EXTLINUX_CONFIGURED_TARGETS += "mp157c-ed1_emmc"
UBOOT_EXTLINUX_CONFIGURED_TARGETS += "mp157c-ed1_emmc-optee"
UBOOT_EXTLINUX_CONFIGURED_TARGETS += "mp157c-ed1_sdcard"
UBOOT_EXTLINUX_CONFIGURED_TARGETS += "mp157c-ed1_sdcard-optee"
# 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 available targets to use
UBOOT_EXTLINUX_CONFIGURED_TARGETS += "mp157c-ev1_emmc"
UBOOT_EXTLINUX_CONFIGURED_TARGETS += "mp157c-ev1_emmc-optee"
UBOOT_EXTLINUX_CONFIGURED_TARGETS += "mp157c-ev1_nand"
UBOOT_EXTLINUX_CONFIGURED_TARGETS += "mp157c-ev1_nor-sdcard"
UBOOT_EXTLINUX_CONFIGURED_TARGETS += "mp157c-ev1_nor-emmc"
UBOOT_EXTLINUX_CONFIGURED_TARGETS += "mp157c-ev1_sdcard"
UBOOT_EXTLINUX_CONFIGURED_TARGETS += "mp157c-ev1_sdcard-optee"
# 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}"

View File

@ -0,0 +1,54 @@
#@DESCRIPTION: Machine features definitions for STM32 systems
include conf/machine/include/gpu_vivante.inc
#------------------
#
# GPU
#
# To support gpu on a machine,
# please add "gpu" to MACHINE_FEATURES in machine conf file
GPU_LIST = "kernel-module-galcore"
GPU_IMAGE_INSTALL = "${@bb.utils.contains('MACHINE_FEATURES', 'gpu', '${GPU_LIST}', '', d)} "
#------------------
#
# optee
#
OPTEE_LIST = "optee-os-stm32mp"
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_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)} "
#------------------
#
# 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}\
"

View File

@ -0,0 +1,67 @@
#@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 "
# -----------------------------------------------------------------------------
# Define config labels
# -----------------------------------------------------------------------------
FLASHLAYOUT_CONFIG_LABELS_deleteall = "disco eval"
# -----------------------------------------------------------------------------
# Define label types
# -----------------------------------------------------------------------------
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
#
# NB: To manage bootloader partitions, simplification is done by directly
# re-using 'fsbl1-boot' and 'ssbl-boot' partitions already defined in file
# 'st-machine-flashlayout-stm32mp.inc'
# -----------------------------------------------------------------------------
FLASHLAYOUT_PARTITION_LABELS_deleteall_disco = "fsbl1-boot ssbl-boot sdcard-all"
FLASHLAYOUT_PARTITION_LABELS_deleteall_eval = "fsbl1-boot ssbl-boot emmc-fsbl1 emmc-fsbl2 emmc-all nand-4-256-all nor-all sdcard-all"
# -----------------------------------------------------------------------------
# Partition configuration for each partition label
FLASHLAYOUT_PARTITION_ENABLE_emmc-fsbl1 = "PED"
FLASHLAYOUT_PARTITION_ENABLE_emmc-fsbl2 = "PED"
FLASHLAYOUT_PARTITION_ENABLE_emmc-all = "PED"
FLASHLAYOUT_PARTITION_ENABLE_nand-4-256-all = "PED"
FLASHLAYOUT_PARTITION_ENABLE_nor-all = "PED"
FLASHLAYOUT_PARTITION_ENABLE_sdcard-all = "PED"
FLASHLAYOUT_PARTITION_ID_emmc-fsbl1 = "0x04"
FLASHLAYOUT_PARTITION_ID_emmc-fsbl2 = "0x05"
FLASHLAYOUT_PARTITION_ID_emmc-all = "0x30"
FLASHLAYOUT_PARTITION_ID_nand-4-256-all = "0x40"
FLASHLAYOUT_PARTITION_ID_nor-all = "0x50"
FLASHLAYOUT_PARTITION_ID_sdcard-all = "0x60"
FLASHLAYOUT_PARTITION_TYPE_emmc-all = "RawImage"
FLASHLAYOUT_PARTITION_TYPE_nand-4-256-all = "RawImage"
FLASHLAYOUT_PARTITION_TYPE_nor-all = "RawImage"
FLASHLAYOUT_PARTITION_TYPE_sdcard-all = "RawImage"
FLASHLAYOUT_PARTITION_DEVICE_emmc-fsbl1 = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_emmc-fsbl2 = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_emmc-all = "${DEVICE_EMMC}"
FLASHLAYOUT_PARTITION_DEVICE_nand-4-256-all = "${DEVICE_NAND}"
FLASHLAYOUT_PARTITION_DEVICE_nor-all = "${DEVICE_NOR}"
FLASHLAYOUT_PARTITION_DEVICE_sdcard-all = "${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_OFFSET_deleteall = "0x0"
FLASHLAYOUT_PARTITION_OFFSET_deleteall_emmc-fsbl1 = "${FLASHLAYOUT_PARTITION_OFFSET_emmc_fsbl1}"
FLASHLAYOUT_PARTITION_OFFSET_deleteall_emmc-fsbl2 = "${FLASHLAYOUT_PARTITION_OFFSET_emmc_fsbl2}"
# -----------------------------------------------------------------------------
# The 'deletall' 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)}"

View File

@ -0,0 +1,291 @@
#@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 "
# 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)}"
# -----------------------------------------------------------------------------
# Define flashlayout devices
# -----------------------------------------------------------------------------
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
# -----------------------------------------------------------------------------
FLASHLAYOUT_BOOTSCHEME_LABELS ??= "basic optee trusted"
# -----------------------------------------------------------------------------
# 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
# -----------------------------------------------------------------------------
FLASHLAYOUT_CONFIG_LABELS ??= "emmc nand-4-256 nor-sdcard nor-emmc nor-nand-4-256 sdcard"
# -----------------------------------------------------------------------------
# Define label types
# -----------------------------------------------------------------------------
# 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
# -----------------------------------------------------------------------------
# EMMC
# Set flashlayout file generation to eval board (mother and daughter) only
FLASHLAYOUT_TYPE_LABELS_emmc = "${STM32MP_DT_FILES_ED} ${STM32MP_DT_FILES_EV}"
# NAND
# Set flashlayout file generation to eval board only
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}"
# 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
# -----------------------------------------------------------------------------
# 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
# -----------------------------------------------------------------------------
FLASHLAYOUT_PARTITION_LABELS_basic_emmc = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl"
FLASHLAYOUT_PARTITION_LABELS_basic_nand-4-256 = "none"
FLASHLAYOUT_PARTITION_LABELS_basic_nor-nand-4-256 = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl logo empty"
FLASHLAYOUT_PARTITION_LABELS_basic_nor-emmc = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl logo empty"
FLASHLAYOUT_PARTITION_LABELS_basic_nor-sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl logo empty bootfs vendorfs rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_basic_sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl bootfs vendorfs rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_optee_emmc = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl teeh teed teex bootfs vendorfs 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 logo teeh teed teex empty empty2 empty3 ubifs"
FLASHLAYOUT_PARTITION_LABELS_optee_nor-emmc = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl logo teeh teed teex empty bootfs vendorfs rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_optee_nor-sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl logo teeh teed teex empty bootfs vendorfs rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_optee_sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl teeh teed teex bootfs vendorfs rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_trusted_emmc = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl bootfs vendorfs 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 logo empty empty2 empty3 ubifs"
FLASHLAYOUT_PARTITION_LABELS_trusted_nor-emmc = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl logo empty bootfs vendorfs rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_trusted_nor-sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl logo empty bootfs vendorfs rootfs userfs"
FLASHLAYOUT_PARTITION_LABELS_trusted_sdcard = "fsbl1-boot ssbl-boot fsbl1 fsbl2 ssbl bootfs vendorfs rootfs userfs"
# -----------------------------------------------------------------------------
# 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
# -----------------------------------------------------------------------------
FLASHLAYOUT_PARTITION_ENABLE = "P"
FLASHLAYOUT_PARTITION_ENABLE_fsbl1-boot = "-"
FLASHLAYOUT_PARTITION_ENABLE_ssbl-boot = "-"
FLASHLAYOUT_PARTITION_ENABLE_empty = "PE"
FLASHLAYOUT_PARTITION_ENABLE_empty2 = "PE"
FLASHLAYOUT_PARTITION_ENABLE_empty3 = "PE"
FLASHLAYOUT_PARTITION_ENABLE_logo = "PE"
# -----------------------------------------------------------------------------
# Partition ID
# -----------------------------------------------------------------------------
# The STM32CubeProgrammer supported ID range is:
# 0x00 to 0xFF
# Some IDs are reserved for internal usage on STM32CubeProgrammer and special
# management is implemented for binary with STM32 header. This means that for
# flashlayout files, available ID range is only:
# 0x01 to 0x0F for Boot partitions with STM32 header
# 0x10 to 0xF0 for User partitions programmed without header
# Note also that for FSBL and SSBL binaries loaded in RAM to program the devices
# 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_empty2 = "0x11"
FLASHLAYOUT_PARTITION_ID_empty3 = "0x12"
FLASHLAYOUT_PARTITION_ID_logo = "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"
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"
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_empty2 = "${DEVICE_NAND}"
FLASHLAYOUT_PARTITION_DEVICE_nor-nand-4-256_empty3 = "${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"
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_empty2 = "${DEVICE_START_OFFSET_nand0}"
FLASHLAYOUT_PARTITION_OFFSET_sdcard_fsbl1 = "${DEVICE_START_OFFSET_mmc0}"
# 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_logo = "256"
FLASHLAYOUT_PARTITION_SIZE_teeh = "256"
FLASHLAYOUT_PARTITION_SIZE_teed = "256"
FLASHLAYOUT_PARTITION_SIZE_teex = "256"
FLASHLAYOUT_PARTITION_SIZE_empty = "0"
FLASHLAYOUT_PARTITION_SIZE_empty2 = "${FLASHLAYOUT_PARTITION_SIZE_nand-4-256_fsbl1}"
FLASHLAYOUT_PARTITION_SIZE_empty3 = "${FLASHLAYOUT_PARTITION_SIZE_ssbl}"
# 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_nand-4-256_teeh = "512"
FLASHLAYOUT_PARTITION_SIZE_nand-4-256_teed = "512"
FLASHLAYOUT_PARTITION_SIZE_nand-4-256_teex = "512"
FLASHLAYOUT_PARTITION_SIZE_bootfs = "${BOOTFS_PARTITION_SIZE}"
FLASHLAYOUT_PARTITION_SIZE_vendorfs = "${VENDORFS_PARTITION_SIZE}"
FLASHLAYOUT_PARTITION_SIZE_rootfs = "${ROOTFS_PARTITION_SIZE}"
FLASHLAYOUT_PARTITION_SIZE_ubifs = "none"
FLASHLAYOUT_PARTITION_SIZE_userfs = "${USERFS_PARTITION_SIZE}"
# 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_logo = "none"
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.
# 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:
# '-<PATTERN>$'
# 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"
# 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"

View File

@ -0,0 +1,77 @@
#@TYPE: Machine
#@NAME: stm32mp1
#@DESCRIPTION: Configuration for all STM32MP1 boards (EV, DK, ...)
#@NEEDED_BSPLAYERS:
include conf/machine/include/st-machine-common-stm32mp.inc
# =========================================================================
# Chip architecture
# =========================================================================
DEFAULTTUNE = "cortexa7thf-neon-vfpv4"
include conf/machine/include/tune-cortexa7.inc
# =========================================================================
# boot scheme
# =========================================================================
BOOTSCHEME_LABELS += "basic"
BOOTSCHEME_LABELS += "trusted"
BOOTSCHEME_LABELS += "optee"
# =========================================================================
# 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"
# =========================================================================
# Machine features
# =========================================================================
MACHINE_FEATURES += "bluetooth"
MACHINE_FEATURES += "wifi"
MACHINE_FEATURES += "${@'gpu' if d.getVar('ACCEPT_EULA_'+d.getVar('MACHINE')) == '1' else ''}"
# Splashscreen enabled
MACHINE_FEATURES += "splashscreen"
# =========================================================================
# Image
# =========================================================================
# Add ubi FSTYPES to default ones for nand volumes
IMAGE_FSTYPES += "stmultiubi"
# =========================================================================
# Kernel
# =========================================================================
# Kernel config
# Set this address to 0xC2000040, which is 0xC2000000 + 0x40.
# 0xC2000000 is the memory address where U-Boot will copy from flash the file uImage and 0x40 is uImage header size (64Bytes).
# With this value, U-Boot will be able to execute in place the zImage contained in uImage.
ST_KERNEL_LOADADDR = "0xC2000040"
# For eval board: auto-load goodix module (touchscreen module)
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"
# =========================================================================
# flashlayout
# =========================================================================
# Define the config labels to use to generate flashlayout file
FLASHLAYOUT_CONFIG_LABELS += "emmc"
FLASHLAYOUT_CONFIG_LABELS += "nand-4-256"
FLASHLAYOUT_CONFIG_LABELS += "nor-sdcard"
FLASHLAYOUT_CONFIG_LABELS += "nor-emmc"
FLASHLAYOUT_CONFIG_LABELS += "nor-nand-4-256"
FLASHLAYOUT_CONFIG_LABELS += "sdcard"
# =========================================================================
# M4 copro
# =========================================================================
# Define the devicetree for M4 example
CUBE_M4_EXAMPLES_DT += "stm32mp157c-dk2-m4-examples"
CUBE_M4_EXAMPLES_DT += "stm32mp157c-ev1-m4-examples"