summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/image_type_tezi.bbclass20
-rw-r--r--classes/toradex-devicetree.bbclass3
-rw-r--r--classes/toradex-fitimage.bbclass20
-rw-r--r--classes/toradex-sanity.bbclass74
-rw-r--r--recipes-bsp/tezi-metadata/files/LA_OPT_NXP_SW.html168
-rw-r--r--recipes-bsp/tezi-metadata/tezi-metadata_0.3.bb8
-rw-r--r--recipes-bsp/u-boot/u-boot-distro-boot.bb4
-rw-r--r--recipes-bsp/u-boot/u-boot-distro-boot/boot.cmd.in32
-rw-r--r--recipes-core/set-hostname/files/set-hostname.service2
-rw-r--r--recipes-core/systemd/systemd-conf/journald.conf3
-rw-r--r--recipes-core/systemd/systemd-conf_%.bbappend2
-rw-r--r--recipes-core/systemd/systemd_%.bbappend4
-rw-r--r--recipes-core/udev/files/apalis-imx6/99-toradex.rules4
-rw-r--r--recipes-core/udev/files/apalis-imx8/99-toradex.rules4
-rw-r--r--recipes-core/udev/files/apalis-imx8x/99-toradex.rules15
-rwxr-xr-xrecipes-core/udev/files/apalis-imx8x/toradex-adc.sh21
-rw-r--r--recipes-core/udev/files/apalis-tk1/99-toradex.rules4
-rw-r--r--recipes-core/udev/files/colibri-imx6/99-toradex.rules2
-rw-r--r--recipes-core/udev/files/colibri-imx6ull-emmc/99-toradex.rules13
-rwxr-xr-xrecipes-core/udev/files/colibri-imx6ull-emmc/toradex-adc.sh21
-rw-r--r--recipes-core/udev/files/colibri-imx6ull/99-toradex.rules5
-rwxr-xr-xrecipes-core/udev/files/colibri-imx6ull/toradex-adc.sh2
-rw-r--r--recipes-core/udev/files/colibri-imx7-emmc/99-toradex.rules2
-rw-r--r--recipes-core/udev/files/colibri-imx7/99-toradex.rules5
-rw-r--r--recipes-core/udev/files/colibri-imx8x/99-toradex.rules2
-rw-r--r--recipes-core/udev/files/mount.sh2
-rw-r--r--recipes-core/udev/files/verdin-imx8mm/99-toradex.rules2
-rwxr-xr-xrecipes-core/udev/files/verdin-imx8mm/toradex-adc.sh10
-rw-r--r--recipes-core/udev/files/verdin-imx8mp/99-toradex.rules3
-rw-r--r--recipes-core/udev/udev-extraconf_%.bbappend6
-rw-r--r--recipes-core/util-linux/util-linux/fstrim.service7
-rw-r--r--recipes-core/util-linux/util-linux/fstrim.timer11
-rw-r--r--recipes-core/util-linux/util-linux_%.bbappend20
-rw-r--r--recipes-devtools/e2fsprogs/e2fsprogs_%.bbappend7
-rw-r--r--recipes-devtools/mtd/mtd-utils_%.bbappend2
-rw-r--r--recipes-devtools/python/python3-docutils/rst2man_using_python3.patch8
-rw-r--r--recipes-devtools/python/python3-docutils_%.bbappend6
-rw-r--r--recipes-kernel/kmod/depmodwrapper-cross_%.bbappend2
-rw-r--r--recipes-kernel/linux/device-tree-overlays-mainline_git.bb2
-rw-r--r--recipes-kernel/linux/linux-toradex-mainline_%.bbappend1
-rw-r--r--recipes-kernel/linux/linux-toradex-mainline_5.4.bb14
-rw-r--r--recipes-kernel/linux/linux-toradex_%.bbappend1
-rw-r--r--recipes-support/libsoc/libsoc_0.8.2.bbappend11
-rw-r--r--recipes-support/libusbgx/files/usbg.service2
-rw-r--r--recipes-support/libusbgx/libusbgx_git.bb4
-rw-r--r--recipes-support/rng-tools/rng-tools_%.bbappend1
46 files changed, 450 insertions, 112 deletions
diff --git a/classes/image_type_tezi.bbclass b/classes/image_type_tezi.bbclass
index c10a325..cd343fe 100644
--- a/classes/image_type_tezi.bbclass
+++ b/classes/image_type_tezi.bbclass
@@ -19,6 +19,10 @@ TDX_RELEASE ??= "0.0.0"
TDX_MATRIX_BUILD_TIME ??= "${DATETIME}"
TDX_MATRIX_BUILD_TIME[vardepsexclude] = "DATETIME"
+EMMCDEV = "mmcblk0"
+EMMCDEV_verdin-imx8mp = "emmc"
+EMMCDEVBOOT0 = "mmcblk0boot0"
+EMMCDEVBOOT0_verdin-imx8mp = "emmc-boot0"
TEZI_VERSION ?= "${DISTRO_VERSION}"
TEZI_DATE ?= "${TDX_MATRIX_BUILD_TIME}"
TEZI_IMAGE_NAME ?= "${IMAGE_NAME}"
@@ -27,6 +31,7 @@ TEZI_ROOT_LABEL ??= "RFS"
TEZI_ROOT_NAME ??= "rootfs"
TEZI_ROOT_SUFFIX ??= "tar.xz"
TEZI_USE_BOOTFILES ??= "true"
+TEZI_AUTO_INSTALL ??= "false"
TEZI_BOOT_SUFFIX ??= "${@'bootfs.tar.xz' if oe.types.boolean('${TEZI_USE_BOOTFILES}') else ''}"
TEZI_CONFIG_FORMAT ??= "2"
# Require newer Tezi for mx8 Socs with the u-boot environment bugfix
@@ -128,9 +133,11 @@ def tezi_deploy_files(d, deploy_var, deploy_dir, source_dir=None):
def rootfs_tezi_emmc(d, use_bootfiles):
from collections import OrderedDict
+ emmcdev = d.getVar('EMMCDEV')
+ emmcdevboot0 = d.getVar('EMMCDEVBOOT0')
+ imagename = d.getVar('IMAGE_LINK_NAME')
offset_bootrom = d.getVar('OFFSET_BOOTROM_PAYLOAD')
offset_spl = d.getVar('OFFSET_SPL_PAYLOAD')
- imagename = d.getVar('IMAGE_LINK_NAME')
bootpart_rawfiles = []
filesystem_partitions = []
@@ -176,11 +183,11 @@ def rootfs_tezi_emmc(d, use_bootfiles):
return [
OrderedDict({
- "name": "mmcblk0",
+ "name": emmcdev,
"partitions": filesystem_partitions
}),
OrderedDict({
- "name": "mmcblk0boot0",
+ "name": emmcdevboot0,
"erase": True,
"content": {
"filesystem_type": "raw",
@@ -230,7 +237,7 @@ def rootfs_tezi_rawnand(d):
kernel = {
"name": "kernel",
- "size_kib": 8192,
+ "size_kib": 12288,
"type": "static",
"content": {
"rawfile": {
@@ -274,7 +281,7 @@ def rootfs_tezi_json(d, flash_type, flash_data, json_file, uenv_file):
from datetime import datetime
deploydir = d.getVar('DEPLOY_DIR_IMAGE')
- data = OrderedDict({ "config_format": d.getVar('TEZI_CONFIG_FORMAT'), "autoinstall": False })
+ data = OrderedDict({ "config_format": d.getVar('TEZI_CONFIG_FORMAT'), "autoinstall": oe.types.boolean(d.getVar('TEZI_AUTO_INSTALL')) })
# Use image recipes SUMMARY/DESCRIPTION...
data["name"] = d.getVar('SUMMARY')
@@ -370,8 +377,7 @@ IMAGE_CMD_teziimg () {
# Copy image json file to ${WORKDIR}/image-json
cp ${IMGDEPLOYDIR}/image*.json ${WORKDIR}/image-json/image.json
- # Keep License up to date
- curl -k -O ${TEZI_EULA_URL}
+ curl -k --retry 5 -O ${TEZI_EULA_URL} || true
EULA_FILE=$(echo "${TEZI_EULA_URL##*/}")
# The first transform strips all folders from the files to tar, the
diff --git a/classes/toradex-devicetree.bbclass b/classes/toradex-devicetree.bbclass
index 4deb850..8be5959 100644
--- a/classes/toradex-devicetree.bbclass
+++ b/classes/toradex-devicetree.bbclass
@@ -42,8 +42,7 @@ DT_FILES_PATH = "${WORKDIR}/machine-overlays"
# The machine specific recipes start with MACHINE_PREFIX}[_-]
MACHINE_PREFIX = "${MACHINE}"
MACHINE_PREFIX_colibri-imx7-emmc = "colibri-imx7"
-MACHINE_PREFIX_apalis-imx8x-v11a = "apalis-imx8x"
-MACHINE_PREFIX_colibri-imx8x-v10b = "colibri-imx8x"
+MACHINE_PREFIX_colibri-imx6ull-emmc = "colibri-imx6ull"
do_collect_overlays () {
if [ -z "${TEZI_EXTERNAL_KERNEL_DEVICETREE}" ] ; then
diff --git a/classes/toradex-fitimage.bbclass b/classes/toradex-fitimage.bbclass
index 7d74d63..f0344e6 100644
--- a/classes/toradex-fitimage.bbclass
+++ b/classes/toradex-fitimage.bbclass
@@ -7,6 +7,8 @@
inherit kernel-fitimage
+FIT_SUPPORTED_INITRAMFS_FSTYPES ?= "cpio.lz4 cpio.lzo cpio.lzma cpio.xz cpio.zst cpio.gz ext2.gz cpio squashfs"
+
#
# Override fitimage_assemble in kernel-fitimage.bbclass
#
@@ -36,6 +38,9 @@ fitimage_assemble() {
uboot_prep_kimage
fitimage_emit_section_kernel ${1} "${kernelcount}" linux.bin "${linux_comp}"
+ if [ "x${UBOOT_KERNEL_TYPE}" = "xkernel_noload" ]; then
+ sed 's/\(^\s*type.*\kernel\)\"/\1_noload\"/' -i ${1}
+ fi
#
# Step 2: Prepare a DTB image section
@@ -81,14 +86,20 @@ fitimage_assemble() {
#
if [ "x${ramdiskcount}" = "x1" ] ; then
# Find and use the first initramfs image archive type we find
- for img in cpio.lz4 cpio.lzo cpio.lzma cpio.xz cpio.gz ext2.gz cpio; do
+ found=
+ for img in ${FIT_SUPPORTED_INITRAMFS_FSTYPES}; do
initramfs_path="${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE_NAME}.${img}"
echo "Using $initramfs_path"
if [ -e "${initramfs_path}" ]; then
+ found=true
fitimage_emit_section_ramdisk ${1} "${ramdiskcount}" "${initramfs_path}"
break
fi
done
+
+ if [ -z "$found" ]; then
+ bbfatal "Could not find a valid initramfs type for ${INITRAMFS_IMAGE_NAME}, the supported types are: ${FIT_SUPPORTED_INITRAMFS_FSTYPES}"
+ fi
fi
fitimage_emit_section_maint ${1} sectend
@@ -109,12 +120,15 @@ fitimage_assemble() {
for DTB in ${DTBS}; do
dtb_ext=${DTB##*.}
if [ "${dtb_ext}" = "dtbo" ]; then
- fitimage_emit_section_config ${1} "" "${DTB}" "" "" "`expr ${i} = ${dtbcount}`"
+ fitimage_emit_section_config ${1} "" "${DTB}" "" "" "" "`expr ${i} = ${dtbcount}`"
else
- fitimage_emit_section_config ${1} "${kernelcount}" "${DTB}" "${ramdiskcount}" "${setupcount}" "`expr ${i} = ${dtbcount}`"
+ fitimage_emit_section_config ${1} "${kernelcount}" "${DTB}" "${ramdiskcount}" "" "${setupcount}" "`expr ${i} = ${dtbcount}`"
fi
i=`expr ${i} + 1`
done
+ else
+ defaultconfigcount=1
+ fitimage_emit_section_config ${1} "${kernelcount}" "" "${ramdiskcount}" "" "${setupcount}" "${defaultconfigcount}"
fi
fitimage_emit_section_maint ${1} sectend
diff --git a/classes/toradex-sanity.bbclass b/classes/toradex-sanity.bbclass
new file mode 100644
index 0000000..b30eaa2
--- /dev/null
+++ b/classes/toradex-sanity.bbclass
@@ -0,0 +1,74 @@
+# Sanity check the Toradex setup for common misconfigurations
+
+TORADEX_SANITY_ABIFILE ?= "${DEPLOY_DIR}/abi_version"
+
+#
+# Check the 'ABI' of DEPLOY_DIR
+#
+def toradex_check_abichanges(status, d):
+ current_abi = d.getVar('OELAYOUT_ABI')
+ abifile = d.getVar('TORADEX_SANITY_ABIFILE')
+ if os.path.exists(abifile):
+ with open(abifile, "r") as f:
+ abi = f.read().strip()
+ if not abi.isdigit():
+ with open(abifile, "w") as f:
+ f.write(current_abi)
+ elif (abi != current_abi):
+ # Code to convert from one ABI to another could go here if possible.
+ status.addresult("Error, DEPLOY_DIR has changed its layout version number (%s to %s) and you need to either rebuild, revert or adjust it at your own risk.\n" % (abi, current_abi))
+ else:
+ bb.utils.mkdirhier(os.path.dirname(abifile))
+ with open(abifile, "w") as f:
+ f.write(current_abi)
+
+#
+# Check fitimage bbclass
+#
+def toradex_check_fitimage(status, d):
+ if bb.utils.contains('KERNEL_IMAGETYPE', 'fitImage', True, False, d):
+ if bb.utils.contains('KERNEL_CLASSES', 'toradex-fitimage', False, True, d):
+ status.addresult("Error, to build fitImage within Toradex layers, please add toradex-fitimage rather than kernel-fitimage in KERNEL_CLASSES.\n")
+
+def toradex_raise_sanity_error(msg, d):
+ if d.getVar("SANITY_USE_EVENTS") == "1":
+ bb.event.fire(bb.event.SanityCheckFailed(msg), d)
+ return
+
+ bb.fatal("Toradex' config sanity checker detected a potential misconfiguration.\n"
+ "Please fix the cause of this error then you can continue to build.\n"
+ "Following is the list of potential problems / advisories:\n"
+ "\n%s" % msg)
+
+def toradex_check_sanity(sanity_data):
+ class SanityStatus(object):
+ def __init__(self):
+ self.messages = ""
+ self.reparse = False
+
+ def addresult(self, message):
+ if message:
+ self.messages = self.messages + message
+
+ status = SanityStatus()
+
+ toradex_check_abichanges(status, sanity_data)
+ toradex_check_fitimage(status, sanity_data)
+
+ if status.messages != "":
+ toradex_raise_sanity_error(sanity_data.expand(status.messages), sanity_data)
+
+addhandler toradex_check_sanity_eventhandler
+toradex_check_sanity_eventhandler[eventmask] = "bb.event.SanityCheck"
+
+python toradex_check_sanity_eventhandler() {
+ if bb.event.getName(e) == "SanityCheck":
+ sanity_data = copy_data(e)
+ if e.generateevents:
+ sanity_data.setVar("SANITY_USE_EVENTS", "1")
+ reparse = toradex_check_sanity(sanity_data)
+ e.data.setVar("BB_INVALIDCONF", reparse)
+ bb.event.fire(bb.event.SanityCheckPassed(), e.data)
+
+ return
+}
diff --git a/recipes-bsp/tezi-metadata/files/LA_OPT_NXP_SW.html b/recipes-bsp/tezi-metadata/files/LA_OPT_NXP_SW.html
new file mode 100644
index 0000000..b49bc72
--- /dev/null
+++ b/recipes-bsp/tezi-metadata/files/LA_OPT_NXP_SW.html
@@ -0,0 +1,168 @@
+<p class="MsoNormal" style="margin: 0in 0in 14.2pt; line-height: 11.25pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="SpellE"><span style="font-size: 10pt;">LA_OPT_NXP_Software_License</span></span><span style="font-size: 10pt;">&nbsp;v20 March 2021&nbsp;</span></p>
+<p class="MsoNormal" style="margin: 0in; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;"><a name="_Hlk522799761"></a><a name="_Hlk522800910"></a><a name="_Hlk522802608"></a><strong>IMPORTANT. &nbsp;Read the following NXP Software License Agreement ("Agreement") completely. By selecting the "I Accept" button at the end of this page,&nbsp;</strong><strong>or by downloading, installing, or using the Licensed Software,&nbsp;</strong><strong>you indicate that you accept the terms of the Agreement and you&nbsp;</strong><strong>acknowledge that you have the authority, for yourself or on behalf of your company, to bind your company to these terms. You may then download or install the file.&nbsp;</strong><tt style="font-family: 'Courier New';"><strong><span style="font-family: Calibri, sans-serif;">In the event of a conflict between the terms of this Agreement and any license terms and conditions for&nbsp;</span></strong></tt><strong>NXP's proprietary software<tt style="font-family: 'Courier New';"><span style="font-family: Calibri, sans-serif;">&nbsp;embedded anywhere in the Licensed Software file, the terms of this Agreement shall control.&nbsp; If a separate license agreement for the Licensed Software has been signed by you and NXP, then that agreement shall govern your use of the Licensed Software and shall supersede this Agreement.</span></tt></strong><tt style="font-family: 'Courier New';"></tt></p>
+<p class="MsoNormal" style="margin: 0in; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif; text-align: center;" align="center"><span style="text-decoration: underline;">NXP SOFTWARE LICENSE AGREEMENT</span></p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;"><a name="_Hlk522802629"></a>This is a legal agreement between&nbsp;<a name="_Hlk522800939"></a>your employer, of which you are an authorized representative, or, if you have no employer, you as an individual&nbsp;("you" or "Licensee"), and NXP B.V. ("NXP").&nbsp; It concerns your rights to use the software provided to you in binary or source code form and any accompanying written materials (the "Licensed Software"). The Licensed Software may include any updates or error corrections or documentation relating to the Licensed Software provided to you by NXP under this Agreement. In consideration for NXP allowing you to access the Licensed Software, you are agreeing to be bound by the terms of this Agreement. If you do not agree to all of the terms of this Agreement, do not download or install the Licensed Software. If you change your mind later, stop using the Licensed Software and delete all copies of the Licensed Software in your possession or control. Any copies of the Licensed Software that you have already distributed, where permitted, and do not destroy will continue to be governed by this Agreement. Your prior use will also continue to be governed by this Agreement.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">DEFINITIONS</span></p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">1.1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Affiliate" means, with respect to a party, any corporation or other legal entity that now or hereafter Controls, is Controlled by or is under common Control with such party; where "Control" means the direct or indirect ownership of greater than fifty percent (50%) of the shares or similar interests entitled to vote for the election of directors or other persons performing similar functions. An entity is considered an Affiliate only so long as such Control exists.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">1.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Authorized System" means either (<span class="SpellE">i</span>) Licensee's hardware product which incorporates an NXP Product or (ii) Licensee's software program which is used exclusively in connection with an NXP Product and with which the Licensed Software will be integrated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">1.3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Derivative Work" means a work based upon one or more pre-existing works.&nbsp;&nbsp;A work consisting of editorial revisions, annotations, elaborations, or other modifications which, as a whole, represent an original work of authorship, is a Derivative Work.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">1.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Intellectual Property Rights" means any and all rights under statute, common law or equity in and&nbsp;under copyrights, trade secrets, and patents (including utility models), and analogous rights throughout the world,&nbsp;including any applications for and the right to apply for, any of the foregoing.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">1.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"NXP Product" means&nbsp;a hardware product (<span class="GramE">e.g.</span>&nbsp;a microprocessor, microcontroller, sensor or digital signal processor) supplied directly or indirectly from NXP or an NXP Affiliate, unless there is a product specified in the Software Content Register, in which case this definition is limited to such product.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">1.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Software Content Register" means the documentation which may accompany the Licensed Software which identifies the contents of the Licensed Software, including but not limited to identification of any&nbsp;<span class="GramE">Third Party</span>&nbsp;Software, if any, and may also contain other related information as whether the license in 2.3 is applicable.&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">1.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Third Party Software" means, any software included in the Licensed Software that is not&nbsp;<a name="_Hlk520188745"></a>NXP proprietary software, and is not&nbsp;<span class="GramE">open source</span>&nbsp;software, and to which different license terms may apply.&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">LICENSE GRANT</span>.&nbsp;&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10.2pt; line-height: 16.1333px; font-size: 11pt; font-family: Calibri, sans-serif;">2.1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you are not expressly granted the distribution license in Section 2.3 in the Software Content Register, then you are only granted the rights in Section 2.2 and not in 2.3.&nbsp;&nbsp;If you are expressly granted the distribution license in Section 2.3 in the Software Content Register, then you are granted the rights in both Section 2.2 and 2.3.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">2.2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Standard License.&nbsp;&nbsp;Subject to the terms and conditions of this Agreement, NXP grants you a worldwide, personal, non-transferable, non-exclusive, non-sublicensable license,&nbsp;<a name="_Hlk520197097"></a>solely for the development of an Authorized System:</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt 1in; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.5in;">(a)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to use and reproduce the Licensed Software (and its Derivative Works prepared under the license in Section 2.2(b))&nbsp;solely in combination with a NXP Product; and</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt 1in; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.5in;">(b)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for Licensed Software provided to you in source code form (human readable), to prepare Derivative Works of the Licensed Software&nbsp;solely for use in combination with a NXP Product.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">You may not distribute or sublicense the Licensed Software to others under the license granted in this Section 2.2.&nbsp;&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10.2pt; line-height: 16.1333px; font-size: 11pt; font-family: Calibri, sans-serif;">2.3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Additional Distribution License.&nbsp;&nbsp;If expressly authorized in the Software Content Register, subject to the terms and conditions of this Agreement,&nbsp;NXP grants you a worldwide, personal, non-transferable, non-exclusive, non-sublicensable license&nbsp;solely&nbsp;in connection with your manufacturing and distribution of an Authorized System:</p>
+<p class="MsoNormal" style="margin: 0in 0in 0.5pt 1in; line-height: 16.1333px; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.5in;"><span style="border: 1pt none windowtext; padding: 0in;">(a)<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>to manufacture (or have manufactured), distribute, and market the Licensed Software (and its Derivative Works prepared under the license in 2.2(b)) in object code (machine readable format) only as part of, or embedded within, Authorized Systems and not on a standalone basis&nbsp;solely for use in combination with a NXP Product.&nbsp;&nbsp;Notwithstanding the foregoing, those files marked as .h files ("Header files") may be distributed in source or object code form, but only as part of, or embedded within Authorized Systems; and&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 12pt 1in; line-height: 16.1333px; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.5in;"><span style="border: 1pt none windowtext; padding: 0in;">(b)<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>to copy and distribute as needed, solely in connection with an Authorized System&nbsp;and for use in combination with a NXP Product, non-confidential NXP information provided as part of the Licensed Software for the purpose of maintaining and supporting Authorized Systems with which the Licensed Software is integrated.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">2.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Separate license grants to Third Party Software, or other terms applicable to the Licensed Software if different from those granted in this Section 2, are contained in Appendix A. The Licensed Software may be accompanied by a Software Content Register which will identify that portion of the Licensed Software, if any, that is subject to the different terms in Appendix A.&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">2.5.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You may use subcontractors on your premises to exercise your rights under Section 2.2 and Section 2.3, if any, so long as you have an agreement in place with the subcontractor containing confidentiality restrictions no less stringent than those contained in this Agreement. You will remain liable for your subcontractors' adherence to the terms of this Agreement and for any and all acts and omissions of such subcontractors with respect to this Agreement and the Licensed Software.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">LICENSE&nbsp;LIMITATIONS AND RESTRICTIONS</span>.&nbsp;&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">3.1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The licenses granted above in Section 2 only extend to NXP Intellectual Property Rights that would be infringed by the unmodified Licensed Software prior to your preparation of any Derivative Work.&nbsp;&nbsp;&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">3.2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The Licensed Software is licensed to you, not sold. Title to Licensed Software delivered hereunder remains vested in NXP or NXP's licensor and cannot be assigned or transferred. You are expressly forbidden from selling or otherwise distributing the Licensed Software, or any portion thereof, except as expressly permitted herein. This Agreement does not grant to you any implied rights under any NXP or&nbsp;<span class="GramE">third party</span>&nbsp;Intellectual Property Rights.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">3.3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You may not translate, reverse engineer, decompile, or disassemble the Licensed Software except to the extent applicable law specifically prohibits such restriction. You must prohibit your subcontractors or customers (if distribution is permitted) from translating, reverse engineering, decompiling, or disassembling the Licensed Software except to the extent applicable law specifically prohibits such restriction.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">3.4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You must reproduce any and all of NXP's (or its third-party licensor's) copyright notices and other proprietary legends on copies of Licensed Software.&nbsp;&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">3.5.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you distribute the Licensed Software to the United States Government, then the Licensed Software is "restricted computer software" and is subject to FAR 52.227-19.&nbsp;&nbsp;&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">3.6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You grant to NXP a non-exclusive, non-transferable, irrevocable, perpetual, worldwide, royalty-free, sub-licensable license under your Intellectual Property Rights to use without restriction and for any purpose any suggestion, comment or other feedback related to the Licensed Software (including, but not limited to, error corrections and bug fixes).</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">3.7.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You will not take or fail to take any action that could subject the Licensed Software to an Excluded License. An Excluded License means any license that requires, as a condition of use, modification or distribution of software subject to the Excluded License, that such software or other software combined and/or distributed with the software be (<span class="SpellE">i</span>) disclosed or distributed in source code form; (ii) licensed for the purpose of making Derivative Works; or (iii) redistributable at no charge.&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">3.8.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You may not publish or distribute reports associated with the use of the Licensed Software to anyone other than NXP.&nbsp;&nbsp;You may advise NXP of any results obtained from your use of the Licensed Software, including any problems or suggested improvements thereof, and NXP retains the right to use such results and related information in any manner it deems appropriate.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">4<a name="_Hlk522796075"></a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a name="_Hlk522799572"></a><a name="_Hlk522800824"></a><a name="_Hlk522799883"></a><a name="_Hlk522795826"></a><span style="text-decoration: underline;">OPEN SOURCE</span>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="GramE">Open source</span>&nbsp;software included in the Licensed Software is not licensed under the terms of this Agreement but is instead licensed under the terms of the applicable open source license(s), such as the BSD License, Apache License or the GNU Lesser General Public License. Your use of the&nbsp;<span class="GramE">open source</span>&nbsp;software is subject to the terms of each applicable license. You must agree to the terms of each applicable license, or you cannot use the&nbsp;<span class="GramE">open source</span>&nbsp;software.&nbsp;&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">5.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">INTELLECTUAL PROPERTY RIGHTS</span>. &nbsp;&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">Upon request, you must provide NXP the source code of any derivative of the Licensed Software.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">Unless prohibited by law, the following paragraph shall apply.&nbsp;&nbsp;Your modifications to the Licensed Software, and all intellectual property rights associated with, and title thereto, will be the property of NXP.&nbsp;&nbsp;You agree to assign all, and hereby do assign all rights, title, and interest to any such modifications to the Licensed Software to NXP and agree to provide all assistance reasonably requested by NXP to establish, preserve or enforce such right.&nbsp;&nbsp;Further, you agree to waive all moral rights relating to your modifications to the Licensed Software, including, without limitation, all rights of identification of authorship and all rights of approval, restriction, or limitation on use or subsequent modification.&nbsp;&nbsp;Notwithstanding the foregoing, you will have the license rights granted in Section 2 hereto to any such modifications made by you or your licensees.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">Otherwise, you agree to grant an irrevocable, worldwide, and perpetual license to NXP to make, have made, use, sell, offer to sell, import, commercialize, sublicense and reproduce your modifications or derivative works to the Licensed Software without any payment to Licensee. You agree to provide all assistance reasonably requested by NXP to establish, preserve or enforce such right.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">ESSENTIAL PATENTS</span>.&nbsp; &nbsp;&nbsp;<a name="_Hlk522804634"></a>NXP has no obligation to identify or obtain any license to any Intellectual Property Right of a third-party that may be necessary for use in connection with technology that is incorporated into the Authorized System (whether or not as part of the Licensed Software).</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">7.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">TERM AND TERMINATION</span>.&nbsp;&nbsp; This Agreement will remain in effect unless terminated as provided in this Section.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">7.1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You may terminate this Agreement immediately upon written notice to NXP at the address provided below.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">7.2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Either party may terminate this Agreement if the other party is in default of any of the terms and conditions of this Agreement, and termination is effective if the defaulting party fails to correct such default within 30 days after written notice thereof by the non-defaulting party to the defaulting party at the address below.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">7.3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Notwithstanding the foregoing, NXP may terminate this Agreement immediately upon written notice if you: breach any of your confidentiality obligations or the license restrictions under this Agreement; &nbsp;become bankrupt, insolvent, or file a petition for bankruptcy or insolvency; make an assignment for the benefit of its creditors; enter proceedings for winding up or dissolution; are dissolved; or are nationalized or become subject to the expropriation of all or substantially all of your business or assets.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">7.4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Upon termination of this Agreement, all licenses granted under Section 2 will expire.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">7.5.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; After termination of this Agreement by either party&nbsp;&nbsp;&nbsp;you will destroy all parts of Licensed Software and its Derivative Works (if any) and will provide to NXP a statement certifying the same.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">7.6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Notwithstanding the termination of this Agreement for any reason, the terms of Sections 1 and 3 through 24 will survive.&nbsp;&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">8. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">SUPPORT</span>.&nbsp; NXP is not obligated to provide any support, upgrades or new releases of the Licensed Software under this Agreement. If you wish, you may contact NXP and report problems and provide suggestions regarding the Licensed Software. NXP has no obligation to respond to such a problem report or suggestion. NXP may make changes to the Licensed Software at any time, without any obligation to notify or provide updated versions of the Licensed Software to you.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">9.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">NO WARRANTY</span>.&nbsp; To the maximum extent permitted by law, NXP expressly disclaims any warranty for the Licensed Software. The Licensed Software is provided "AS IS", without warranty of any kind, either express or implied, including without limitation the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. You assume the entire risk arising out of the use or performance of the licensed software, or any systems you design using the licensed software (if any).</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">10. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">INDEMNITY</span>. You agree to fully defend and indemnify NXP from all claims, liabilities, and costs (including reasonable attorney's fees) related to (1) your use (including your subcontractor's or&nbsp;<span class="SpellE">distributee's</span>&nbsp;use, if permitted) of the Licensed Software or (2) your violation of the terms and conditions of this Agreement.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">11. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">LIMITATION OF LIABILITY</span>.&nbsp; EXCLUDING LIABILITY FOR A BREACH OF SECTION&nbsp;2 (LICENSE GRANTS), SECTION 3 (LICENSE&nbsp;LIMITATIONS AND RESTRICTIONS), SECTION 16 (CONFIDENTIAL INFORMATION), OR CLAIMS UNDER SECTION 10 (INDEMNITY), IN NO EVENT WILL EITHER PARTY BE LIABLE, WHETHER IN CONTRACT, TORT, OR OTHERWISE, FOR ANY INCIDENTAL, SPECIAL, INDIRECT, CONSEQUENTIAL OR PUNITIVE DAMAGES, INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR ANY LOSS OF USE, LOSS OF TIME, INCONVENIENCE, COMMERCIAL LOSS, OR LOST PROFITS, SAVINGS, OR REVENUES, TO THE FULL EXTENT SUCH MAY BE DISCLAIMED BY LAW. NXP'S TOTAL LIABILITY FOR ALL COSTS, DAMAGES, CLAIMS, OR LOSSES WHATSOEVER ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT OR PRODUCT(S) SUPPLIED UNDER THIS AGREEMENT IS LIMITED TO THE AGGREGATE AMOUNT PAID BY YOU TO NXP IN CONNECTION WITH THE LICENSED SOFTWARE PROVIDED UNDER THIS AGREEMENT TO WHICH LOSSES OR DAMAGES ARE CLAIMED.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">12. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">EXPORT COMPLIANCE</span>. Each party shall comply with all applicable export and import control laws and regulations including but not limited to the US Export Administration Regulation (including restrictions on certain military end uses and military end users as specified in Section 15 C.F.R. &sect; 744.21 and prohibited party lists issued by other federal governments), Catch-all regulations and all national and international embargoes. Each party further agrees that it will not knowingly transfer, divert, export or re-export, directly or indirectly, any product, software, including software source code, or technology restricted by such regulations or by other applicable national regulations, received from the other party under this Agreement, or any direct product of such software or technical data to any person, firm, entity, country or destination to which such transfer, diversion, export or re-export is restricted or prohibited, without obtaining prior written authorization from the applicable competent government authorities to the extent required by those laws.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">13.&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">GOVERNMENT CONTRACT COMPLIANCE</span></p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">13.1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you sell Authorized Systems directly to any government or public entity, including U.S., state, local, foreign or international governments or public entities, or indirectly via a prime contractor or subcontractor of such governments or entities, NXP makes no representations, certifications, or warranties whatsoever about compliance with government or public entity acquisition statutes or regulations, including, without limitation, statutes or regulations that may relate to pricing, quality, origin or content.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">13.2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The Licensed Software has been developed at private expense and is a "Commercial Item" as defined in 48 C.F.R. Section 2.101, consisting of "Commercial Computer Software", and/or "Commercial Computer Software Documentation," as such terms are used in 48 C.F.R. Section 12.212 (or 48 C.F.R. Section 227.7202, as applicable) and may only be licensed to or shared with U.S. Government end users in object code form as part of, or embedded within, Authorized Systems. Any agreement pursuant to which you share the Licensed Software will include a provision that reiterates the limitations of this document and requires all sub-agreements to similarly contain such limitations.&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">14. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">CRITICAL APPLICATIONS</span>.&nbsp;&nbsp;<a name="_Hlk522804770"></a>In some cases, NXP may promote certain software for use in the development of, or for incorporation into, products or services (a) used in applications requiring fail-safe performance or (b) in which failure could lead to death, personal injury, or severe physical or environmental damage (these products and services are referred to as "Critical Applications"). NXP's goal is to educate customers so that they can design their own end-product solutions to meet applicable functional safety standards and requirements. Licensee makes the ultimate design decisions regarding its products and is solely responsible for compliance with all legal, regulatory, safety, and security related requirements concerning its products, regardless of any information or support that may be provided by NXP. As such, Licensee assumes all risk related to use of the Licensed Software in Critical Applications and NXP SHALL NOT BE LIABLE FOR ANY SUCH USE IN CRITICAL APPLICATIONS BY LICENSEE. Accordingly, Licensee will indemnify and hold NXP harmless from any claims, liabilities, damages and associated costs and expenses (including attorneys' fees) that NXP may incur related to Licensee&rsquo;s incorporation of the Licensed Software in a Critical Application.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">15. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">CHOICE OF LAW; VENUE.</span>&nbsp;&nbsp;<a name="_Hlk522800784"></a><a name="_Hlk522793564"></a>This Agreement will be governed by, construed, and enforced in accordance with the laws of The Netherlands, without regard to conflicts of laws principles, will apply to all matters relating to this Agreement or the Licensed Software, and you agree that any litigation will be subject to the exclusive jurisdiction of the courts of Amsterdam, The Netherlands. The United Nations Convention on Contracts for the International Sale of Goods will not apply to this document.&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">16. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">CONFIDENTIAL INFORMATION</span>.&nbsp;&nbsp;<a name="_Hlk522804824"></a>Subject to the license grants and restrictions contained herein, you must treat the Licensed Software as confidential information and you agree to retain the Licensed Software in confidence perpetually. You may not disclose any part of the Licensed Software to anyone other than&nbsp;<span class="SpellE">distributees</span>&nbsp;in accordance with Section 2.3 and employees, or subcontractors in accordance with Section 2.5, who have a need to know of the Licensed Software and who have executed written agreements obligating them to protect such Licensed Software to at least the same degree of confidentiality as in this Agreement. You agree to use the same degree of care, but no less than a reasonable degree of care, with the Licensed Software as you do with your own confidential information. You may disclose Licensed Software to the extent required by a court or under operation of law or order provided that you notify NXP of such requirement prior to disclosure, which you only disclose the minimum of the required information, and that you allow NXP the opportunity to object to such court or other legal body requiring such disclosure.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">17. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">TRADEMARKS</span>.&nbsp; You are not authorized to use any NXP trademarks, brand names, or logos.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">18. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">ENTIRE AGREEMENT</span>.&nbsp; This Agreement constitutes the entire agreement between you and NXP regarding the subject matter of this Agreement, and supersedes all prior communications, negotiations, understandings, agreements or representations, either written or oral, if any. This Agreement may only be amended in written form, signed by you and NXP.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">19. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">SEVERABILITY</span>.&nbsp; If any provision of this Agreement is held for any reason to be invalid or unenforceable, then the remaining provisions of this Agreement will be unimpaired and, unless a modification or replacement of the invalid or unenforceable provision is further held to deprive you or NXP of a material benefit, in which case the Agreement will immediately terminate, the invalid or unenforceable provision will be replaced with a provision that is valid and enforceable and that comes closest to the intention underlying the invalid or unenforceable provision.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">20. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">NO WAIVER</span>.&nbsp; The waiver by NXP of any breach of any provision of this Agreement will not operate or be construed as a waiver of any other or a subsequent breach of the same or a different provision.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">21. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">AUDIT</span>.&nbsp; You will keep full, clear and accurate records with respect to your compliance with the limited license rights granted under this Agreement for three years following expiration or termination of this Agreement. NXP will have the right, either itself or through an independent certified public accountant to examine and audit, at NXP<a name="OLE_LINK3"></a><a name="OLE_LINK4"></a>'s expense, not more than once a year, and during normal business hours, all such records that may bear upon your compliance with the limited license rights granted above. You must make prompt adjustment to compensate for any errors and/or omissions disclosed by such examination or audit.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">22. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">NOTICES</span>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; All notices and&nbsp;communications under this Agreement will be made in writing, and will be effective when received at the following addresses:&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif; text-align: justify; text-indent: 0.5in;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NXP:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size: 12pt;">NXP B.V.</span></p>
+<p class="MsoNormal" style="margin: 0in; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif; text-align: justify; text-indent: 0.5in;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;High Tech Campus 60</p>
+<p class="MsoNormal" style="margin: 0in; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif; text-align: justify; text-indent: 0.5in;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5656 AG Eindhoven</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif; text-align: justify; text-indent: 0.5in;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The Netherlands</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: 56.05pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ATTN: Legal Department</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The address provided at registration will be used.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">23. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">RELATIONSHIP OF THE PARTIES</span>.&nbsp;&nbsp;&nbsp;&nbsp; The parties are independent contractors. Nothing in this Agreement will be construed to create any partnership, joint venture, or similar relationship. Neither party is authorized to bind the other to any obligations with third parties.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">24. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">SUCCESSION AND ASSIGNMENT</span>.&nbsp;&nbsp; This Agreement will be binding upon and inure to the benefit of the parties and their permitted successors and assigns.&nbsp; You may not assign this Agreement, or any part of this Agreement, without the prior written approval of NXP, which approval will not be unreasonably withheld or delayed. NXP may assign this Agreement, or any part of this Agreement, in its sole discretion.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;"><a name="_Hlk53659524"></a><a name="OLE_LINK9"></a>25.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="text-decoration: underline;">PRIVACY</span>. By agreeing to this Agreement and/or utilizing the Licensed Software, Licensee consents to use of certain personal information, including but not limited to name, email address, and location, for the purpose of NXP&rsquo;s internal analysis regarding future software offerings.&nbsp;&nbsp;NXP&rsquo;s complete Privacy Statement can be found at:&nbsp;<a style="color: blue;" href="https://www.nxp.com/company/our-company/about-nxp/privacy-statement:PRIVACYPRACTICES">https://www.nxp.com/company/our-company/about-nxp/privacy-statement:PRIVACYPRACTICES</a>.</p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13.5pt; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: 12pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10pt; font-family: 'Times New Roman', serif;">&nbsp;</span></p>
+<p class="MsoNormal" style="margin: 0in 0in 14.2pt; line-height: 11.25pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10pt;">&nbsp;</span></p>
+<p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 11.25pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10pt;">&nbsp;</span></p>
+<p><span style="font-size: 10pt; line-height: 14px; font-family: Calibri, sans-serif;">&nbsp;</span></p>
+<p class="MsoNormal" style="margin: 0in 0in 8pt; line-height: 15.4px; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10pt; line-height: 14px;">&nbsp;</span></p>
+<p class="MsoNormal" style="margin: 0in 0in 14.2pt; line-height: 11.25pt; font-size: 11pt; font-family: Calibri, sans-serif; text-align: center;" align="center">APPENDIX A</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="text-decoration: underline;">Other License Grants and Restrictions:</span></p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;"><strong>&nbsp;</strong></p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;"><strong>The Licensed Software may include some or all of the following software, which is either 1) Third Party Software or 2) NXP proprietary software subject to different terms than those in the Agreement. If the Software Content Register that accompanies the Licensed Software identifies any of the following&nbsp;<span class="GramE">Third Party</span>&nbsp;Software or specific components of the NXP proprietary software, the following terms apply to the extent they deviate from the terms in the Agreement:</strong></p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;"><a name="OLE_LINK7"></a><a name="OLE_LINK8"></a>Amazon: Use of the Amazon software constitutes your acceptance of the terms of the Amazon Program Materials License Agreement (including the AVS Component Schedule, if applicable), located at&nbsp;<a style="color: blue;" href="https://developer.amazon.com/support/legal/pml">https://developer.amazon.com/support/legal/pml</a>.&nbsp;&nbsp;All Amazon software is hereby designated "Amazon confidential".&nbsp;&nbsp;<span class="SpellE"><span lang="DE">With</span></span><span lang="DE">&nbsp;<span class="SpellE">the</span>&nbsp;<span class="SpellE">exception</span>&nbsp;<span class="SpellE">of</span>&nbsp;<span class="SpellE">the</span>&nbsp;<span class="SpellE">binary</span>&nbsp;<span class="SpellE">library</span>&nbsp;<span class="SpellE">of</span>&nbsp;<span class="SpellE">the</span>&nbsp;Amazon Wake Word Engine&nbsp;<span class="SpellE">for</span>&nbsp;&ldquo;Alexa&rdquo;, all Amazon&nbsp;<span class="SpellE">software</span>&nbsp;<span class="SpellE">is</span>&nbsp;also&nbsp;<span class="SpellE">hereby</span>&nbsp;<span class="SpellE">designated</span>&nbsp;<span class="SpellE">as</span>&nbsp;&ldquo;<span class="SpellE">Restricted</span>&nbsp;<span class="SpellE">Program</span>&nbsp;Materials&rdquo;.<em>&nbsp;</em></span>Amazon is a third-party beneficiary to this Agreement with respect to the Amazon software.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">A<a name="OLE_LINK10"></a><a name="OLE_LINK11"></a>mazon Web Services, Inc.: AWS is an intended third-party beneficiary to this Agreement with respect to the Greengrass software. If you have an account with AWS that is not in good standing, you may not download, install, use or distribute the Greengrass software. You will comply with all instructions and requirements in any integration documents, guidelines, or other documentation AWS provides. The license to the Greengrass software will immediately terminate without notice if you (a) fail to comply with this Agreement or any other agreement with AWS, (b) fail to make timely payment for any AWS service, (c) fail to implement AWS updates, or (d) bring any action for intellectual property infringement against AWS or any AWS customer utilizing AWS services.&nbsp;&nbsp;Any dispute or claim relating to your use of the Greengrass software will be resolved by binding arbitration, rather than in court, except that you may assert claims in small claims court if your claims qualify.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Amphion Semiconductor Ltd.: Distribution of Amphion software must be a part of, or embedded within, Authorized Systems that include an Amphion Video Decoder.&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;"><a name="OLE_LINK5"></a><a name="OLE_LINK6"></a><span class="SpellE">Aquantia</span>&nbsp;Corp.: You may use&nbsp;<span class="SpellE">Aquantia's</span>&nbsp;API binaries solely to flash the API software to an NXP Product which mates with an&nbsp;<span class="SpellE">Aquantia</span>&nbsp;device.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Atheros: Use of Atheros software is limited to evaluation and demonstration only.&nbsp;&nbsp;Permitted distributions must be similarly limited. Further rights must be obtained directly from Atheros.&nbsp;&nbsp;&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">ATI (AMD): Distribution of ATI software must be a part of, or embedded within, Authorized Systems that include&nbsp;<span class="GramE">a</span>&nbsp;ATI graphics processor core.&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Broadcom Corporation: Your use of Broadcom Corporation software is restricted to Authorized Systems that incorporate a compatible integrated circuit device manufactured or sold by Broadcom.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Cadence Design Systems: Use of Cadence audio codec software is limited to distribution only of one copy per single NXP Product. The license granted herein to the Cadence Design Systems HiFi&nbsp;<span class="SpellE">aacPlus</span>&nbsp;Audio Decoder software does not include a license to the AAC family of technologies which you or your customer may need to obtain. Configuration tool outputs may only be distributed by licensees of the relevant Cadence SDK and distribution is limited to distribution of one copy embedded in a single NXP Product.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Cirque Corporation: Use of Cirque Corporation technology is limited to evaluation, demonstration, or certification testing only. Permitted distributions must be similarly limited. Further rights, including but not limited to ANY commercial distribution rights, must be obtained directly from Cirque Corporation.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Coding Technologies (Dolby Labs): Use of CTS software is limited to evaluation and demonstration only.&nbsp;&nbsp;Permitted distributions must be similarly limited. Further rights must be obtained from Dolby Laboratories.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">CSR: Use of Cambridge Silicon Radio, Inc. ("CSR") software is limited to evaluation and demonstration only.&nbsp;&nbsp;Permitted distributions must be similarly limited.&nbsp;&nbsp;Further rights must be obtained directly from CSR.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Crank: Use of Crank Software Inc. software is limited to evaluation and demonstration only. Permitted distributions must be similarly limited. Further rights must be obtained directly from Crank Software Inc.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Cypress Semiconductor Corporation: WWD RTOS source code may only be used in accordance with the Cypress IOT Community License Agreement&nbsp;<a name="OLE_LINK12"></a><a name="OLE_LINK13"></a>obtained directly from Cypress Semiconductor Corporation.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB">Embedded Systems Academy GmbH (<span class="SpellE">EmSA</span>):&nbsp;&nbsp;Any use of Micro&nbsp;<span class="SpellE">CANopen</span>&nbsp;Plus is subject to the acceptance of the license conditions described in the LICENSE.INFO file distributed with all example projects and in the documentation and the additional clause described below.</span></p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB">Clause 1: Micro&nbsp;<span class="SpellE">CANopen</span>&nbsp;Plus may not be used for any competitive or comparative purpose, including the publication of any form of run time or compile time metric, without the express permission of&nbsp;<span class="SpellE">EmSA</span>.</span></p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Future Technology Devices International Ltd.: Future Technology Devices International software must be used consistent with the terms found here: http://www.ftdichip.com/Drivers/FTDriverLicenceTerms.htm</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Global Locate (Broadcom Corporation): Use of Global Locate, Inc. software is limited to evaluation and demonstration only.&nbsp;&nbsp;Permitted distributions must be similarly limited.&nbsp;&nbsp;Further rights must be obtained from Global Locate.&nbsp;&nbsp;&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Microsoft: Except for Microsoft PlayReady software, if the Licensed Software includes software owned by Microsoft Corporation ("Microsoft"), it is subject to the terms of your license with Microsoft (the "Microsoft Underlying Licensed Software") and as such, NXP grants no license to you, beyond evaluation and demonstration in connection with NXP processors, in the Microsoft Underlying Licensed Software.&nbsp;&nbsp;You must separately obtain rights beyond evaluation and demonstration in connection with the Microsoft Underlying Licensed Software from Microsoft. Microsoft does not provide support services for the components provided to you through this Agreement.&nbsp;&nbsp;If you have any questions or require technical assistance, please contact NXP.&nbsp;&nbsp;Microsoft Corporation is a&nbsp;<span class="GramE">third party</span>&nbsp;beneficiary to this Agreement with the right to enforce the terms of this Agreement.&nbsp;&nbsp;TO THE MAXIMUM EXTENT PERMITTED BY LAW, MICROSOFT AND ITS AFFILIATES DISCLAIM ANY WARRANTIES FOR THE MICROSOFT UNDERLYING LICENSED SOFTWARE.&nbsp;&nbsp;TO THE MAXIMUM EXTENT PERMITTED BY LAW, NEITHER MICROSOFT NOR ITS AFFILIATES WILL BE LIABLE, WHETHER IN CONTRACT, TORT, OR OTHERWISE, FOR ANY DIRECT, INCIDENTAL, SPECIAL, INDIRECT, CONSEQUENTIAL OR PUNITIVE DAMAGES, INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR ANY LOSS OF USE, LOSS OF TIME, INCONVENIENCE, COMMERCIAL LOSS, OR LOST PROFITS, SAVINGS, OR REVENUES, ARISING FROM THE FROM THE USE OF THE MICROSOFT UNDERLYING LICENSED SOFTWARE.&nbsp;&nbsp;With respect to the Microsoft PlayReady software, you will have the license rights granted in Section 2, provided that you may not use the Microsoft PlayReady software unless you have entered into a Microsoft PlayReady Master Agreement and license directly with Microsoft.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="SpellE">MindTree</span>: Notwithstanding the terms contained in Section 2.3 (a), if the Licensed Software includes proprietary software of&nbsp;<span class="SpellE">MindTree</span>&nbsp;in source code format, Licensee may make modifications and create derivative works only to the extent necessary for debugging of the Licensed Software.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">MM SOLUTIONS AD:&nbsp;&nbsp;Use of MM SOLUTIONS AEC (Auto Exposure Control) and AWB (Auto White Balance) software is limited to demonstration, testing, and evaluation only.&nbsp;&nbsp;In no event may Licensee distribute or sublicense the MM SOLUTIONS software. Further rights must be obtained directly from MM SOLUTIONS.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">MPEG LA: Use of MPEG LA audio or video codec technology is limited to evaluation and demonstration only. Permitted distributions must be similarly limited. Further rights must be obtained directly from MPEG LA.&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">MQX RTOS Code: MQX RTOS source code may not be re-distributed by any NXP Licensee under any circumstance, even by a signed written amendment to this Agreement.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">NXP Wireless Charging Library: License to the Software is limited to use in inductive coupling or wireless charging applications</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Opus: Use of Opus software must be consistent with the terms of the Opus license which can be found at: http://www.opus-codec.org/license/</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Oracle JRE (Java): The Oracle JRE must be used consistent with terms found here: http://java.com/license</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">P&amp;E Micro: P&amp;E Software must be used consistent with the terms found here: http://www.pemicro.com/licenses/gdbserver/license_gdb.pdf</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Pro Design Electronic: Licensee may not modify, create derivative works based on, or copy the Pro Design software, documentation, hardware execution key or the accompanying materials.&nbsp;&nbsp;Licensee shall not use Pro Design's or any of its licensors names, logos or trademarks to market the Authorized System.&nbsp;&nbsp;Only NXP customers and distributors are permitted to further redistribute the Pro Design software and only as part of an Authorized System which contains the Pro Design software.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Qualcomm Atheros, Inc.: Notwithstanding anything in this Agreement, Qualcomm Atheros, Inc. Wi-Fi software must be used strictly in accordance with the Qualcomm Atheros, Inc. Technology License Agreement that accompanies such software.&nbsp;&nbsp;Any other use is expressly prohibited.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Real Networks -&nbsp;<span class="SpellE">GStreamer</span>&nbsp;Optimized Real Format Client Code implementation or&nbsp;<span class="SpellE">OpenMax</span>&nbsp;Optimized Real Format Client Code: Use of the&nbsp;<span class="SpellE">GStreamer</span>&nbsp;Optimized Real Format Client Code, or&nbsp;<span class="SpellE">OpenMax</span>&nbsp;Optimized Real Format Client code is restricted to applications in the automotive market.&nbsp;&nbsp;Licensee must be a final manufacturer in good standing with a current license with Real Networks for the commercial use and distribution of products containing the&nbsp;<span class="SpellE">GStreamer</span>&nbsp;Optimized Real Format Client Code implementation or&nbsp;<span class="SpellE">OpenMax</span>&nbsp;Optimized Real Format Client Code</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="SpellE">RivieraWaves</span>&nbsp;SAS (a member of the CEVA, Inc. family of companies): You may not use the&nbsp;<span class="SpellE">RivieraWaves</span>&nbsp;intellectual property licensed under this Agreement if you develop, market, and/or license products similar to such&nbsp;<span class="SpellE">RivieraWaves</span>&nbsp;intellectual property.&nbsp;&nbsp;Such use constitutes a breach of this Agreement.&nbsp;&nbsp;Any such use rights must be obtained directly from&nbsp;<span class="SpellE">RivieraWaves</span>.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">SanDisk Corporation: If the Licensed Software includes software developed by SanDisk Corporation ("SanDisk"), you must separately obtain the rights to reproduce and distribute this software in source code form from SanDisk.&nbsp;&nbsp;Please follow these easy steps to obtain the license and software:&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">(1) Contact your local SanDisk sales representative to obtain the SanDisk License Agreement.&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">(2) Sign the license agreement.&nbsp;&nbsp;Fax the signed agreement to SanDisk USA marketing department at 408-542-0403.&nbsp;&nbsp;The license will be valid when fully executed by SanDisk.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">(3) If you have specific questions, please send an email to sales@sandisk.com</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">You may only use the SanDisk Corporation Licensed Software on products compatible with a SanDisk Secure Digital Card.&nbsp;&nbsp;You may not use the SanDisk Corporation Licensed Software on any memory device product.&nbsp;&nbsp;SanDisk retains all rights to any modifications or derivative works to the SanDisk Corporation Licensed Software that you may create.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">SEGGER Microcontroller<a name="OLE_LINK1"></a><a name="OLE_LINK2"></a>&nbsp;-&nbsp;<span class="SpellE">emWin</span>&nbsp;Software: Your use of SEGGER&nbsp;<span class="SpellE">emWin</span>&nbsp;software and components is restricted for development of NXP ARM7, ARM9, Cortex-M0, Cortex-M3, Cortex-M4, Cortex-M33, Cortex-M7, and Cortex-A7 based products only.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">SEGGER Microcontroller - J-Link/J-Trace Software:&nbsp;<span class="SpellE">Segger</span>&nbsp;software must be used consistent with the terms found here: http://www.segger.com/jlink-software.html</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Synopsys/Target Compiler Technologies: Your use of the Synopsys/Target Compiler Technologies Licensed Software and related documentation is subject to the following:</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">(1) Duration of the license for the Licensed Software is limited to 12 months, unless otherwise specified in the license file.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">(2) The Licensed Software is usable by one user at a time on a single designated computer, unless otherwise agreed by Synopsys.&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">(3) Licensed Software and documentation are to be used only on a designated computer at the designated physical address provided by you on the APEX license form.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">(4) The Licensed Software is not sub-licensable.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">TARA Systems: Use of TARA Systems GUI technology Embedded Wizard is limited to evaluation and demonstration only. Permitted distributions must be similarly limited. Further rights must be obtained directly from TARA Systems.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">Texas Instruments: Your use of Texas Instruments Inc. WiLink8 Licensed Software is restricted to NXP SoC based systems that include a compatible connectivity device manufactured by TI.&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">TES Electronic Solutions Germany (TES):&nbsp;&nbsp;TES 3D Surround View software and associated data and documentation may only be used for evaluation purposes and for demonstration to third parties in integrated form on a board package containing an NXP S32V234 device. Licensee may not distribute or sublicense the TES software. Your license to the TES software may be terminated at any time upon notice.</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;">&nbsp;</p>
+<p>&nbsp;</p>
+<p class="MsoNormal" style="margin: 0in; line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="SpellE">Vivante</span>: Distribution of&nbsp;<span class="SpellE">Vivante</span>&nbsp;software must be a part of, or embedded within, Authorized Systems that include a&nbsp;<span class="SpellE">Viva<a name="_Hlk521923832"></a>nte</span>&nbsp;Graphics Processing Unit.&nbsp;</p> \ No newline at end of file
diff --git a/recipes-bsp/tezi-metadata/tezi-metadata_0.3.bb b/recipes-bsp/tezi-metadata/tezi-metadata_0.3.bb
index e951d58..50149f9 100644
--- a/recipes-bsp/tezi-metadata/tezi-metadata_0.3.bb
+++ b/recipes-bsp/tezi-metadata/tezi-metadata_0.3.bb
@@ -7,8 +7,15 @@ SRC_URI = " \
file://wrapup.sh \
file://toradexlinux.png \
file://marketing.tar;unpack=false \
+ file://LA_OPT_NXP_SW.html \
"
+# We want to always check the latest EULA file in image_type_tezi.bbclass
+# So we put LA_OPT_NXP_SW.html to sstate duplicate whitelist, this
+# ensures it could be deployed to ${DEPLOY_DIR_IMAGE} as a backup even
+# it's aleady existed.
+SSTATE_DUPWHITELIST_prepend = "${DEPLOY_DIR_IMAGE}/LA_OPT_NXP_SW.html "
+
inherit deploy nopackages
do_deploy () {
@@ -16,6 +23,7 @@ do_deploy () {
install -m 644 ${WORKDIR}/wrapup.sh ${DEPLOYDIR}
install -m 644 ${WORKDIR}/toradexlinux.png ${DEPLOYDIR}
install -m 644 ${WORKDIR}/marketing.tar ${DEPLOYDIR}
+ install -m 644 ${WORKDIR}/LA_OPT_NXP_SW.html ${DEPLOYDIR}
}
addtask deploy before do_build after do_install
diff --git a/recipes-bsp/u-boot/u-boot-distro-boot.bb b/recipes-bsp/u-boot/u-boot-distro-boot.bb
index 97fa88f..596d6df 100644
--- a/recipes-bsp/u-boot/u-boot-distro-boot.bb
+++ b/recipes-bsp/u-boot/u-boot-distro-boot.bb
@@ -9,8 +9,8 @@ SRC_URI = " \
file://boot.cmd.in \
"
-KERNEL_BOOTCMD ??= "${@'bootm' if d.getVar('KERNEL_IMAGETYPE') == 'fitImage' else 'bootz'}"
-KERNEL_BOOTCMD_aarch64 ?= "${@'bootm' if d.getVar('KERNEL_IMAGETYPE') == 'fitImage' else 'booti'}"
+KERNEL_BOOTCMD ??= "bootz"
+KERNEL_BOOTCMD_aarch64 ?= "booti"
inherit deploy
diff --git a/recipes-bsp/u-boot/u-boot-distro-boot/boot.cmd.in b/recipes-bsp/u-boot/u-boot-distro-boot/boot.cmd.in
index b3e15a5..65542ee 100644
--- a/recipes-bsp/u-boot/u-boot-distro-boot/boot.cmd.in
+++ b/recipes-bsp/u-boot/u-boot-distro-boot/boot.cmd.in
@@ -70,33 +70,39 @@ fi
if test -n ${setup}; then
run setup
else
- env set setupargs 'console=${console},${baudrate} console=tty1 consoleblank=0'
+ env set setupargs 'console=tty1 console=${console},${baudrate} consoleblank=0'
fi
-if test ${kernel_image} = "Image.gz"
-then
+if test -n ${kernel_comp_addr_r}; then
+ # use booti automatic decompression
env set kernel_addr_load ${loadaddr}
- env set bootcmd_unzip 'unzip ${kernel_addr_load} ${kernel_addr_r}'
-else
env set bootcmd_unzip ';'
- if test ${kernel_image} = "fitImage"
+else
+ if test ${kernel_image} = "Image.gz"
then
- env set kernel_addr_load ${ramdisk_addr_r}
+ env set kernel_addr_load ${loadaddr}
+ env set bootcmd_unzip 'unzip ${kernel_addr_load} ${kernel_addr_r}'
else
- env set kernel_addr_load ${kernel_addr_r}
+ env set bootcmd_unzip ';'
+ if test ${kernel_image} = "fitImage"
+ then
+ env set kernel_addr_load ${ramdisk_addr_r}
+ else
+ env set kernel_addr_load ${kernel_addr_r}
+ fi
fi
fi
# Set dynamic commands
env set set_bootcmd_kernel 'env set bootcmd_kernel "${load_cmd} \\${kernel_addr_load} \\${kernel_image}"'
-env set set_load_overlays_file 'env set load_overlays_file "${load_cmd} \\${loadaddr} \\${overlays_file}; env import -t \\${loadaddr} \\${filesize}"'
+env set set_load_overlays_file 'env set load_overlays_file "${load_cmd} \\${loadaddr} \\${overlays_file} && env import -t \\${loadaddr} \\${filesize}"'
if test ${kernel_image} = "fitImage"
then
env set fdt_high
env set fdt_resize true
env set set_bootcmd_dtb 'env set bootcmd_dtb "true"'
- env set set_apply_overlays 'env set apply_overlays "for overlay_file in \"\\${fdt_overlays}\"; do env set fitconf_fdt_overlays \"\\"\\${fitconf_fdt_overlays}#conf@\\${overlay_file}\\"\"; env set overlay_file; done; true"'
- env set bootcmd_boot 'echo "Bootargs: \${bootargs}" && @@KERNEL_BOOTCMD@@ ${ramdisk_addr_r}#conf@\${fdtfile}\${fitconf_fdt_overlays}'
+ env set set_apply_overlays 'env set apply_overlays "for overlay_file in \"\\${fdt_overlays}\"; do env set fitconf_fdt_overlays \"\\"\\${fitconf_fdt_overlays}#conf-\\${overlay_file}\\"\"; env set overlay_file; done; true"'
+ env set bootcmd_boot 'echo "Bootargs: \${bootargs}" && bootm ${ramdisk_addr_r}#conf-\${fdtfile}\${fitconf_fdt_overlays}'
else
env set fdt_resize 'fdt addr ${fdt_addr_r} && fdt resize 0x20000'
env set set_bootcmd_dtb 'env set bootcmd_dtb "echo Loading DeviceTree: \\${fdtfile}; ${load_cmd} \\${fdt_addr_r} \\${fdtfile}"'
@@ -106,10 +112,10 @@ fi
# Set static commands
if test ${root_devtype} = "nfs-dhcp"; then
- env set rootfsargs_set 'env set rootfsargs "root=/dev/nfs ip=dhcp nfsroot=${rootpath}"'
+ env set rootfsargs_set 'env set rootfsargs "root=/dev/nfs ip=dhcp"'
else
if test ${root_devtype} = "nfs-static"; then
- env set rootfsargs_set 'env set rootfsargs "root=/dev/nfs nfsroot=${serverip}:${rootpath}"'
+ env set rootfsargs_set 'env set rootfsargs "root=/dev/nfs nfsroot=${serverip}:/${rootpath}"'
else
env set uuid_set 'part uuid ${root_devtype} ${root_devnum}:${root_part} uuid'
env set rootfsargs_set 'run uuid_set && env set rootfsargs root=PARTUUID=${uuid} ro rootwait'
diff --git a/recipes-core/set-hostname/files/set-hostname.service b/recipes-core/set-hostname/files/set-hostname.service
index 306528b..9bd2a63 100644
--- a/recipes-core/set-hostname/files/set-hostname.service
+++ b/recipes-core/set-hostname/files/set-hostname.service
@@ -1,5 +1,5 @@
[Unit]
-ConditionPathExists=|!/etc/hostname
+ConditionFileNotEmpty=|!/etc/hostname
Wants=network-pre.target
Before=network-pre.target
After=local-fs.target
diff --git a/recipes-core/systemd/systemd-conf/journald.conf b/recipes-core/systemd/systemd-conf/journald.conf
new file mode 100644
index 0000000..ed945e1
--- /dev/null
+++ b/recipes-core/systemd/systemd-conf/journald.conf
@@ -0,0 +1,3 @@
+[Journal]
+ForwardToSyslog=yes
+RuntimeMaxUse=16M
diff --git a/recipes-core/systemd/systemd-conf_%.bbappend b/recipes-core/systemd/systemd-conf_%.bbappend
index 77ab59d..0c4792c 100644
--- a/recipes-core/systemd/systemd-conf_%.bbappend
+++ b/recipes-core/systemd/systemd-conf_%.bbappend
@@ -1 +1 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/systemd-conf:"
+FILESEXTRAPATHS_prepend_tdx := "${THISDIR}/systemd-conf:"
diff --git a/recipes-core/systemd/systemd_%.bbappend b/recipes-core/systemd/systemd_%.bbappend
index ea40849..ec30022 100644
--- a/recipes-core/systemd/systemd_%.bbappend
+++ b/recipes-core/systemd/systemd_%.bbappend
@@ -1,4 +1,4 @@
# This allows for udevd automounting with mounts accessible to all.
-do_configure_prepend () {
+do_configure_prepend_tdx () {
sed -i '/PrivateMounts=yes/d' ${S}/units/systemd-udevd.service.in
-} \ No newline at end of file
+}
diff --git a/recipes-core/udev/files/apalis-imx6/99-toradex.rules b/recipes-core/udev/files/apalis-imx6/99-toradex.rules
index f29daae..e65ad07 100644
--- a/recipes-core/udev/files/apalis-imx6/99-toradex.rules
+++ b/recipes-core/udev/files/apalis-imx6/99-toradex.rules
@@ -14,3 +14,7 @@ KERNEL=="mmcblk[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="2198000.usdhc", SYMLINK+=
KERNEL=="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="2198000.usdhc", SYMLINK+="emmc-boot%n"
KERNEL=="mmcblk[0-9]p[0-9]", ENV{DEVTYPE}=="partition", KERNELS=="2198000.usdhc", SYMLINK+="emmc-part%n"
SUBSYSTEM=="iio", KERNELS=="iio:device0", RUN+="/etc/udev/scripts/toradex-adc.sh"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]", KERNELS=="2194000.usdhc", SYMLINK+="apalis-sd4bit"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]p[0-9]*", KERNELS=="2194000.usdhc", SYMLINK+="apalis-sd4bit-part%n"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]", KERNELS=="2190000.usdhc", SYMLINK+="apalis-mmc8bit"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]p[0-9]*", KERNELS=="2190000.usdhc", SYMLINK+="apalis-mmc8bit-part%n"
diff --git a/recipes-core/udev/files/apalis-imx8/99-toradex.rules b/recipes-core/udev/files/apalis-imx8/99-toradex.rules
index 266acc3..cb0629b 100644
--- a/recipes-core/udev/files/apalis-imx8/99-toradex.rules
+++ b/recipes-core/udev/files/apalis-imx8/99-toradex.rules
@@ -12,3 +12,7 @@ KERNEL=="mmcblk[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="5b010000.mmc", SYMLINK+="
KERNEL=="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="5b010000.mmc", SYMLINK+="emmc-boot%n"
KERNEL=="mmcblk[0-9]p[0-9]", ENV{DEVTYPE}=="partition", KERNELS=="5b010000.mmc", SYMLINK+="emmc-part%n"
SUBSYSTEM=="iio", KERNELS=="iio:device0", RUN+="/etc/udev/scripts/toradex-adc.sh"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]", KERNELS=="5b030000.mmc", SYMLINK+="apalis-sd4bit"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]p[0-9]*", KERNELS=="5b030000.mmc", SYMLINK+="apalis-sd4bit-part%n"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]", KERNELS=="5b020000.mmc", SYMLINK+="apalis-mmc8bit"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]p[0-9]*", KERNELS=="5b020000.mmc", SYMLINK+="apalis-mmc8bit-part%n"
diff --git a/recipes-core/udev/files/apalis-imx8x/99-toradex.rules b/recipes-core/udev/files/apalis-imx8x/99-toradex.rules
deleted file mode 100644
index 20e4533..0000000
--- a/recipes-core/udev/files/apalis-imx8x/99-toradex.rules
+++ /dev/null
@@ -1,15 +0,0 @@
-ACTION=="add", KERNEL=="i2c-[0-9]*", ATTRS{name}=="5a810000.i2c", SYMLINK+="apalis-i2c1"
-ACTION=="add", KERNEL=="i2c-[0-9]*", ATTRS{name}=="56246000.i2c", SYMLINK+="apalis-i2c2"
-ACTION=="add", KERNEL=="i2c-[0-9]*", ATTRS{name}=="5a830000.i2c", SYMLINK+="apalis-i2c3"
-ACTION=="add", KERNEL=="i2c-[0-9]*", ATTRS{name}=="5a800000.i2c", SYMLINK+="apalis-i2c-on-module"
-ACTION=="add", ATTRS{iomem_base}=="0x5A070010", SYMLINK+="apalis-uart1"
-ACTION=="add", ATTRS{iomem_base}=="0x5A060010", SYMLINK+="apalis-uart2"
-ACTION=="add", ATTRS{iomem_base}=="0x5A080010", SYMLINK+="apalis-uart3"
-ACTION=="add", ATTRS{iomem_base}=="0x5A090010", SYMLINK+="apalis-uart4"
-ACTION=="add", KERNELS=="watchdog", SYMLINK+="apalis-watchdog"
-ACTION=="add", SUBSYSTEM=="spidev", KERNELS=="5a000000.spi", SYMLINK+="apalis-spi1-cs%n"
-ACTION=="add", SUBSYSTEM=="spidev", KERNELS=="5a020000.spi", SYMLINK+="apalis-spi2-cs%n"
-KERNEL=="mmcblk[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="5b010000.mmc", SYMLINK+="emmc"
-KERNEL=="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="5b010000.mmc", SYMLINK+="emmc-boot%n"
-KERNEL=="mmcblk[0-9]p[0-9]", ENV{DEVTYPE}=="partition", KERNELS=="5b010000.mmc", SYMLINK+="emmc-part%n"
-SUBSYSTEM=="iio", KERNELS=="iio:device0", RUN+="/etc/udev/scripts/toradex-adc.sh"
diff --git a/recipes-core/udev/files/apalis-imx8x/toradex-adc.sh b/recipes-core/udev/files/apalis-imx8x/toradex-adc.sh
deleted file mode 100755
index 43aae6d..0000000
--- a/recipes-core/udev/files/apalis-imx8x/toradex-adc.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env sh
-#
-# Called from udev. Compatible to apalis-imx8x.
-#
-# Create/remove symlinks to/from the files with raw ain data.
-
-# Map the ADC lines:
-# apalis-adc{0..3} -> ADMA.ADC.IN{0,1,4,5}
-
-if [ "$ACTION" = "add" ]; then
- ln -s "/sys$DEVPATH/in_voltage0_raw" /dev/apalis-adc0
- ln -s "/sys$DEVPATH/in_voltage1_raw" /dev/apalis-adc1
- ln -s "/sys$DEVPATH/in_voltage4_raw" /dev/apalis-adc2
- ln -s "/sys$DEVPATH/in_voltage5_raw" /dev/apalis-adc3
-elif [ "$ACTION" = "remove" ]; then
- rm -f /dev/apalis-adc0
- rm -f /dev/apalis-adc1
- rm -f /dev/apalis-adc2
- rm -f /dev/apalis-adc3
-fi
-
diff --git a/recipes-core/udev/files/apalis-tk1/99-toradex.rules b/recipes-core/udev/files/apalis-tk1/99-toradex.rules
index 68cd9a8..9f399d7 100644
--- a/recipes-core/udev/files/apalis-tk1/99-toradex.rules
+++ b/recipes-core/udev/files/apalis-tk1/99-toradex.rules
@@ -1,3 +1,7 @@
KERNEL=="mmcblk[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="700b0600.sdhci", SYMLINK+="emmc"
KERNEL=="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="700b0600.sdhci", SYMLINK+="emmc-boot%n"
KERNEL=="mmcblk[0-9]p[0-9]", ENV{DEVTYPE}=="partition", KERNELS=="700b0600.sdhci", SYMLINK+="emmc-part%n"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]", KERNELS=="700b0400.sdhci", SYMLINK+="apalis-sd4bit"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]p[0-9]*", KERNELS=="700b0400.sdhci", SYMLINK+="apalis-sd4bit-part%n"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]", KERNELS=="700b0000.sdhci", SYMLINK+="apalis-mmc8bit"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]p[0-9]*", KERNELS=="700b0000.sdhci", SYMLINK+="apalis-mmc8bit-part%n"
diff --git a/recipes-core/udev/files/colibri-imx6/99-toradex.rules b/recipes-core/udev/files/colibri-imx6/99-toradex.rules
index 59cf815..fb5ffaa 100644
--- a/recipes-core/udev/files/colibri-imx6/99-toradex.rules
+++ b/recipes-core/udev/files/colibri-imx6/99-toradex.rules
@@ -11,3 +11,5 @@ KERNEL=="mmcblk[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="2198000.usdhc", SYMLINK+=
KERNEL=="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="2198000.usdhc", SYMLINK+="emmc-boot%n"
KERNEL=="mmcblk[0-9]p[0-9]", ENV{DEVTYPE}=="partition", KERNELS=="2198000.usdhc", SYMLINK+="emmc-part%n"
SUBSYSTEM=="iio", KERNELS=="iio:device0", RUN+="/etc/udev/scripts/toradex-adc.sh"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]", KERNELS=="2190000.usdhc", SYMLINK+="colibri-sd"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]p[0-9]*", KERNELS=="2190000.usdhc", SYMLINK+="colibri-sd-part%n"
diff --git a/recipes-core/udev/files/colibri-imx6ull-emmc/99-toradex.rules b/recipes-core/udev/files/colibri-imx6ull-emmc/99-toradex.rules
new file mode 100644
index 0000000..651050a
--- /dev/null
+++ b/recipes-core/udev/files/colibri-imx6ull-emmc/99-toradex.rules
@@ -0,0 +1,13 @@
+ACTION=="add", KERNEL=="i2c-[0-9]*", ATTRS{name}=="21a0000.i2c", SYMLINK+="colibri-i2c"
+ACTION=="add", KERNEL=="i2c-[0-9]*", ATTRS{name}=="21a4000.i2c", SYMLINK+="colibri-i2c-on-module"
+ACTION=="add", ATTRS{iomem_base}=="0x2020000", SYMLINK+="colibri-uarta"
+ACTION=="add", ATTRS{iomem_base}=="0x21E8000", SYMLINK+="colibri-uartb"
+ACTION=="add", ATTRS{iomem_base}=="0x21F4000", SYMLINK+="colibri-uartc"
+ACTION=="add", KERNELS=="20bc000.wdog", SYMLINK+="colibri-watchdog"
+ACTION=="add", SUBSYSTEM=="spidev", KERNELS=="2008000.*spi", SYMLINK+="colibri-spi-cs%n"
+KERNEL=="mmcblk[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="2194000.usdhc", SYMLINK+="emmc"
+KERNEL=="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="2194000.usdhc", SYMLINK+="emmc-boot%n"
+KERNEL=="mmcblk[0-9]p[0-9]", ENV{DEVTYPE}=="partition", KERNELS=="2194000.usdhc", SYMLINK+="emmc-part%n"
+SUBSYSTEM=="iio", KERNELS=="iio:device0", RUN+="/etc/udev/scripts/toradex-adc.sh"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]", KERNELS=="2190000.usdhc", SYMLINK+="colibri-sd"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]p[0-9]*", KERNELS=="2190000.usdhc", SYMLINK+="colibri-sd-part%n"
diff --git a/recipes-core/udev/files/colibri-imx6ull-emmc/toradex-adc.sh b/recipes-core/udev/files/colibri-imx6ull-emmc/toradex-adc.sh
new file mode 100755
index 0000000..123e798
--- /dev/null
+++ b/recipes-core/udev/files/colibri-imx6ull-emmc/toradex-adc.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env sh
+#
+# Called from udev. Compatible to colibri-imx6ull.
+#
+# Create/remove symlinks to/from the files with raw ain data.
+
+# Map the ADC lines:
+# colibri-ain{0..3} -> ADCx_IN{0,1,8,9}
+
+if [ "$ACTION" = "add" ]; then
+ ln -s "/sys$DEVPATH/in_voltage0_raw" /dev/colibri-ain0
+ ln -s "/sys$DEVPATH/in_voltage1_raw" /dev/colibri-ain1
+ ln -s "/sys$DEVPATH/in_voltage8_raw" /dev/colibri-ain2
+ ln -s "/sys$DEVPATH/in_voltage9_raw" /dev/colibri-ain3
+elif [ "$ACTION" = "remove" ]; then
+ rm -f /dev/colibri-ain0
+ rm -f /dev/colibri-ain1
+ rm -f /dev/colibri-ain2
+ rm -f /dev/colibri-ain3
+fi
+
diff --git a/recipes-core/udev/files/colibri-imx6ull/99-toradex.rules b/recipes-core/udev/files/colibri-imx6ull/99-toradex.rules
index c91f750..651050a 100644
--- a/recipes-core/udev/files/colibri-imx6ull/99-toradex.rules
+++ b/recipes-core/udev/files/colibri-imx6ull/99-toradex.rules
@@ -5,4 +5,9 @@ ACTION=="add", ATTRS{iomem_base}=="0x21E8000", SYMLINK+="colibri-uartb"
ACTION=="add", ATTRS{iomem_base}=="0x21F4000", SYMLINK+="colibri-uartc"
ACTION=="add", KERNELS=="20bc000.wdog", SYMLINK+="colibri-watchdog"
ACTION=="add", SUBSYSTEM=="spidev", KERNELS=="2008000.*spi", SYMLINK+="colibri-spi-cs%n"
+KERNEL=="mmcblk[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="2194000.usdhc", SYMLINK+="emmc"
+KERNEL=="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="2194000.usdhc", SYMLINK+="emmc-boot%n"
+KERNEL=="mmcblk[0-9]p[0-9]", ENV{DEVTYPE}=="partition", KERNELS=="2194000.usdhc", SYMLINK+="emmc-part%n"
SUBSYSTEM=="iio", KERNELS=="iio:device0", RUN+="/etc/udev/scripts/toradex-adc.sh"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]", KERNELS=="2190000.usdhc", SYMLINK+="colibri-sd"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]p[0-9]*", KERNELS=="2190000.usdhc", SYMLINK+="colibri-sd-part%n"
diff --git a/recipes-core/udev/files/colibri-imx6ull/toradex-adc.sh b/recipes-core/udev/files/colibri-imx6ull/toradex-adc.sh
index b56593f..123e798 100755
--- a/recipes-core/udev/files/colibri-imx6ull/toradex-adc.sh
+++ b/recipes-core/udev/files/colibri-imx6ull/toradex-adc.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env sh
#
-# Called from udev. Compatible to colibri-imx8x.
+# Called from udev. Compatible to colibri-imx6ull.
#
# Create/remove symlinks to/from the files with raw ain data.
diff --git a/recipes-core/udev/files/colibri-imx7-emmc/99-toradex.rules b/recipes-core/udev/files/colibri-imx7-emmc/99-toradex.rules
index 707920e..cdb2feb 100644
--- a/recipes-core/udev/files/colibri-imx7-emmc/99-toradex.rules
+++ b/recipes-core/udev/files/colibri-imx7-emmc/99-toradex.rules
@@ -9,3 +9,5 @@ KERNEL=="mmcblk[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="30b60000.usdhc", SYMLINK+
KERNEL=="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="30b60000.usdhc", SYMLINK+="emmc-boot%n"
KERNEL=="mmcblk[0-9]p[0-9]", ENV{DEVTYPE}=="partition", KERNELS=="30b60000.usdhc", SYMLINK+="emmc-part%n"
SUBSYSTEM=="iio", KERNELS=="iio:device0", RUN+="/etc/udev/scripts/toradex-adc.sh"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]", KERNELS=="30b40000.usdhc", SYMLINK+="colibri-sd"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]p[0-9]*", KERNELS=="30b40000.usdhc", SYMLINK+="colibri-sd-part%n"
diff --git a/recipes-core/udev/files/colibri-imx7/99-toradex.rules b/recipes-core/udev/files/colibri-imx7/99-toradex.rules
index c0f8f23..cdb2feb 100644
--- a/recipes-core/udev/files/colibri-imx7/99-toradex.rules
+++ b/recipes-core/udev/files/colibri-imx7/99-toradex.rules
@@ -5,4 +5,9 @@ ACTION=="add", ATTRS{iomem_base}=="0x30890000", SYMLINK+="colibri-uartb"
ACTION=="add", ATTRS{iomem_base}=="0x30880000", SYMLINK+="colibri-uartc"
ACTION=="add", KERNEL=="watchdog", DRIVERS=="rn5t618-wdt", SYMLINK+="colibri-watchdog"
ACTION=="add", SUBSYSTEM=="spidev", KERNELS=="30840000.*spi", SYMLINK+="colibri-spi-cs%n"
+KERNEL=="mmcblk[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="30b60000.usdhc", SYMLINK+="emmc"
+KERNEL=="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="30b60000.usdhc", SYMLINK+="emmc-boot%n"
+KERNEL=="mmcblk[0-9]p[0-9]", ENV{DEVTYPE}=="partition", KERNELS=="30b60000.usdhc", SYMLINK+="emmc-part%n"
SUBSYSTEM=="iio", KERNELS=="iio:device0", RUN+="/etc/udev/scripts/toradex-adc.sh"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]", KERNELS=="30b40000.usdhc", SYMLINK+="colibri-sd"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]p[0-9]*", KERNELS=="30b40000.usdhc", SYMLINK+="colibri-sd-part%n"
diff --git a/recipes-core/udev/files/colibri-imx8x/99-toradex.rules b/recipes-core/udev/files/colibri-imx8x/99-toradex.rules
index 11a1e37..d0c65ea 100644
--- a/recipes-core/udev/files/colibri-imx8x/99-toradex.rules
+++ b/recipes-core/udev/files/colibri-imx8x/99-toradex.rules
@@ -9,3 +9,5 @@ KERNEL=="mmcblk[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="5b010000.mmc", SYMLINK+="
KERNEL=="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="5b010000.mmc", SYMLINK+="emmc-boot%n"
KERNEL=="mmcblk[0-9]p[0-9]", ENV{DEVTYPE}=="partition", KERNELS=="5b010000.mmc", SYMLINK+="emmc-part%n"
SUBSYSTEM=="iio", KERNELS=="iio:device0", RUN+="/etc/udev/scripts/toradex-adc.sh"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]", KERNELS=="5b020000.mmc", SYMLINK+="colibri-sd"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]p[0-9]*", KERNELS=="5b020000.mmc", SYMLINK+="colibri-sd-part%n"
diff --git a/recipes-core/udev/files/mount.sh b/recipes-core/udev/files/mount.sh
index e179ec4..1e8bfa4 100644
--- a/recipes-core/udev/files/mount.sh
+++ b/recipes-core/udev/files/mount.sh
@@ -15,7 +15,7 @@
# expects 'root=PARTUUID=fe6beb3d-02' in /proc/cmdline
-BASEUUID=$(sed 's/root=\([^[:space:]]*\).*/\1/ ; s/PARTUUID=\([0-9a-f]*\)-02/\1/' /proc/cmdline)
+BASEUUID=$(sed -r 's/^.*\broot=PARTUUID=([0-9a-f]+)-02.*$/\1/' /proc/cmdline)
if [ -b /dev/disk/by-partuuid/${BASEUUID}-02 ]; then
BOOTPART=$(readlink -f /dev/disk/by-partuuid/${BASEUUID}-01)
if [ x$DEVNAME = x$BOOTPART ]; then
diff --git a/recipes-core/udev/files/verdin-imx8mm/99-toradex.rules b/recipes-core/udev/files/verdin-imx8mm/99-toradex.rules
index 7319430..87f276b 100644
--- a/recipes-core/udev/files/verdin-imx8mm/99-toradex.rules
+++ b/recipes-core/udev/files/verdin-imx8mm/99-toradex.rules
@@ -11,3 +11,5 @@ KERNEL=="mmcblk[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="30b40000.mmc", SYMLINK+="
KERNEL=="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="30b40000.mmc", SYMLINK+="emmc-boot%n"
KERNEL=="mmcblk[0-9]p[0-9]", ENV{DEVTYPE}=="partition", KERNELS=="30b40000.mmc", SYMLINK+="emmc-part%n"
SUBSYSTEM=="iio", KERNELS=="iio:device0", RUN+="/etc/udev/scripts/toradex-adc.sh"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]", KERNELS=="30b50000.mmc", SYMLINK+="verdin-sd"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]p[0-9]*", KERNELS=="30b50000.mmc", SYMLINK+="verdin-sd-part%n"
diff --git a/recipes-core/udev/files/verdin-imx8mm/toradex-adc.sh b/recipes-core/udev/files/verdin-imx8mm/toradex-adc.sh
index 0f5f878..89c1c92 100755
--- a/recipes-core/udev/files/verdin-imx8mm/toradex-adc.sh
+++ b/recipes-core/udev/files/verdin-imx8mm/toradex-adc.sh
@@ -5,13 +5,13 @@
# Create/remove symlinks to/from the files with raw adc data.
# Map the ADC lines:
-# verdin-adc{1..4} -> MAX11607 ADC{0,1,2,3}
+# verdin-adc{1..4} -> TLA2024 ADC{3,2,1,0}
if [ "$ACTION" = "add" ]; then
- ln -s "/sys$DEVPATH/in_voltage0_raw" /dev/verdin-adc1
- ln -s "/sys$DEVPATH/in_voltage1_raw" /dev/verdin-adc2
- ln -s "/sys$DEVPATH/in_voltage2_raw" /dev/verdin-adc3
- ln -s "/sys$DEVPATH/in_voltage3_raw" /dev/verdin-adc4
+ ln -s "/sys$DEVPATH/in_voltage0_raw" /dev/verdin-adc4
+ ln -s "/sys$DEVPATH/in_voltage1_raw" /dev/verdin-adc3
+ ln -s "/sys$DEVPATH/in_voltage2_raw" /dev/verdin-adc2
+ ln -s "/sys$DEVPATH/in_voltage3_raw" /dev/verdin-adc1
elif [ "$ACTION" = "remove" ]; then
rm -f /dev/verdin-adc1
rm -f /dev/verdin-adc2
diff --git a/recipes-core/udev/files/verdin-imx8mp/99-toradex.rules b/recipes-core/udev/files/verdin-imx8mp/99-toradex.rules
index 49df8f7..e1ee4dd 100644
--- a/recipes-core/udev/files/verdin-imx8mp/99-toradex.rules
+++ b/recipes-core/udev/files/verdin-imx8mp/99-toradex.rules
@@ -1,5 +1,6 @@
ACTION=="add", KERNEL=="i2c-[0-9]*", ATTRS{name}=="30a50000.i2c", SYMLINK+="verdin-i2c1"
ACTION=="add", KERNEL=="i2c-[0-9]*", ATTRS{name}=="30a30000.i2c", SYMLINK+="verdin-i2c2"
+ACTION=="add", KERNEL=="i2c-[0-9]*", ATTRS{name}=="DesignWare HDMI", SYMLINK+="verdin-i2c3"
ACTION=="add", KERNEL=="i2c-[0-9]*", ATTRS{name}=="30a40000.i2c", SYMLINK+="verdin-i2c4"
ACTION=="add", KERNEL=="i2c-[0-9]*", ATTRS{name}=="30a20000.i2c", SYMLINK+="verdin-i2c-on-module"
ACTION=="add", ATTRS{iomem_base}=="0x30860000", SYMLINK+="verdin-uart1"
@@ -11,3 +12,5 @@ KERNEL=="mmcblk[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="30b60000.mmc", SYMLINK+="
KERNEL=="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", KERNELS=="30b60000.mmc", SYMLINK+="emmc-boot%n"
KERNEL=="mmcblk[0-9]p[0-9]", ENV{DEVTYPE}=="partition", KERNELS=="30b60000.mmc", SYMLINK+="emmc-part%n"
SUBSYSTEM=="iio", KERNELS=="iio:device0", RUN+="/etc/udev/scripts/toradex-adc.sh"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]", KERNELS=="30b50000.mmc", SYMLINK+="verdin-sd"
+ACTION=="add|change", KERNEL=="mmcblk[0-9]p[0-9]*", KERNELS=="30b50000.mmc", SYMLINK+="verdin-sd-part%n"
diff --git a/recipes-core/udev/udev-extraconf_%.bbappend b/recipes-core/udev/udev-extraconf_%.bbappend
index 7b03d77..49a930b 100644
--- a/recipes-core/udev/udev-extraconf_%.bbappend
+++ b/recipes-core/udev/udev-extraconf_%.bbappend
@@ -1,10 +1,10 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/files/:"
-SRC_URI_append = " file://hotplug.rules \
- file://hotplug.sh \
+SRC_URI_append_tdx = " file://hotplug.rules \
+ file://hotplug.sh \
"
-do_install_append() {
+do_install_append_tdx () {
install -d ${D}${sysconfdir}/udev/rules.d
install -m 0644 ${WORKDIR}/hotplug.rules ${D}${sysconfdir}/udev/rules.d/hotplug.rules
diff --git a/recipes-core/util-linux/util-linux/fstrim.service b/recipes-core/util-linux/util-linux/fstrim.service
new file mode 100644
index 0000000..5c89027
--- /dev/null
+++ b/recipes-core/util-linux/util-linux/fstrim.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=Discard unused blocks
+ConditionVirtualization=!container
+
+[Service]
+Type=oneshot
+ExecStart=@SBINDIR@/fstrim -av
diff --git a/recipes-core/util-linux/util-linux/fstrim.timer b/recipes-core/util-linux/util-linux/fstrim.timer
new file mode 100644
index 0000000..df6bef2
--- /dev/null
+++ b/recipes-core/util-linux/util-linux/fstrim.timer
@@ -0,0 +1,11 @@
+[Unit]
+Description=Discard unused blocks once a week
+ConditionVirtualization=!container
+
+[Timer]
+OnCalendar=weekly
+AccuracySec=1h
+Persistent=true
+
+[Install]
+WantedBy=timers.target
diff --git a/recipes-core/util-linux/util-linux_%.bbappend b/recipes-core/util-linux/util-linux_%.bbappend
new file mode 100644
index 0000000..1b78d46
--- /dev/null
+++ b/recipes-core/util-linux/util-linux_%.bbappend
@@ -0,0 +1,20 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+SRC_URI_append = " file://fstrim.service \
+ file://fstrim.timer \
+"
+
+inherit systemd
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "fstrim.service fstrim.timer"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+do_install_append() {
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/fstrim.service ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/fstrim.timer ${D}${systemd_unitdir}/system/
+ sed -i -e 's,@SBINDIR@,${sbindir},g' \
+ -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ ${D}${systemd_unitdir}/system/*.service
+}
+
diff --git a/recipes-devtools/e2fsprogs/e2fsprogs_%.bbappend b/recipes-devtools/e2fsprogs/e2fsprogs_%.bbappend
index f40a663..1281843 100644
--- a/recipes-devtools/e2fsprogs/e2fsprogs_%.bbappend
+++ b/recipes-devtools/e2fsprogs/e2fsprogs_%.bbappend
@@ -1,9 +1,10 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/e2fsprogs:"
-SRC_URI += "file://e2fsck.conf"
-do_install_append() {
+SRC_URI_append_tdx = " file://e2fsck.conf"
+
+do_install_append_tdx () {
install -d ${D}${sysconfdir}
install -m 0644 ${WORKDIR}/e2fsck.conf ${D}${sysconfdir}/e2fsck.conf
}
-FILES_e2fsprogs-e2fsck += "${sysconfdir}/e2fsck.conf"
+FILES_e2fsprogs-e2fsck_append_tdx = " ${sysconfdir}/e2fsck.conf"
diff --git a/recipes-devtools/mtd/mtd-utils_%.bbappend b/recipes-devtools/mtd/mtd-utils_%.bbappend
index 054c939..0e3e9df 100644
--- a/recipes-devtools/mtd/mtd-utils_%.bbappend
+++ b/recipes-devtools/mtd/mtd-utils_%.bbappend
@@ -1,5 +1,5 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-SRC_URI_append_ = " file://ubihealthd.service"
+SRC_URI_append = " file://ubihealthd.service"
inherit systemd
diff --git a/recipes-devtools/python/python3-docutils/rst2man_using_python3.patch b/recipes-devtools/python/python3-docutils/rst2man_using_python3.patch
deleted file mode 100644
index aa446d2..0000000
--- a/recipes-devtools/python/python3-docutils/rst2man_using_python3.patch
+++ /dev/null
@@ -1,8 +0,0 @@
---- a/tools/rst2man.py 2009-08-18 11:39:39.000000000 -0700
-+++ b/tmp/rst2man.py 2017-04-04 18:25:14.049467561 -0700
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
-
- # Author:
- # Contact: grubert@users.sf.net
diff --git a/recipes-devtools/python/python3-docutils_%.bbappend b/recipes-devtools/python/python3-docutils_%.bbappend
deleted file mode 100644
index 22f835c..0000000
--- a/recipes-devtools/python/python3-docutils_%.bbappend
+++ /dev/null
@@ -1,6 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/python3-docutils/:"
-
-SRC_URI_append = " \
-file://rst2man_using_python3.patch \
-"
-
diff --git a/recipes-kernel/kmod/depmodwrapper-cross_%.bbappend b/recipes-kernel/kmod/depmodwrapper-cross_%.bbappend
index a5589ba..ba30c0f 100644
--- a/recipes-kernel/kmod/depmodwrapper-cross_%.bbappend
+++ b/recipes-kernel/kmod/depmodwrapper-cross_%.bbappend
@@ -21,7 +21,7 @@ else
FILESYMS=-F "${PKGDATA_DIR}/kernel-depmod/System.map-\$4"
fi
-exec env depmod -C "\${3}/etc/depmod.d/" "\$1" "\$2" "\$3" ${FILESYMS} "\$4"
+exec env depmod -C "\$3${sysconfdir}/depmod.d" "\$1" "\$2" "\$3" ${FILESYMS} "\$4"
EOF
chmod +x ${D}${bindir_crossscripts}/depmodwrapper
diff --git a/recipes-kernel/linux/device-tree-overlays-mainline_git.bb b/recipes-kernel/linux/device-tree-overlays-mainline_git.bb
index cc34553..4906f07 100644
--- a/recipes-kernel/linux/device-tree-overlays-mainline_git.bb
+++ b/recipes-kernel/linux/device-tree-overlays-mainline_git.bb
@@ -1,7 +1,7 @@
inherit toradex-devicetree
SRCBRANCH = "toradex_5.4.y"
-SRCREV = "b4bc095e8b8c2613c8c9a10c1895b544652f8cf4"
+SRCREV = "8f727c038e267c4388b1a27d8e5a460b130d36a6"
SRCREV_use-head-next = "${AUTOREV}"
COMPATIBLE_MACHINE = ".*(mx[678]|tegra124).*"
diff --git a/recipes-kernel/linux/linux-toradex-mainline_%.bbappend b/recipes-kernel/linux/linux-toradex-mainline_%.bbappend
deleted file mode 100644
index 760ffc8..0000000
--- a/recipes-kernel/linux/linux-toradex-mainline_%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-export DTC_FLAGS = "-@"
diff --git a/recipes-kernel/linux/linux-toradex-mainline_5.4.bb b/recipes-kernel/linux/linux-toradex-mainline_5.4.bb
index 8c14744..34ef6ce 100644
--- a/recipes-kernel/linux/linux-toradex-mainline_5.4.bb
+++ b/recipes-kernel/linux/linux-toradex-mainline_5.4.bb
@@ -1,9 +1,9 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-5.4:"
-LINUX_VERSION ?= "5.4.77"
+LINUX_VERSION ?= "5.4.264"
PV = "${LINUX_VERSION}+git${SRCPV}"
-SRCREV_machine = "70abc7bf67f40bed3172de3ad73eb9a48ac9e1d3"
+SRCREV_machine = "0dae0c54feafd327366df4eac6f8948d2b167afa"
SRCREV_machine_use-head-next = "${AUTOREV}"
KCONFIG_MODE="--alldefconfig"
@@ -12,16 +12,20 @@ KBRANCH = "toradex_5.4.y"
require recipes-kernel/linux/linux-toradex-mainline.inc
+# Don't delete /older/ in the link as /older/ also contains the newest file and we have a stable
+# link
SRC_URI_append_preempt-rt = " \
- ${KERNELORG_MIRROR}/linux/kernel/projects/rt/5.4/older/patch-5.4.77-rt43.patch.xz;name=rt-patch \
+ ${KERNELORG_MIRROR}/linux/kernel/projects/rt/5.4/older/patch-5.4.264-rt88.patch.xz;name=rt-patch \
file://preempt-rt.scc \
file://preempt-rt-less-latency.scc \
"
-SRC_URI[rt-patch.md5sum] = "cf96e01e04ec8743e4b24caec76d2c2d"
-SRC_URI[rt-patch.sha256sum] = "a0966fb60ce26f28e4dea5eb9db2e62974e1391470ea1bdb88e2d884a3280dc4"
+SRC_URI[rt-patch.md5sum] = "28c024e5549d246fe089792d237e14b8"
+SRC_URI[rt-patch.sha256sum] = "af352c34058fa000f6333a4e1d167d18002c0fbc096f0845ff3a55176e8cedfb"
# Load USB functions configurable through configfs (CONFIG_USB_CONFIGFS)
KERNEL_MODULE_AUTOLOAD += "${@bb.utils.contains('COMBINED_FEATURES', 'usbgadget', ' libcomposite', '',d)}"
KBUILD_DEFCONFIG ?= "toradex-imx_v6_v7_defconfig"
KBUILD_DEFCONFIG_apalis-tk1 ?= "tegra_defconfig"
+
+export DTC_FLAGS = "-@"
diff --git a/recipes-kernel/linux/linux-toradex_%.bbappend b/recipes-kernel/linux/linux-toradex_%.bbappend
deleted file mode 100644
index 760ffc8..0000000
--- a/recipes-kernel/linux/linux-toradex_%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-export DTC_FLAGS = "-@"
diff --git a/recipes-support/libsoc/libsoc_0.8.2.bbappend b/recipes-support/libsoc/libsoc_0.8.2.bbappend
index 1f17c94..248c7fc 100644
--- a/recipes-support/libsoc/libsoc_0.8.2.bbappend
+++ b/recipes-support/libsoc/libsoc_0.8.2.bbappend
@@ -1,10 +1,10 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/libsoc:"
-PACKAGE_ARCH = "${MACHINE_ARCH}"
+PACKAGE_ARCH_tdx = "${MACHINE_ARCH}"
-SRCREV = "9a97d260379856940a5de9862ef06803de82cca8"
+SRCREV_tdx = "9a97d260379856940a5de9862ef06803de82cca8"
-SRC_URI += " \
+SRC_URI_append_tdx = " \
file://0001-libsoc-use-sane-board-naming.patch \
"
@@ -12,6 +12,7 @@ BOARD_apalis-imx6 = "apalis-imx6"
BOARD_apalis-tk1 = "apalis-tk1"
BOARD_colibri-imx6 = "colibri-imx6"
BOARD_colibri-imx6ull = "colibri-imx6ull"
+BOARD_colibri-imx6ull-emmc = "colibri-imx6ull"
BOARD_colibri-imx7 = "colibri-imx7"
BOARD_colibri-imx7-emmc = "colibri-imx7-emmc"
@@ -19,12 +20,12 @@ PACKAGECONFIG_apalis-imx6 = "allboardconfigs enableboardconfig python"
PACKAGECONFIG_apalis-tk1 = "allboardconfigs enableboardconfig python"
PACKAGECONFIG_colibri-imx6 = "allboardconfigs enableboardconfig python"
PACKAGECONFIG_colibri-imx6ull = "allboardconfigs enableboardconfig python"
+PACKAGECONFIG_colibri-imx6ull-emmc = "allboardconfigs enableboardconfig python"
PACKAGECONFIG_colibri-imx7 = "allboardconfigs enableboardconfig python"
PACKAGECONFIG_colibri-imx7-emmc = "allboardconfigs enableboardconfig python"
pkg_postinst_ontarget_${PN}_colibri-imx6ull () {
- IS_WIFI_DTB=`grep -c toradex,colibri_imx6ull-wifi /proc/device-tree/compatible`
- if [ $IS_WIFI_DTB -gt 0 ]; then
+ if fgrep -q toradex,colibri_imx6ull-wifi /proc/device-tree/compatible; then
mv -f ${datadir}/libsoc/colibri-imx6ull.conf ${datadir}/libsoc/colibri-imx6ull.conf.bak
# SODIMM pins missing on Wi-Fi SKU
cat ${datadir}/libsoc/colibri-imx6ull.conf.bak | grep -E -v "(SODIMM_79|SODIMM_81|SODIMM_89|SODIMM_93|SODIMM_94|SODIMM_97|SODIMM_101|SODIMM_103|SODIMM_127|SODIMM_138)" > ${datadir}/libsoc/colibri-imx6ull.conf
diff --git a/recipes-support/libusbgx/files/usbg.service b/recipes-support/libusbgx/files/usbg.service
index c9ed582..7808f5f 100644
--- a/recipes-support/libusbgx/files/usbg.service
+++ b/recipes-support/libusbgx/files/usbg.service
@@ -14,4 +14,4 @@ ExecStartPost=/bin/sh -c '/bin/echo `ls /sys/class/udc/` > \
/sys/kernel/config/usb_gadget/g1/UDC'
[Install]
-WantedBy=multi-user.target
+WantedBy=usb-gadget.target
diff --git a/recipes-support/libusbgx/libusbgx_git.bb b/recipes-support/libusbgx/libusbgx_git.bb
index 6449f9c..1c30ce4 100644
--- a/recipes-support/libusbgx/libusbgx_git.bb
+++ b/recipes-support/libusbgx/libusbgx_git.bb
@@ -11,10 +11,10 @@ DEPENDS = "libconfig"
EXTRA_OECONF = "--includedir=${includedir}/usbgx"
PV = "0.2.0+git${SRCPV}"
-SRCREV = "45c14ef4d5d7ced0fbf984208de44ced6d5ed898"
+SRCREV = "fa4e7e92260e33f78b72e7796b3df28c4c84b8e2"
SRCBRANCH = "master"
SRC_URI = " \
- git://github.com/libusbgx/libusbgx.git;branch=${SRCBRANCH} \
+ git://github.com/libusbgx/libusbgx.git;branch=${SRCBRANCH};protocol=https \
file://usbg.service \
file://g1.schema.in \
"
diff --git a/recipes-support/rng-tools/rng-tools_%.bbappend b/recipes-support/rng-tools/rng-tools_%.bbappend
new file mode 100644
index 0000000..3d2eb05
--- /dev/null
+++ b/recipes-support/rng-tools/rng-tools_%.bbappend
@@ -0,0 +1 @@
+PACKAGECONFIG_remove_tdx = "libjitterentropy"