Merge branch 'dey-4.0/maint' into dey-4.0/master

This merges back tag 'dey-4.0-r3.2' + some other fixes.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
This commit is contained in:
Javier Viguera 2023-05-26 11:14:33 +02:00
commit 0ef9174760
10 changed files with 100 additions and 77 deletions

View File

@ -21,18 +21,24 @@ OS versions:
Software for the following hardware platforms is in production support:
## ConnectCore 93
* ConnectCore 93 System-on-Module (SOM)
* [CC-WMX-YC7D-KN](https://www.digi.com/products/models/cc-wmx-yc7d-kn)
* ConnectCore 93 Development Kit (DVK)
* [CC-WMX93-KIT](https://www.digi.com/products/models/cc-wmx93-kit) ([Get Started](https://www.digi.com/resources/documentation/digidocs/embedded/dey/4.0/cc93/yocto-gs_index))
## ConnectCore MP13
* ConnectCore MP13 System-on-Module (SOM)
* [CC-WST-DX58-NK](https://www.digi.com/products/models/cc-wst-dx58-nk)
* [CC-ST-DX58-ZK](https://www.digi.com/products/models/cc-st-dx58-zk)
* ConnectCore MP13 DVK
* ConnectCore MP13 Development Kit (DVK)
* [CC-WMP133-KIT](https://www.digi.com/products/models/cc-wmp133-kit) ([Get Started](https://www.digi.com/resources/documentation/digidocs/embedded/dey/4.0/ccmp13/yocto-gs_index))
## ConnectCore MP15
* ConnectCore MP15 System-on-Module (SOM)
* [CC-WST-DW69-NM](https://www.digi.com/products/models/cc-wst-dw69-nm)
* [CC-ST-DW69-ZM](https://www.digi.com/products/models/cc-st-dw69-zm)
* ConnectCore MP15 DVK
* ConnectCore MP15 Development Kit (DVK)
* [CC-WMP157-KIT](https://www.digi.com/products/models/cc-wmp157-kit) ([Get Started](https://www.digi.com/resources/documentation/digidocs/embedded/dey/4.0/ccmp15/yocto-gs_index))
## ConnectCore 8M Mini
@ -41,7 +47,7 @@ Software for the following hardware platforms is in production support:
* [CC-WMX-ET7D-NN](https://www.digi.com/products/models/cc-wmx-et7d-nn)
* [CC-MX-ET8D-ZN](https://www.digi.com/products/models/cc-mx-et8d-zn)
* [CC-MX-ET7D-ZN](https://www.digi.com/products/models/cc-mx-et7d-zn)
* ConnectCore 8M Mini Development Kit
* ConnectCore 8M Mini Development Kit (DVK)
* [CC-WMX8MM-KIT](https://www.digi.com/products/models/cc-wmx8mm-kit) ([Get Started](https://www.digi.com/resources/documentation/digidocs/embedded/dey/4.0/cc8mmini/yocto-gs_index))
## ConnectCore 8M Nano
@ -50,7 +56,7 @@ Software for the following hardware platforms is in production support:
* [CC-WMX-FR6D-NN](https://www.digi.com/products/models/cc-wmx-fr6d-nn)
* [CC-MX-FS7D-ZN](https://www.digi.com/products/models/cc-mx-fs7d-zn)
* [CC-MX-FR6D-ZN](https://www.digi.com/products/models/cc-mx-fr6d-zn)
* ConnectCore 8M Nano Development Kit
* ConnectCore 8M Nano Development Kit (DVK)
* [CC-WMX8MN-KIT](https://www.digi.com/products/models/cc-wmx8mn-kit) ([Get Started](https://www.digi.com/resources/documentation/digidocs/embedded/dey/4.0/cc8mnano/yocto-gs_index))
## ConnectCore 6UL
@ -81,11 +87,31 @@ Documentation is available online at https://www.digi.com/resources/documentatio
# Downloads
* Demo images: https://ftp1.digi.com/support/digiembeddedyocto/4.0/r2/images/
* Software Development Kit (SDK): https://ftp1.digi.com/support/digiembeddedyocto/4.0/r2/sdk/
* Demo images: https://ftp1.digi.com/support/digiembeddedyocto/4.0/r3/images/
* Software Development Kit (SDK): https://ftp1.digi.com/support/digiembeddedyocto/4.0/r3/sdk/
# Release Changelog
## 4.0-r3
* ST-based platforms
* Added initial TrustFence support
* Fixed Ethernet PHY pinctrl resuming from deep sleep
* Adjust CAN bus parent clock to achieve more accurate baudrates
* Add DT overlay for Bluetooth raw test mode
* Adjust NAND lines speed settings
* Add specific kernel driver for Marvell Ethernet PHY on DVK
* Fix race condition on bringup of LAN87xx Ethernet PHY
* Disable auto-mount of microSD card to avoid race condition on kernel boot
* NXP-based platforms
* Added support to ConnectCore 93
* U-Boot v2022.04 (based on tag 'lf-5.15.71-2.2.0' by NXP)
* Linux kernel v5.15.71 (based on tag 'lf-5.15.71-2.2.0' by NXP)
* QT6 6.3.2
* Fix PMIC regulators suspend state on ConnectCore 8M Nano
* Fix clock initialization issue on LAN8710/20 PHY on ConnectCore 6UL
* General bug fixing and improvements
## 4.0-r2
* Added webkit support
@ -153,9 +179,8 @@ updated list can be found on the online documentation.
* Wireless
* P2P on the ConnectCore MP1 doesn't currently work in concurrency with
other modes (station or SoftAP).
* The following features are not yet supported:
* TrustFence
* Connecting to a 802.11r network throws an unexpected error with the latest
CYW4373E wireless firmware.
## ConnectCore 6UL

View File

@ -3,7 +3,7 @@
#@DESCRIPTION: Machine configuration for Digi's ConnectCore 8M Nano DVK.
DIGI_SOM = "ccimx8mn"
MACHINEOVERRIDES =. "mx8:mx8m:mx8mm:${DIGI_FAMILY}:${DIGI_SOM}:"
MACHINEOVERRIDES =. "mx8:mx8m:mx8mn:${DIGI_FAMILY}:${DIGI_SOM}:"
# Include the machine configuration for Digi's ConnectCore 8M module.
include conf/machine/include/ccimx8m.inc

View File

@ -162,4 +162,4 @@ BOOTABLE_ARTIFACTS = " \
# TRUSTFENCE basic support
# Alternatively, uncommment to enable the console with the specified GPIO
# TRUSTFENCE_CONSOLE_GPIO_ENABLE_NAME ?= "GPIOB6"
# TRUSTFENCE_CONSOLE_GPIO_ENABLE_NAME ?= "GPIOA5"

View File

@ -166,4 +166,4 @@ BOOTABLE_ARTIFACTS = " \
# TRUSTFENCE basic support
# Alternatively, uncommment to enable the console with the specified GPIO
# TRUSTFENCE_CONSOLE_GPIO_ENABLE_NAME ?= "GPIOA5"
# TRUSTFENCE_CONSOLE_GPIO_ENABLE_NAME ?= "GPIOB6"

View File

@ -67,3 +67,8 @@ MACHINE_DISTRO_FEATURES_REMOVE = "vulkan"
# SWUpdate sw-description configuration
BOOTFS_EXT ?= ".boot.vfat"
ROOTFS_EXT ?= ".ext4.gz"
BOOT_DEV_NAME ?= "/dev/mmcblk0p1"
ROOTFS_DEV_NAME ?= "/dev/mmcblk0p3"
ROOTFS_ENC_DEV = "/dev/mapper/cryptrootfs"
ROOTFS_DEV_NAME_FINAL = "${@oe.utils.ifelse(d.getVar('TRUSTFENCE_ENCRYPT_ROOTFS') == '1', '${ROOTFS_ENC_DEV}', '${ROOTFS_DEV_NAME}')}"

View File

@ -63,6 +63,8 @@ tfa_sign() {
TF_A_FILENAME="${tfa_basename}-${dt}-${config}.${TF_A_SUFFIX}"
if [ -f "${DEPLOYDIR}/arm-trusted-firmware/${TF_A_FILENAME}" ]; then
trustfence-sign-artifact.sh -p "${DIGI_SOM}" -t "${DEPLOYDIR}/arm-trusted-firmware/${TF_A_FILENAME}" "${DEPLOYDIR}/arm-trusted-firmware/${TF_A_FILENAME}_signed"
# the generated artifact lacks 'w' permission which prevents deletion by the build system
chmod u+w "${DEPLOYDIR}/arm-trusted-firmware/${TF_A_FILENAME}_signed"
fi
esac
done # for file_type in ${tfa_file_type}

View File

@ -100,7 +100,7 @@ build_uboot_scripts() {
mkimage -T script -n "Alternate bootscript" -C none -d ${WORKDIR}/altboot.txt ${DEPLOYDIR}/altboot.scr
# Sign the scripts (TODO signing of artifacts for STM-based platforms)
if [ [ "${TRUSTFENCE_SIGN}" = "1" ] && [ "${DEY_SOC_VENDOR}" != "STM" ] ]; then
if [ "${TRUSTFENCE_SIGN}" = "1" ] && [ "${DEY_SOC_VENDOR}" != "STM" ]; then
export CONFIG_SIGN_KEYS_PATH="${TRUSTFENCE_SIGN_KEYS_PATH}"
[ -n "${TRUSTFENCE_KEY_INDEX}" ] && export CONFIG_KEY_INDEX="${TRUSTFENCE_KEY_INDEX}"
[ -n "${TRUSTFENCE_DEK_PATH}" ] && [ "${TRUSTFENCE_DEK_PATH}" != "0" ] && export CONFIG_DEK_PATH="${TRUSTFENCE_DEK_PATH}"

View File

@ -55,7 +55,7 @@ python () {
if (d.getVar("DEY_SOC_VENDOR") == "NXP"):
d.appendVar("UBOOT_TF_CONF", "CONFIG_CONSOLE_ENABLE_GPIO=y CONFIG_CONSOLE_ENABLE_GPIO_NR=%s " % d.getVar("TRUSTFENCE_CONSOLE_GPIO_ENABLE"))
elif (d.getVar("DEY_SOC_VENDOR") == "STM"):
d.appendVar("UBOOT_TF_CONF", "CONFIG_CONSOLE_ENABLE_GPIO=y CONFIG_CONSOLE_ENABLE_GPIO_NAME=%s " % d.getVar("TRUSTFENCE_CONSOLE_GPIO_ENABLE_NAME"))
d.appendVar("UBOOT_TF_CONF", 'CONFIG_CONSOLE_ENABLE_GPIO=y CONFIG_CONSOLE_ENABLE_GPIO_NAME="%s" ' % d.getVar("TRUSTFENCE_CONSOLE_GPIO_ENABLE_NAME"))
# Secure boot configuration
if (d.getVar("TRUSTFENCE_SIGN_KEYS_PATH") == "default"):

View File

@ -17,13 +17,13 @@ Signed-off-by: Mike Engel <Mike.Engel@digi.com>
create mode 120000 ipc-static/progress_ipc.c
diff --git a/Makefile b/Makefile
index bf534e110ac3..8b704798501f 100644
index 09d03a3..080b834 100644
--- a/Makefile
+++ b/Makefile
@@ -364,6 +364,7 @@ include $(srctree)/Makefile.flags
objs-y := core handlers bootloader
libs-y := corelib mongoose parser suricatta fs
objs-y := core handlers bootloader suricatta
libs-y := corelib mongoose parser fs
+libs-y += ipc-static
bindings-y := bindings
tools-y := tools
@ -47,7 +47,7 @@ index bf534e110ac3..8b704798501f 100644
install -m 0755 ${lua_swupdate} $(DESTDIR)/${LIBDIR}/lua/$(LUAVER); \
diff --git a/ipc-static/Makefile b/ipc-static/Makefile
new file mode 100644
index 000000000000..99cce6cc75da
index 0000000..99cce6c
--- /dev/null
+++ b/ipc-static/Makefile
@@ -0,0 +1,6 @@
@ -59,7 +59,7 @@ index 000000000000..99cce6cc75da
+EXTRA_CFLAGS += -fPIC
diff --git a/ipc-static/network_ipc-if.c b/ipc-static/network_ipc-if.c
new file mode 120000
index 000000000000..37894e2f8207
index 0000000..37894e2
--- /dev/null
+++ b/ipc-static/network_ipc-if.c
@@ -0,0 +1 @@
@ -67,7 +67,7 @@ index 000000000000..37894e2f8207
\ No newline at end of file
diff --git a/ipc-static/network_ipc.c b/ipc-static/network_ipc.c
new file mode 120000
index 000000000000..0640077ec0fc
index 0000000..0640077
--- /dev/null
+++ b/ipc-static/network_ipc.c
@@ -0,0 +1 @@
@ -75,7 +75,7 @@ index 000000000000..0640077ec0fc
\ No newline at end of file
diff --git a/ipc-static/progress_ipc.c b/ipc-static/progress_ipc.c
new file mode 120000
index 000000000000..7c6622ce0a30
index 0000000..7c6622c
--- /dev/null
+++ b/ipc-static/progress_ipc.c
@@ -0,0 +1 @@

View File

@ -22,19 +22,6 @@
set -e
AVAILABLE_PLATFORMS=" \
ccimx8mm-dvk \
ccimx8mn-dvk \
ccimx8x-sbc-pro \
ccimx8x-sbc-express \
ccimx6qpsbc \
ccimx6sbc \
ccimx6ulsbc \
ccimx6ulstarter \
ccmp15-dvk \
ccmp13-dvk \
"
MANIFEST_URL="https://github.com/digi-embedded/dey-manifest.git"
RM_WORK_CFG="
@ -53,14 +40,10 @@ SOURCE_DATE_EPOCH = \"${SOURCE_DATE_EPOCH}\"
REPRODUCIBLE_TIMESTAMP_ROOTFS = \"${SOURCE_DATE_EPOCH}\"
"
BACKEND_REMOVAL_CFG="
DISTRO_FEATURES_remove = \"x11 wayland vulkan\"
"
REPO="$(which repo)"
error() {
printf "${1}"
printf "%s" "${1}"
exit 1
}
@ -73,10 +56,10 @@ copy_images() {
# Copy individual packages only for 'release' builds, not for 'daily'.
# For 'daily' builds just copy the firmware images (the buildserver
# cannot afford such amount of disk space)
if echo ${JOB_NAME} | grep -qs 'dey.*release'; then
cp -r tmp/deploy/* ${1}/
if echo "${JOB_NAME}" | grep -qs 'dey.*release'; then
cp -r tmp/deploy/* "${1}"/
else
cp -r tmp/deploy/images ${1}/
cp -r tmp/deploy/images "${1}"/
fi
# Images directory post-processing
@ -85,9 +68,9 @@ copy_images() {
# files.
# - Remove 'README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt' files
# - Create MD5SUMS file
find ${1} -type l -delete
find ${1} -type f -name 'README_-_DO_NOT_DELETE*' -delete
find ${1} -type f -not -name MD5SUMS -print0 | xargs -r -0 md5sum | sed -e "s,${1}/,,g" | sort -k2,2 > ${1}/MD5SUMS
find "${1}" -type l -delete
find "${1}" -type f -name 'README_-_DO_NOT_DELETE*' -delete
find "${1}" -type f -not -name MD5SUMS -print0 | xargs -r -0 md5sum | sed -e "s,${1}/,,g" | sort -k2,2 > "${1}"/MD5SUMS
}
#
@ -112,7 +95,7 @@ purge_sstate() {
packagegroup-dey-webkit \
packagegroup-dey-wireless \
"
bitbake -k -c cleansstate ${PURGE_PKGS} >/dev/null 2>&1 || true
bitbake -k -c cleansstate "${PURGE_PKGS}" >/dev/null 2>&1 || true
}
#
@ -121,8 +104,8 @@ purge_sstate() {
# $1: image recipe
#
swu_recipe_name() {
if [ -n "$(find ${YOCTO_INST_DIR}/sources/meta-digi -type f -name "${1}-swu.bb")" ]; then
printf "${1}-swu"
if [ -n "$(find "${YOCTO_INST_DIR}"/sources/meta-digi -type f -name "${1}-swu.bb")" ]; then
printf "%s-swu" "${1}"
fi
}
@ -130,11 +113,10 @@ swu_recipe_name() {
[ -z "${DY_REVISION}" ] && error "DY_REVISION not specified"
[ -z "${WORKSPACE}" ] && error "WORKSPACE not specified"
# Set default values if not provided by Jenkins
[ -z "${DY_PLATFORMS}" ] && DY_PLATFORMS="$(echo ${AVAILABLE_PLATFORMS})"
# Per-platform data
while read _pl _tgt; do
while read -r _pl _tgt; do
AVAILABLE_PLATFORMS="${AVAILABLE_PLATFORMS:+${AVAILABLE_PLATFORMS} }${_pl}"
# shellcheck disable=SC2015
[ -n "${DY_TARGET}" ] && _tgt="${DY_TARGET}" || true
# Dashes are not allowed in variables so let's substitute them on
# the fly with underscores.
@ -150,74 +132,83 @@ done<<-_EOF_
ccimx6ulstarter core-image-base
ccmp15-dvk dey-image-webkit
ccmp13-dvk core-image-base
ccimx93-dvk dey-image-qt
_EOF_
# Set default values if not provided by Jenkins
DY_PLATFORMS="${DY_PLATFORMS:-${AVAILABLE_PLATFORMS}}"
YOCTO_IMGS_DIR="${WORKSPACE}/images"
YOCTO_INST_DIR="${WORKSPACE}/dey.$(echo ${DY_REVISION} | tr '/' '_')"
YOCTO_INST_DIR="${WORKSPACE}/dey.$(echo "${DY_REVISION}" | tr '/' '_')"
YOCTO_PROJ_DIR="${WORKSPACE}/projects"
# If CPUS is unset, set it with the machine cpus
if [ -z "${CPUS}" ]; then
CPUS="$(grep -c processor /proc/cpuinfo)"
fi
[ ${CPUS} -gt 1 ] && MAKE_JOBS="-j${CPUS}"
[ "${CPUS}" -gt 1 ] && MAKE_JOBS="-j${CPUS}"
printf "\n[INFO] Build Yocto \"${DY_REVISION}\" for \"${DY_PLATFORMS}\" (cpus=${CPUS})\n\n"
printf "\n[INFO] Build Yocto \"%s\" for \"%s\" (cpus=%s)\n\n" "${DY_REVISION}" "${DY_PLATFORMS}" "${CPUS}"
# Install DEY
rm -rf ${YOCTO_INST_DIR} && mkdir -p ${YOCTO_INST_DIR}
if pushd ${YOCTO_INST_DIR}; then
rm -rf "${YOCTO_INST_DIR}" && mkdir -p "${YOCTO_INST_DIR}"
if pushd "${YOCTO_INST_DIR}"; then
# Use git ls-remote to check the revision type
if [ "${DY_REVISION}" != "master" ]; then
if git ls-remote --tags --exit-code "${MANIFEST_URL}" "${DY_REVISION}"; then
printf "[INFO] Using tag \"${DY_REVISION}\"\n"
printf "[INFO] Using tag \"%s\"\n" "${DY_REVISION}"
repo_revision="-b refs/tags/${DY_REVISION}"
elif git ls-remote --heads --exit-code "${MANIFEST_URL}" "${DY_REVISION}"; then
printf "[INFO] Using branch \"${DY_REVISION}\"\n"
printf "[INFO] Using branch \"%s\"\n" "${DY_REVISION}"
repo_revision="-b ${DY_REVISION}"
else
error "Revision \"${DY_REVISION}\" not found"
fi
fi
# shellcheck disable=SC2086
yes "" 2>/dev/null | ${REPO} init --no-repo-verify -u ${MANIFEST_URL} ${repo_revision}
${REPO} forall -p -c 'git remote prune $(git remote)'
${REPO} --no-pager forall -j4 -p -c 'git clean -fdx'
# shellcheck disable=SC2016
${REPO} --no-pager forall -j4 -p -c 'git remote prune $(git remote)' || true
# shellcheck disable=SC2086
time ${REPO} sync -d ${MAKE_JOBS}
popd
fi
# Create projects and build
rm -rf ${YOCTO_IMGS_DIR} ${YOCTO_PROJ_DIR}
rm -rf "${YOCTO_IMGS_DIR}" "${YOCTO_PROJ_DIR}"
for platform in ${DY_PLATFORMS}; do
# The variables <platform>_var|tgt got their dashes converted to
# The variable <platform>_tgt got its dashes converted to
# underscores, so we must convert also the ones in ${platform}.
eval platform_targets=\"\${${platform//-/_}_tgt}\"
eval "platform_targets=\"\${${platform//-/_}_tgt}\""
_this_prj_dir="${YOCTO_PROJ_DIR}/${platform}"
_this_img_dir="${YOCTO_IMGS_DIR}/${platform}"
mkdir -p ${_this_img_dir} ${_this_prj_dir}
if pushd ${_this_prj_dir}; then
mkdir -p "${_this_img_dir}" "${_this_prj_dir}"
if pushd "${_this_prj_dir}"; then
# Configure and build the project in a sub-shell to avoid
# mixing environments between different platform's projects
(
export TEMPLATECONF="${TEMPLATECONF:+${TEMPLATECONF}/${platform}}"
MKP_PAGER="" . ${YOCTO_INST_DIR}/mkproject.sh -p ${platform} <<< "y"
# shellcheck disable=SC1091,SC2086
MKP_PAGER="" . ${YOCTO_INST_DIR}/mkproject.sh -p "${platform}" <<< "y"
# Set a common DL_DIR and SSTATE_DIR for all platforms
sed -i -e "/^#DL_DIR ?=/cDL_DIR ?= \"${YOCTO_PROJ_DIR}/downloads\"" \
-e "/^#SSTATE_DIR ?=/cSSTATE_DIR ?= \"${YOCTO_PROJ_DIR}/sstate-cache\"" \
conf/local.conf
printf "${RM_WORK_CFG}" >> conf/local.conf
printf "${ZIP_INSTALLER_CFG}" >> conf/local.conf
printf "${BUILD_TIMESTAMP}" >> conf/local.conf
# Remove all desktop backend distro features if building framebuffer images
if [ "${DY_FB_IMAGE}" = "true" ]; then
printf "${BACKEND_REMOVAL_CFG}" >> conf/local.conf
fi
for target in ${platform_targets}; do
printf "\n[INFO] Building the ${target} target.\n"
time bitbake ${target} $(swu_recipe_name ${target})
{
printf "%s" "${RM_WORK_CFG}"
printf "%s" "${ZIP_INSTALLER_CFG}"
printf "%s" "${BUILD_TIMESTAMP}"
} >> conf/local.conf
for target in ${platform_targets:?}; do
printf "\n[INFO] Building the %s target.\n" "${target}"
# shellcheck disable=SC2046
time bitbake "${target}" $(swu_recipe_name "${target}")
done
purge_sstate
)
copy_images ${_this_img_dir}
copy_images "${_this_img_dir}"
popd
fi
done