summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml20
-rw-r--r--README3
-rw-r--r--buildconf/bblayers.conf20
-rw-r--r--buildconf/export2
-rw-r--r--buildconf/local.conf120
-rw-r--r--classes/toradex-mirrors.bbclass14
-rw-r--r--conf/distro/include/arm-defaults.inc10
-rw-r--r--conf/distro/include/tdx-base.inc61
-rw-r--r--conf/distro/tdx-x11-rt.conf2
-rw-r--r--conf/distro/tdx-x11-upstream-rt.conf2
-rw-r--r--conf/distro/tdx-x11-upstream.conf2
-rw-r--r--conf/distro/tdx-x11.conf10
-rw-r--r--conf/distro/tdx-xwayland-rt.conf2
-rw-r--r--conf/distro/tdx-xwayland-upstream-rt.conf2
-rw-r--r--conf/distro/tdx-xwayland-upstream.conf2
-rw-r--r--conf/distro/tdx-xwayland.conf6
-rw-r--r--conf/layer.conf2
-rw-r--r--lib/recipetool/updatesrcrev.py13
-rwxr-xr-xscripts/uprev-srcrev43
19 files changed, 211 insertions, 125 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..381f4b1
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,20 @@
+variables:
+# uncomment for the pipeline debug purpose
+# CI_DEBUG_TRACE: "true"
+ CI_IMAGE: gitlab.int.toradex.com:4567/oleksandr.suvorov/ci-toolchain-container:linux-kernel-builder
+ DOCKER_HOST: tcp://docker:2375
+ DOCKER_DRIVER: overlay2
+ DOCKER_TLS_CERTDIR: ""
+
+stages:
+ - empty-stub
+
+prepare_image:
+ stage: empty-stub
+ image: $CI_IMAGE
+ variables:
+ GIT_STRATEGY: fetch
+ GIT_DEPTH: "1"
+ script: |
+ echo "Empty test pipeline."
+ true
diff --git a/README b/README
index a54dc45..be0d685 100644
--- a/README
+++ b/README
@@ -52,8 +52,7 @@ To send patches, use
Building
========
-See the README in either meta-toradex-nxp or meta-toradex-tegra depending
-on your SoC.
+See the README in meta-toradex-nxp layer.
License
=======
diff --git a/buildconf/bblayers.conf b/buildconf/bblayers.conf
index 1ee37e3..9377e8f 100644
--- a/buildconf/bblayers.conf
+++ b/buildconf/bblayers.conf
@@ -5,12 +5,23 @@ LCONF_VERSION = "7"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
-BBLAYERS ?= " \
+BBLAYERS_NXP ?= " \
${TOPDIR}/../layers/meta-toradex-nxp \
${TOPDIR}/../layers/meta-freescale \
${TOPDIR}/../layers/meta-freescale-3rdparty \
- \
- ${TOPDIR}/../layers/meta-toradex-tegra \
+"
+
+BBLAYERS_TI ?= " \
+ ${TOPDIR}/../layers/meta-toradex-ti \
+ ${TOPDIR}/../layers/meta-arm/meta-arm-toolchain \
+ ${TOPDIR}/../layers/meta-arm/meta-arm \
+ ${TOPDIR}/../layers/meta-ti/meta-ti-bsp \
+ ${TOPDIR}/../layers/meta-ti/meta-ti-extras \
+"
+
+BBLAYERS ?= " \
+ ${BBLAYERS_NXP} \
+ ${BBLAYERS_TI} \
\
${TOPDIR}/../layers/meta-toradex-bsp-common \
\
@@ -18,14 +29,13 @@ BBLAYERS ?= " \
${TOPDIR}/../layers/meta-openembedded/meta-filesystems \
${TOPDIR}/../layers/meta-openembedded/meta-gnome \
${TOPDIR}/../layers/meta-openembedded/meta-xfce \
- ${TOPDIR}/../layers/meta-openembedded/meta-initramfs \
${TOPDIR}/../layers/meta-openembedded/meta-networking \
${TOPDIR}/../layers/meta-openembedded/meta-multimedia \
${TOPDIR}/../layers/meta-openembedded/meta-python \
${TOPDIR}/../layers/meta-freescale-distro \
${TOPDIR}/../layers/meta-toradex-demos \
${TOPDIR}/../layers/meta-qt5 \
- \
+ ${TOPDIR}/../layers/meta-security/meta-tpm \
\
${TOPDIR}/../layers/meta-toradex-distro \
${TOPDIR}/../layers/meta-yocto/meta-poky \
diff --git a/buildconf/export b/buildconf/export
index b535a3a..87d9e95 100644
--- a/buildconf/export
+++ b/buildconf/export
@@ -39,5 +39,5 @@ if [ $FIRST_TIME -eq 1 ]; then
$ECHO -e "\033[1mA sample conf/local.conf file has been created"
$ECHO -e "Check and edit the file to adapt to your local needs\033[0m"
echo "The following likely need your attention:"
- echo "DL_DIR"
+ echo "ACCEPT_FSL_EULA = "1", DISTRO, DL_DIR"
fi
diff --git a/buildconf/local.conf b/buildconf/local.conf
index 8c6fd5f..59b1f3b 100644
--- a/buildconf/local.conf
+++ b/buildconf/local.conf
@@ -18,18 +18,30 @@
# machines which target the Toradex Apalis, Colibri and Verdin computer on
# module families:
#
+
+# Toradex Modules based on i.MX 6/6ULL/7 are only supported with the
+# tdx-xwayland-upstream DISTRO which builds a kernel pulled from
+# kernel.org and use matching userspace components.
#MACHINE ?= "apalis-imx6"
-#MACHINE ?= "apalis-imx8"
-#MACHINE ?= "apalis-imx8x"
-#MACHINE ?= "apalis-tk1"
-#
-MACHINE ?= "colibri-imx6"
+#MACHINE ?= "colibri-imx6"
#MACHINE ?= "colibri-imx6ull"
+#MACHINE ?= "colibri-imx6ull-emmc"
#MACHINE ?= "colibri-imx7"
#MACHINE ?= "colibri-imx7-emmc"
-#MACHINE ?= "colibri-imx8x"
#
+# Toradex Modules based on SoC of the i.MX 8 family are supported with the
+# tdx-xwayland DISTRO which builds a kernel based on NXP's downstream fork
+# and matching userspace components. Support with tdx-xwayland-upstream
+# DISTRO is experimental and currently only builds for Verdin modules.
+#MACHINE ?= "apalis-imx8"
+#MACHINE ?= "colibri-imx8x"
#MACHINE ?= "verdin-imx8mm"
+#MACHINE ?= "verdin-imx8mp"
+#
+# Toradex Modules based on SoC of the TI AM62x family are supported with the
+# tdx-xwayland DISTRO which builds a kernel based on TI downstream fork
+# and matching userspace components.
+#MACHINE ?= "verdin-am62"
#
# There are also a selection of emulated machines available which can boot and run
# in the QEMU emulator:
@@ -87,7 +99,18 @@ SSTATE_DIR ?= "${TOPDIR}/../sstate-cache"
# This places the build output in parallel to build and layers thus
# if you have several build directories you need to adjust deploy
# to something unique, e.g. "${TOPDIR}/../deploy_fb" "${TOPDIR}/../deploy_x11"
-DEPLOY_DIR = "${TOPDIR}/deploy"
+#
+# In case of a multiconfig (e.g. TI's k3 architecture) separate the deploy
+# dirs. All native recipe deploy identical license files into the deploy directories.
+# If having one deploy directory for all configs this results in build errors
+# for any build executed after the first one.
+# Thus configure a deploy directory with the name of the multiconfig inside the
+# default deploy directory.
+# If build artefacts are needed for the final image additional work may be
+# needed, follow TI_COMMON_DEPLOY to see how that is than in the k3 case.
+#
+TI_COMMON_DEPLOY = "${TOPDIR}/deploy"
+DEPLOY_DIR = "${TI_COMMON_DEPLOY}${@'' if d.getVar('BB_CURRENT_MC') == 'default' else '/${BB_CURRENT_MC}'}"
#
# Package Management configuration
@@ -109,7 +132,7 @@ PACKAGE_CLASSES ?= "package_ipk"
# This variable specifies the architecture to build SDK items for and means
# you can build the SDK packages for architectures other than the machine you are
# running the build on (i.e. building i686 packages on an x86_64 host).
-# Supported values are i686 and x86_64
+# Supported values are i686, x86_64, aarch64
#SDKMACHINE ?= "i686"
#
@@ -146,11 +169,7 @@ EXTRA_IMAGE_FEATURES ?= "debug-tweaks package-management"
# enable extra features. Some available options which can be included in this variable
# are:
# - 'buildstats' collect build statistics
-# - 'image-mklibs' to reduce shared library files size for an image
-# - 'image-prelink' in order to prelink the filesystem image
-# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink
-# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended
-USER_CLASSES ?= "buildstats image-mklibs image-prelink"
+USER_CLASSES ?= "buildstats"
#
# Runtime testing of images
@@ -160,7 +179,7 @@ USER_CLASSES ?= "buildstats image-mklibs image-prelink"
# run tests against any SDK that are built. To enable this uncomment these lines.
# See classes/test{image,sdk}.bbclass for further details.
#IMAGE_CLASSES += "testimage testsdk"
-#TESTIMAGE_AUTO_qemuall = "1"
+#TESTIMAGE_AUTO:qemuall = "1"
#
# Interactive shell configuration
@@ -186,25 +205,25 @@ PATCHRESOLVE = "noop"
#
# Monitor the disk space during the build. If there is less that 1GB of space or less
# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully
-# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort
+# shutdown the build. If there is less than 100MB or 1K inodes, perform a hard halt
# of the build. The reason for this is that running completely out of space can corrupt
# files and damages the build in ways which may not be easily recoverable.
-# It's necesary to monitor /tmp, if there is no space left the build will fail
+# It's necessary to monitor /tmp, if there is no space left the build will fail
# with very exotic errors.
BB_DISKMON_DIRS ??= "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
- ABORT,${TMPDIR},100M,1K \
- ABORT,${DL_DIR},100M,1K \
- ABORT,${SSTATE_DIR},100M,1K \
- ABORT,/tmp,10M,1K"
+ HALT,${TMPDIR},100M,1K \
+ HALT,${DL_DIR},100M,1K \
+ HALT,${SSTATE_DIR},100M,1K \
+ HALT,/tmp,10M,1K"
#
# Shared-state files from other locations
#
-# As mentioned above, shared state files are prebuilt cache data objects which can
+# As mentioned above, shared state files are prebuilt cache data objects which can be
# used to accelerate build time. This variable can be used to configure the system
# to search other mirror locations for these objects before it builds the data itself.
#
@@ -216,21 +235,37 @@ BB_DISKMON_DIRS ??= "\
# at the end as shown in the examples below. This will be substituted with the
# correct path within the directory structure.
#SSTATE_MIRRORS ?= "\
-#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
+#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \
#file://.* file:///some/local/dir/sstate/PATH"
+#
+# Yocto Project SState Mirror
+#
+# The Yocto Project has prebuilt artefacts available for its releases, you can enable
+# use of these by uncommenting the following lines. This will mean the build uses
+# the network to check for artefacts at the start of builds, which does slow it down
+# equally, it will also speed up the builds by not having to build things if they are
+# present in the cache. It assumes you can download something faster than you can build it
+# which will depend on your network.
+# Note: For this to work you also need hash-equivalence passthrough to the matching server
+#
+#BB_HASHSERVE_UPSTREAM = "typhoon.yocto.io:8687"
+#SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/3.4/PATH;downloadfilename=PATH"
#
# Qemu configuration
#
-# By default qemu will build with a builtin VNC server where graphical output can be
-# seen. The two lines below enable the SDL backend too. By default libsdl2-native will
-# be built, if you want to use your host's libSDL instead of the minimal libsdl built
-# by libsdl2-native then uncomment the ASSUME_PROVIDED line below.
-PACKAGECONFIG_append_pn-qemu-system-native = " sdl"
-PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
+# By default native qemu will build with a builtin VNC server where graphical output can be
+# seen. The line below enables the SDL UI frontend too.
+PACKAGECONFIG:append:pn-qemu-system-native = " sdl"
+# By default libsdl2-native will be built, if you want to use your host's libSDL instead of
+# the minimal libsdl built by libsdl2-native then uncomment the ASSUME_PROVIDED line below.
#ASSUME_PROVIDED += "libsdl2-native"
+# You can also enable the Gtk UI frontend, which takes somewhat longer to build, but adds
+# a handy set of menus for controlling the emulator.
+#PACKAGECONFIG:append:pn-qemu-system-native = " gtk+"
+
#
# Hash Equivalence
#
@@ -245,28 +280,39 @@ PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
#BB_HASHSERVE = "auto"
#BB_SIGNATURE_HANDLER = "OEEquivHash"
+#
+# Memory Resident Bitbake
+#
+# Bitbake's server component can stay in memory after the UI for the current command
+# has completed. This means subsequent commands can run faster since there is no need
+# for bitbake to reload cache files and so on. Number is in seconds, after which the
+# server will shut down.
+#
+#BB_SERVER_TIMEOUT = "60"
-# Toradex fitImage support (For EMMC modules)
+# fitImage support (For EMMC modules)
#
# To enable fitimage, uncomment the following two lines
#
-# KERNEL_CLASSES_append = " toradex-fitimage"
-# KERNEL_IMAGETYPE_forcevariable = "${@'zImage' if d.getVar('TORADEX_FLASH_TYPE') == 'rawnand' else 'fitImage'}"
+# KERNEL_CLASSES:append = " kernel-fitimage"
+# KERNEL_IMAGETYPE:forcevariable = "${@'zImage' if d.getVar('TORADEX_FLASH_TYPE') == 'rawnand' else 'fitImage'}"
# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
# track the version of this file when it was generated. This can safely be ignored if
# this doesn't mean anything to you.
-CONF_VERSION = "1"
+CONF_VERSION = "2"
# Delete the the source/object/binary files once a package is built to preserve disk space
INHERIT += "rm_work"
-# Add Toradex source mirror
-INHERIT += "toradex-mirrors"
+# Add Toradex bbclasses
+INHERIT += "toradex-mirrors toradex-sanity"
-# Use this distro
-DISTRO = "tdx-xwayland"
+# Use the upstream distro for modules based on i.MX 6/6ULL/7, downstream is no longer supported.
+# For i.MX 8/8X/8MM/8MP and TI modules the downstream distro is used.
+MACHINES_DOWNSTREAM_DISTRO_DEFAULT = "apalis-imx8 colibri-imx8x verdin-imx8mm verdin-imx8mp verdin-am62 verdin-am62-k3r5"
+DISTRO ?= "${@bb.utils.contains("MACHINES_DOWNSTREAM_DISTRO_DEFAULT", d.getVar('MACHINE') or '', "tdx-xwayland", "tdx-xwayland-upstream", d)}"
# Don't generate the mirror tarball for SCM repos, the snapshot is enough
# BB_GENERATE_MIRROR_TARBALLS = "0"
@@ -274,3 +320,5 @@ DISTRO = "tdx-xwayland"
# This file does not need to exist, if it does it can be used to influence machine specific
# configurations without copying the machine file.
include conf/machine/include/${MACHINE}.inc
+
+# DO NOT SET THE MACHINE AFTER THE ABOVE INCLUDE
diff --git a/classes/toradex-mirrors.bbclass b/classes/toradex-mirrors.bbclass
new file mode 100644
index 0000000..de8822c
--- /dev/null
+++ b/classes/toradex-mirrors.bbclass
@@ -0,0 +1,14 @@
+TORADEX_MIRROR_URL="https://artifacts.toradex.com/artifactory/tdxref-torizoncore-sources-frankfurt/${TDX_MAJOR}"
+
+PREMIRRORS:append = " \
+cvs://.*/.* ${TORADEX_MIRROR_URL} \
+svn://.*/.* ${TORADEX_MIRROR_URL} \
+git://.*/.* ${TORADEX_MIRROR_URL} \
+gitsm://.*/.* ${TORADEX_MIRROR_URL} \
+hg://.*/.* ${TORADEX_MIRROR_URL} \
+bzr://.*/.* ${TORADEX_MIRROR_URL} \
+p4://.*/.* ${TORADEX_MIRROR_URL} \
+osc://.*/.* ${TORADEX_MIRROR_URL} \
+https?$://.*/.* ${TORADEX_MIRROR_URL} \
+ftp://.*/.* ${TORADEX_MIRROR_URL} \
+"
diff --git a/conf/distro/include/arm-defaults.inc b/conf/distro/include/arm-defaults.inc
index 7f9d3b2..efdbe72 100644
--- a/conf/distro/include/arm-defaults.inc
+++ b/conf/distro/include/arm-defaults.inc
@@ -13,6 +13,7 @@ def at_least_one(elements, list):
def arm_tune_handler(d):
armv7athf_tune_features = ['armv7a', 'armv7ve', 'cortexa5', 'cortexa7', 'cortexa9', 'cortexa15']
+ armv8a_tune_features = ['armv8a', 'crc']
features = d.getVar('TUNE_FEATURES').split()
if at_least_one(armv7athf_tune_features, features):
tune = 'armv7athf'
@@ -26,12 +27,11 @@ def arm_tune_handler(d):
tune += '-neon'
if 'vfpv4' in features:
tune += '-vfpv4'
+ elif at_least_one(armv8a_tune_features, features):
+ # all currently used i.MX 8 members support the following
+ tune = 'armv8a-crypto'
else:
tune = d.getVar('DEFAULTTUNE')
return tune
-DEFAULTTUNE_tdx := "${@arm_tune_handler(d)}"
-
-DISTRO_ARM_INSTRUCTION ?= "thumb"
-DISTRO_ARM_INSTRUCTION_armv5 ?= "arm"
-ARM_INSTRUCTION_SET_tdx ??= "${DISTRO_ARM_INSTRUCTION}"
+DEFAULTTUNE:tdx := "${@arm_tune_handler(d)}"
diff --git a/conf/distro/include/tdx-base.inc b/conf/distro/include/tdx-base.inc
index 80533f0..98bd293 100644
--- a/conf/distro/include/tdx-base.inc
+++ b/conf/distro/include/tdx-base.inc
@@ -32,6 +32,12 @@ TDX_RELEASE ?= "${TDX_MAJOR}.${TDX_MINOR}.${TDX_PATCH}"
# specific software artifacts.
TDX_VERSION ?= "${TDX_RELEASE}${@'' if d.getVar('TDX_PURPOSE') == 'Release' else '-devel'}"
+# Show Tezi EULA license
+TEZI_SHOW_EULA_LICENSE ?= "1"
+TEZI_SHOW_EULA_LICENSE:use-mainline-bsp ?= "0"
+TEZI_SHOW_EULA_LICENSE:colibri-imx6:use-mainline-bsp ?= "1"
+TEZI_SHOW_EULA_LICENSE:apalis-imx6:use-mainline-bsp ?= "1"
+
# Complete image version with date and build number
DISTRO_VERSION = "${TDX_RELEASE}${TDX_PRERELEASE}${TDX_BUILD}"
@@ -53,9 +59,6 @@ INHERIT += "image-buildinfo"
INHERIT += "buildhistory"
BUILDHISTORY_COMMIT = "1"
-# Use bluez5 as default.
-DISTRO_FEATURES_append = " bluez5"
-
IMAGE_LINGUAS ?= "en-us"
# Some Toradex recipes like linux-toradex, u-boot-toradex,
@@ -65,48 +68,26 @@ IMAGE_LINGUAS ?= "en-us"
#
# This avoids some annoying errors as follows:
# | QA Issue: Package version went backwards which would break package feeds
-ERROR_QA_remove = "version-going-backwards"
+ERROR_QA:remove = "version-going-backwards"
-# TODO: review default distro features
-DISTRO_FEATURES_append = " pam systemd"
-DISTRO_FEATURES_remove = "sysvinit ptest"
+DISTRO_FEATURES:append = " pam systemd usrmerge"
+DISTRO_FEATURES:remove = "sysvinit ptest"
VIRTUAL-RUNTIME_init_manager = "systemd"
-PACKAGECONFIG_append_pn-qemu-native = " libusb"
+PACKAGECONFIG:append:pn-systemd = " serial-getty-generator"
+PACKAGECONFIG:append:pn-qemu-native = " libusb"
PREFERRED_PROVIDER_u-boot-fw-utils = "libubootenv"
PREFERRED_RPROVIDER_u-boot-fw-utils = "libubootenv"
-PREFERRED_RPROVIDER_u-boot-default-env = "${PREFERRED_PROVIDER_virtual/bootloader}"
PREFERRED_PROVIDER_virtual/dtb ?= "device-tree-overlays"
-# Use i.MX Gstreamer Version (for PXP DMA-ENGINE Driver)
-PREFERRED_VERSION_gstreamer1.0_imx = "1.16.2.imx"
-PREFERRED_VERSION_gstreamer1.0-plugins-base_imx = "1.16.2.imx"
-PREFERRED_VERSION_gstreamer1.0-plugins-good_imx = "1.16.3.imx"
-PREFERRED_VERSION_gstreamer1.0-plugins-bad_imx = "1.16.3.imx"
-
-# the 1.16.imx variants have their COMPATIBLE set so that they don't build
-# for use-mainline-bsp
-PREFERRED_VERSION_gstreamer1.0_use-mainline-bsp = "1.18%"
-PREFERRED_VERSION_gstreamer1.0-plugins-base_use-mainline-bsp = "1.18%"
-PREFERRED_VERSION_gstreamer1.0-plugins-good_use-mainline-bsp = "1.18%"
-PREFERRED_VERSION_gstreamer1.0-plugins-bad_use-mainline-bsp = "1.18%"
-
-# Override Wayland/Weston Version set in meta-freescale imx-base.inc
-PREFERRED_VERSION_wayland-protocols_mx6 = "1.20.imx"
-PREFERRED_VERSION_wayland-protocols_mx7 = "1.20.imx"
-PREFERRED_VERSION_wayland-protocols_mx8 = "1.20.imx"
-
-PREFERRED_VERSION_weston_mx6 ?= "9.0.0.imx"
-PREFERRED_VERSION_weston_mx7 ?= "9.0.0.imx"
-PREFERRED_VERSION_weston_mx8 ?= "9.0.0.imx"
-
-# Use i.MX libdrm Version
-PREFERRED_VERSION_libdrm_mx6 = "2.4.102.imx"
-PREFERRED_VERSION_libdrm_mx7 = "2.4.102.imx"
-PREFERRED_VERSION_libdrm_mx8 = "2.4.102.imx"
-
-PREFERRED_PROVIDER_opencl-headers_imxgpu = "imx-gpu-viv"
-PREFERRED_PROVIDER_opencl-clhpp_imxgpu = "imx-gpu-viv"
-PREFERRED_PROVIDER_opencl-icd-loader_imxgpu = "imx-gpu-viv"
-PREFERRED_RPROVIDER_opencl-icd-loader_imxgpu = "libopencl-imx"
+PREFERRED_PROVIDER_opencl-headers:imxgpu = "imx-gpu-viv"
+PREFERRED_PROVIDER_opencl-clhpp:imxgpu = "imx-gpu-viv"
+PREFERRED_PROVIDER_opencl-icd-loader:imxgpu = "imx-gpu-viv"
+PREFERRED_RPROVIDER_opencl-icd-loader:imxgpu = "libopencl-imx"
+
+# keep the dtb vendor directories in fitimage node names
+KERNEL_DTBVENDORED = "1"
+
+# Defines the root home directory as /root, as required by systemd.
+ROOT_HOME = "/root"
diff --git a/conf/distro/tdx-x11-rt.conf b/conf/distro/tdx-x11-rt.conf
index 66669f2..6b21e7f 100644
--- a/conf/distro/tdx-x11-rt.conf
+++ b/conf/distro/tdx-x11-rt.conf
@@ -8,4 +8,4 @@ DISTRO_NAME = "TDX X11 RT"
DISTROOVERRIDES .= ":preempt-rt"
DISTRO_FLAVOUR = " (X11 PREEMPT_RT)"
-IMAGE_BASENAME_append = "-rt"
+IMAGE_BASENAME:append = "-rt"
diff --git a/conf/distro/tdx-x11-upstream-rt.conf b/conf/distro/tdx-x11-upstream-rt.conf
index 343534e..83914ad 100644
--- a/conf/distro/tdx-x11-upstream-rt.conf
+++ b/conf/distro/tdx-x11-upstream-rt.conf
@@ -8,4 +8,4 @@ DISTRO_NAME = "TDX X11 Upstream RT"
DISTROOVERRIDES .= ":preempt-rt"
DISTRO_FLAVOUR = " (X11 UPSTREAM PREEMPT_RT)"
-IMAGE_BASENAME_append = "-rt"
+IMAGE_BASENAME:append = "-rt"
diff --git a/conf/distro/tdx-x11-upstream.conf b/conf/distro/tdx-x11-upstream.conf
index 456dfd2..aeaa666 100644
--- a/conf/distro/tdx-x11-upstream.conf
+++ b/conf/distro/tdx-x11-upstream.conf
@@ -10,4 +10,4 @@ DISTRO_FLAVOUR = " (X11 UPSTREAM)"
IMX_DEFAULT_BSP = "mainline"
-IMAGE_BASENAME_append = "-upstream"
+IMAGE_BASENAME:append = "-upstream"
diff --git a/conf/distro/tdx-x11.conf b/conf/distro/tdx-x11.conf
index a707f39..47ff7c1 100644
--- a/conf/distro/tdx-x11.conf
+++ b/conf/distro/tdx-x11.conf
@@ -7,19 +7,19 @@ DISTRO = "tdx-x11"
DISTRO_NAME = "TDX X11"
DISTRO_FLAVOUR = "(X11)"
-IMAGE_BASENAME_append = "-x11"
+IMAGE_BASENAME:append = "-x11"
IMX_DEFAULT_BSP = "nxp"
# Remove conflicting backends.
-DISTRO_FEATURES_remove = "wayland "
+DISTRO_FEATURES:remove = "wayland "
# we use graphics, so set opengl
-DISTRO_FEATURES_append = " opengl"
+DISTRO_FEATURES:append = " opengl"
# These are X11 specific
-DISTRO_FEATURES_append = " x11"
+DISTRO_FEATURES:append = " x11"
# lxqt requires this
-DISTRO_FEATURES_append = " polkit"
+DISTRO_FEATURES:append = " polkit"
diff --git a/conf/distro/tdx-xwayland-rt.conf b/conf/distro/tdx-xwayland-rt.conf
index 512875b..e1c08d9 100644
--- a/conf/distro/tdx-xwayland-rt.conf
+++ b/conf/distro/tdx-xwayland-rt.conf
@@ -8,4 +8,4 @@ DISTRO_NAME = "TDX Wayland with XWayland RT"
DISTROOVERRIDES .= ":preempt-rt"
DISTRO_FLAVOUR = " (PREEMPT_RT)"
-IMAGE_BASENAME_append = "-rt" \ No newline at end of file
+IMAGE_BASENAME:append = "-rt" \ No newline at end of file
diff --git a/conf/distro/tdx-xwayland-upstream-rt.conf b/conf/distro/tdx-xwayland-upstream-rt.conf
index 2bf880b..8b3435c 100644
--- a/conf/distro/tdx-xwayland-upstream-rt.conf
+++ b/conf/distro/tdx-xwayland-upstream-rt.conf
@@ -8,4 +8,4 @@ DISTRO_NAME = "TDX Wayland with XWayland Upstream RT"
DISTROOVERRIDES .= ":preempt-rt"
DISTRO_FLAVOUR = " (UPSTREAM PREEMPT_RT)"
-IMAGE_BASENAME_append = "-rt"
+IMAGE_BASENAME:append = "-rt"
diff --git a/conf/distro/tdx-xwayland-upstream.conf b/conf/distro/tdx-xwayland-upstream.conf
index 6bc703a..739f240 100644
--- a/conf/distro/tdx-xwayland-upstream.conf
+++ b/conf/distro/tdx-xwayland-upstream.conf
@@ -10,4 +10,4 @@ DISTRO_FLAVOUR = " (UPSTREAM)"
IMX_DEFAULT_BSP = "mainline"
-IMAGE_BASENAME_append = "-upstream"
+IMAGE_BASENAME:append = "-upstream"
diff --git a/conf/distro/tdx-xwayland.conf b/conf/distro/tdx-xwayland.conf
index b2be0d9..55d4d79 100644
--- a/conf/distro/tdx-xwayland.conf
+++ b/conf/distro/tdx-xwayland.conf
@@ -10,9 +10,9 @@ DISTRO_FLAVOUR = ""
IMX_DEFAULT_BSP = "nxp"
# we use graphics, so set opengl
-DISTRO_FEATURES_append = " opengl"
+DISTRO_FEATURES:append = " opengl"
-DISTRO_FEATURES_append = " wayland x11"
+DISTRO_FEATURES:append = " wayland x11"
# lxqt requires this
-DISTRO_FEATURES_append = " polkit"
+DISTRO_FEATURES:append = " polkit"
diff --git a/conf/layer.conf b/conf/layer.conf
index dc13acb..0a7524b 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -12,4 +12,4 @@ BBFILE_PATTERN_IGNORE_EMPTY_meta-toradex-distro = "1"
BBFILE_PRIORITY_meta-toradex-distro = "21"
LAYERDEPENDS_meta-toradex-distro = "core yocto"
-LAYERSERIES_COMPAT_meta-toradex-distro = "gatesgarth hardknott"
+LAYERSERIES_COMPAT_meta-toradex-distro = "nanbield scarthgap"
diff --git a/lib/recipetool/updatesrcrev.py b/lib/recipetool/updatesrcrev.py
index d15afe5..2a48b64 100644
--- a/lib/recipetool/updatesrcrev.py
+++ b/lib/recipetool/updatesrcrev.py
@@ -37,6 +37,12 @@ def updatesrcrev(args):
if not rd:
return 1
+ # The line `PV = "2020.07+git${SRCPV}"` in the U-Boot 2020.07 recipe
+ # makes the uprev of that recipe fail if no MACHINE is defined.
+ # (Because then UBOOT_MACHINE or UBOOT_CONFIG is not defined.)
+ # Just reading PV of the datastore fixes the issue
+ pv = rd.getVar('PV')
+
src_uris = rd.getVar('SRC_URI').split()
revision = {}
for src_uri in src_uris:
@@ -44,6 +50,10 @@ def updatesrcrev(args):
if not src_uri.startswith(('git://', 'gitsm://')):
continue
+ # Workaround check in fetcher code, see bitbake commit 4b5eed16
+ if not "AUTOINC" in pv:
+ pkgpv = bb.fetch2.get_srcrev(rd, 'gitpkgv_revision')
+
ud = bb.fetch2.FetchData(src_uri, rd)
# Allow multiple "named" git repos
for name in ud.names:
@@ -52,8 +62,9 @@ def updatesrcrev(args):
# Update SRC_URI variable by default
varvalues = {}
for name in revision.keys():
+ filename = os.path.basename(rd.getVar('FILE', False))
var = 'SRCREV' if name == 'default' else 'SRCREV_{}'.format(name)
- logger.info('Update {} to {}.'.format(var, revision[name]))
+ logger.info('{}: Update {} to {}.'.format(filename, var, revision[name]))
varvalues[var] = revision[name]
if len(varvalues) == 0:
diff --git a/scripts/uprev-srcrev b/scripts/uprev-srcrev
index d1597f3..e6ebe81 100755
--- a/scripts/uprev-srcrev
+++ b/scripts/uprev-srcrev
@@ -21,26 +21,24 @@ import scriptutils
logger = scriptutils.logger_create('uprev-srcrev')
recipes_tdxref = [
- "../layers/meta-toradex-bsp-common/recipes-kernel/backports/backports_5.4.bb",
- "../layers/meta-toradex-bsp-common/recipes-kernel/linux/linux-toradex-mainline_5.4.bb",
+ "../layers/meta-toradex-bsp-common/recipes-kernel/linux/linux-toradex-upstream_6.6.bb",
+ "../layers/meta-toradex-bsp-common/recipes-kernel/linux/linux-toradex-upstream-rt_6.6.bb",
"../layers/meta-toradex-bsp-common/recipes-kernel/linux/device-tree-overlays-mainline_git.bb",
- "../layers/meta-toradex-nxp/recipes-kernel/linux/linux-toradex_5.4-2.3.x.bb",
+ "../layers/meta-toradex-nxp/recipes-kernel/linux/linux-toradex_5.15-2.2.x.bb",
"../layers/meta-toradex-nxp/recipes-kernel/linux/device-tree-overlays_git.bb",
- "../layers/meta-toradex-nxp/recipes-bsp/imx-sc-firmware/imx-sc-firmware-toradex_1.5.1.bb",
- "../layers/meta-toradex-nxp/recipes-bsp/u-boot/u-boot-toradex_2020.04.bb",
- "../layers/meta-toradex-nxp/recipes-bsp/u-boot/u-boot-toradex_2020.07.bb",
- "../layers/meta-toradex-tegra/recipes-bsp/u-boot/u-boot-toradex-tk1_2019.07.bb",
+ "../layers/meta-toradex-nxp/recipes-bsp/imx-sc-firmware/imx-sc-firmware-toradex_1.15.0.bb",
+ "../layers/meta-toradex-nxp/recipes-bsp/u-boot/u-boot-toradex_2022.04.bb",
+ "../layers/meta-toradex-ti/recipes-bsp/u-boot/u-boot-toradex-ti_2023.04.bb",
+ "../layers/meta-toradex-ti/recipes-kernel/linux/device-tree-overlays-ti_git.bb",
+ "../layers/meta-toradex-ti/recipes-kernel/linux/linux-toradex-ti_6.1.bb",
+ ]
+
+recipes_tezi = [
+ "../layers/meta-toradex-tezi/recipes-tezi/qt-tezi/qt-tezi_git.bb",
+ "../layers/meta-toradex-tezi/recipes-tezi/qt-tezi/qt-tezictl_git.bb",
]
recipes_torizon = [
- "../layers/meta-toradex-bsp-common/recipes-kernel/backports/backports_5.4.bb",
- "../layers/meta-toradex-bsp-common/recipes-kernel/linux/linux-toradex-mainline_5.4.bb",
- "../layers/meta-toradex-bsp-common/recipes-kernel/linux/device-tree-overlays-mainline_git.bb",
- "../layers/meta-toradex-nxp/recipes-kernel/linux/linux-toradex_5.4-2.3.x.bb",
- "../layers/meta-toradex-nxp/recipes-kernel/linux/device-tree-overlays_git.bb",
- "../layers/meta-toradex-nxp/recipes-bsp/imx-sc-firmware/imx-sc-firmware-toradex_1.5.1.bb",
- "../layers/meta-toradex-nxp/recipes-bsp/u-boot/u-boot-toradex_2020.04.bb",
- "../layers/meta-toradex-nxp/recipes-bsp/u-boot/u-boot-toradex_2020.07.bb",
"../layers/meta-toradex-torizon/recipes-kernel/linux/linux-toradex-kmeta.inc",
]
@@ -54,8 +52,9 @@ def uprev_recipe(args, env, recipe):
shell=True)
if not args.quiet:
print(result.stdout)
+ return result.returncode
except subprocess.CalledProcessError as e:
- print('ERROR: recipetool failed:\n%s' % e.output.decode('utf-8'))
+ logger.error('ERROR: recipetool failed:\n%s' % e.output.decode('utf-8'))
return e.returncode
@@ -66,14 +65,18 @@ def uprev(args):
env['BB_SRCREV_POLICY'] = "clear"
# decide if we build torizon or tdxref. Use the existence of meta-toradex-torizon
+ recipes = recipes_tdxref
if os.path.exists(os.path.join(script_path, '../../meta-toradex-torizon')):
- recipes = recipes_torizon
- else:
- recipes = recipes_tdxref
+ recipes = recipes + recipes_torizon
+ elif os.path.exists(os.path.join(script_path, '../../meta-toradex-tezi')):
+ recipes = recipes + recipes_tezi
for recipe in recipes:
logger.info('Processing recipe {}'.format(recipe))
- uprev_recipe(args, env, recipe)
+ res = uprev_recipe(args, env, recipe)
+ if (res != os.EX_OK):
+ return res
+ return os.EX_OK
def main():
parser = argparse_oe.ArgumentParser(description='SRCREV uprev tool.')