diff --git a/.gitmodules b/.gitmodules index 3371daa..4bb593e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -63,3 +63,9 @@ [submodule "platforms/nxp-imx93-yocto/sources/meta-security"] path = platforms/nxp-imx93-yocto/sources/meta-security url = https://git.yoctoproject.org/meta-security +[submodule "platforms/nxp-imx93-yocto/sources/meta-freescale-ml"] + path = platforms/nxp-imx93-yocto/sources/meta-freescale-ml + url = https://github.com/Freescale/meta-freescale-ml.git +[submodule "platforms/nxp-imx93-yocto/sources/meta-freescale-distro"] + path = platforms/nxp-imx93-yocto/sources/meta-freescale-distro + url = https://github.com/Freescale/meta-freescale-distro.git diff --git a/platforms/nxp-imx93-yocto/build-configuration/releases/nxp-6.12.49-2.2.0.conf b/platforms/nxp-imx93-yocto/build-configuration/releases/nxp-6.12.49-2.2.0.conf new file mode 100644 index 0000000..a71bf0b --- /dev/null +++ b/platforms/nxp-imx93-yocto/build-configuration/releases/nxp-6.12.49-2.2.0.conf @@ -0,0 +1,5 @@ +RELEASE_ID="nxp-6.12.49-2.2.0" +BUILD_DIR="build-development-nxp-6.12.49-2.2.0" +MACHINE="geisa-imx93" +DISTRO="geisa-dev" +IMAGE="geisa-dev-image" diff --git a/platforms/nxp-imx93-yocto/releases/nxp-6.12.49-2.2.0.conf b/platforms/nxp-imx93-yocto/releases/nxp-6.12.49-2.2.0.conf new file mode 100644 index 0000000..7b28b30 --- /dev/null +++ b/platforms/nxp-imx93-yocto/releases/nxp-6.12.49-2.2.0.conf @@ -0,0 +1,27 @@ +RELEASE_ID="nxp-6.12.49-2.2.0" +STATUS="experimental" +NXP_BSP_VERSION="6.12.49-2.2.0" +YOCTO_SERIES="walnascar" +BUILD_DIR="build-development-nxp-6.12.49-2.2.0" +MACHINE="geisa-imx93" +DISTRO="geisa-dev" +IMAGE="geisa-dev-image" +SOURCE_IDS="poky meta-arm meta-freescale meta-freescale-distro meta-freescale-ml meta-imx meta-openembedded meta-virtualization meta-clang meta-security" +LAYER_PATHS="sources/meta-clang sources/meta-freescale-distro sources/meta-freescale-ml sources/meta-imx/meta-imx-ml sources/meta-imx/meta-imx-bsp sources/meta-imx/meta-imx-sdk sources/meta-openembedded/meta-webserver sources/meta-openembedded/meta-gnome sources/meta-openembedded/meta-filesystems sources/meta-openembedded/meta-networking sources/meta-openembedded/meta-initramfs sources/meta-openembedded/meta-oe sources/meta-openembedded/meta-xfce sources/meta-openembedded/meta-python sources/meta-openembedded/meta-multimedia sources/meta-openembedded/meta-perl sources/meta-security/meta-parsec sources/meta-virtualization" +BBMASK_PATHS="meta-geisa-community/recipes-kernel/linux/linux-imx_6\.6\.bbappend meta-geisa-community/recipes-libraries/tensorflow-lite/tensorflow-lite-host-tools_2\.16\.2\.bbappend" +GEISA_NXP_MACHINE_INCLUDE="conf/machine/imx93-11x11-lpddr4x-frdm.conf" +GEISA_MACHINE_INCLUDE="conf/machine/geisa-imx93-6.12.49.inc" +KERNEL_VERSION="6.12.49" +KERNEL_SRCREV="df24f9428e38740256a410b983003a478e72a7c0" +UBOOT_VERSION="2025.04" +UBOOT_SRCREV="4ddbad60eff308a5b356fb9ab8734ac382ddd692" +SOURCE_POKY="d0b46a6624ec9c61c47270745dd0b2d5abbe6ac1" +SOURCE_META_ARM="21894cc2ea3197e6bfc1a56d889f757a09dc8b31" +SOURCE_META_FREESCALE="3d2781ad200846183ee3f3391f49512d0ef1b529" +SOURCE_META_FREESCALE_DISTRO="b9c3536b68271c420fe5de36fc284781ceaa32ab" +SOURCE_META_FREESCALE_ML="e55df3c0f515ba62fcc2cc4c8ddee80b99706a40" +SOURCE_META_IMX="1cfbbb8f9ce1d6071775ea6083b79d98597c8206" +SOURCE_META_OPENEMBEDDED="07330a98cf93806b7a4e0170a541b94962ff3960" +SOURCE_META_VIRTUALIZATION="38008d99d5bedc7d9769b9e95e3d6019a2df1698" +SOURCE_META_CLANG="003cba92e982bdd565a6889f28799f8bba14957e" +SOURCE_META_SECURITY="1f7eeb8e84811fa79b98f236ade42dc52d44cfc6" diff --git a/platforms/nxp-imx93-yocto/scripts/geisa-source-state.sh b/platforms/nxp-imx93-yocto/scripts/geisa-source-state.sh index b79ad7b..8181c93 100755 --- a/platforms/nxp-imx93-yocto/scripts/geisa-source-state.sh +++ b/platforms/nxp-imx93-yocto/scripts/geisa-source-state.sh @@ -50,29 +50,37 @@ source_state_path() { printf '%s/%s' "$platform_root" "$(release_profile_source_path "$1")" } +outer_generated_excludes=( + ":(exclude)${prefix}build-development" + ":(exclude)${prefix}build-development-*" +) + outer_status_filtered() { local line path while IFS= read -r line || [ -n "$line" ]; do [ -n "$line" ] || continue path="${line:3}" case "$path" in - "${prefix}"sources/poky|"${prefix}"sources/meta-arm|"${prefix}"sources/meta-freescale|"${prefix}"sources/meta-imx|"${prefix}"sources/meta-imx-frdm|"${prefix}"sources/meta-openembedded|"${prefix}"sources/meta-virtualization|"${prefix}"sources/meta-clang|"${prefix}"sources/meta-security) + "${prefix}"sources/poky|"${prefix}"sources/meta-arm|"${prefix}"sources/meta-freescale|"${prefix}"sources/meta-freescale-distro|"${prefix}"sources/meta-freescale-ml|"${prefix}"sources/meta-imx|"${prefix}"sources/meta-imx-frdm|"${prefix}"sources/meta-openembedded|"${prefix}"sources/meta-virtualization|"${prefix}"sources/meta-clang|"${prefix}"sources/meta-security) ;; *) printf '%s\n' "$line" ;; esac - done < <(git -C "$git_root" status --porcelain=v1 --untracked-files=all) + done < <(git -C "$git_root" status --porcelain=v1 --untracked-files=normal -- . "${outer_generated_excludes[@]}") } outer_excludes=( ":(exclude)${prefix}sources/poky" ":(exclude)${prefix}sources/meta-arm" ":(exclude)${prefix}sources/meta-freescale" + ":(exclude)${prefix}sources/meta-freescale-distro" + ":(exclude)${prefix}sources/meta-freescale-ml" ":(exclude)${prefix}sources/meta-imx" ":(exclude)${prefix}sources/meta-imx-frdm" ":(exclude)${prefix}sources/meta-openembedded" ":(exclude)${prefix}sources/meta-virtualization" ":(exclude)${prefix}sources/meta-clang" ":(exclude)${prefix}sources/meta-security" + "${outer_generated_excludes[@]}" ) source_dirty=false diff --git a/platforms/nxp-imx93-yocto/scripts/release-profile.sh b/platforms/nxp-imx93-yocto/scripts/release-profile.sh index 6e4f025..8cb3a46 100755 --- a/platforms/nxp-imx93-yocto/scripts/release-profile.sh +++ b/platforms/nxp-imx93-yocto/scripts/release-profile.sh @@ -10,13 +10,13 @@ set -euo pipefail GEISA_PLATFORM_ROOT="${GEISA_PLATFORM_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)}" release_profile_error() { printf 'release profile error: %s\n' "$*" >&2; return 1; } -release_profile_known_source_ids=(poky meta-arm meta-freescale meta-imx meta-imx-frdm meta-openembedded meta-virtualization meta-clang meta-security) +release_profile_known_source_ids=(poky meta-arm meta-freescale meta-freescale-distro meta-freescale-ml meta-imx meta-imx-frdm meta-openembedded meta-virtualization meta-clang meta-security) release_profile_source_ids=() release_profile_mask_paths=() release_profile_source_path() { case "$1" in poky) echo sources/poky;; meta-arm) echo sources/meta-arm;; - meta-freescale) echo sources/meta-freescale;; meta-imx) echo sources/meta-imx;; + meta-freescale) echo sources/meta-freescale;; meta-freescale-distro) echo sources/meta-freescale-distro;; meta-freescale-ml) echo sources/meta-freescale-ml;; meta-imx) echo sources/meta-imx;; meta-imx-frdm) echo sources/meta-imx-frdm;; meta-openembedded) echo sources/meta-openembedded;; meta-virtualization) echo sources/meta-virtualization;; @@ -27,7 +27,7 @@ release_profile_source_path() { release_profile_source_var() { case "$1" in poky) echo SOURCE_POKY;; meta-arm) echo SOURCE_META_ARM;; - meta-freescale) echo SOURCE_META_FREESCALE;; meta-imx) echo SOURCE_META_IMX;; + meta-freescale) echo SOURCE_META_FREESCALE;; meta-freescale-distro) echo SOURCE_META_FREESCALE_DISTRO;; meta-freescale-ml) echo SOURCE_META_FREESCALE_ML;; meta-imx) echo SOURCE_META_IMX;; meta-imx-frdm) echo SOURCE_META_IMX_FRDM;; meta-openembedded) echo SOURCE_META_OPENEMBEDDED;; meta-virtualization) echo SOURCE_META_VIRTUALIZATION;; @@ -103,7 +103,7 @@ release_profile_default_id() { release_profile_load() { local file="$1" line key value [ -r "$file" ] || { release_profile_error "missing profile: $file"; return 1; } - unset RELEASE_ID STATUS NXP_BSP_VERSION YOCTO_SERIES BUILD_DIR MACHINE DISTRO IMAGE KERNEL_VERSION KERNEL_SRCREV UBOOT_VERSION UBOOT_SRCREV SOURCE_IDS LAYER_PATHS BBMASK_PATHS GEISA_NXP_MACHINE_INCLUDE GEISA_MACHINE_INCLUDE SOURCE_POKY SOURCE_META_ARM SOURCE_META_FREESCALE SOURCE_META_IMX SOURCE_META_IMX_FRDM SOURCE_META_OPENEMBEDDED SOURCE_META_VIRTUALIZATION SOURCE_META_CLANG SOURCE_META_SECURITY + unset RELEASE_ID STATUS NXP_BSP_VERSION YOCTO_SERIES BUILD_DIR MACHINE DISTRO IMAGE KERNEL_VERSION KERNEL_SRCREV UBOOT_VERSION UBOOT_SRCREV SOURCE_IDS LAYER_PATHS BBMASK_PATHS GEISA_NXP_MACHINE_INCLUDE GEISA_MACHINE_INCLUDE SOURCE_POKY SOURCE_META_ARM SOURCE_META_FREESCALE SOURCE_META_FREESCALE_DISTRO SOURCE_META_FREESCALE_ML SOURCE_META_IMX SOURCE_META_IMX_FRDM SOURCE_META_OPENEMBEDDED SOURCE_META_VIRTUALIZATION SOURCE_META_CLANG SOURCE_META_SECURITY while IFS= read -r line || [ -n "$line" ]; do [ -z "$line" ] || [[ "$line" == \#* ]] && continue [[ "$line" =~ ^([A-Z][A-Z0-9_]*)=\"([^\"]*)\"$ ]] || { @@ -129,7 +129,7 @@ release_profile_load() { ;; esac case "$key" in - RELEASE_ID|STATUS|NXP_BSP_VERSION|YOCTO_SERIES|BUILD_DIR|MACHINE|DISTRO|IMAGE|KERNEL_VERSION|KERNEL_SRCREV|UBOOT_VERSION|UBOOT_SRCREV|SOURCE_IDS|LAYER_PATHS|BBMASK_PATHS|GEISA_NXP_MACHINE_INCLUDE|GEISA_MACHINE_INCLUDE|SOURCE_POKY|SOURCE_META_ARM|SOURCE_META_FREESCALE|SOURCE_META_IMX|SOURCE_META_IMX_FRDM|SOURCE_META_OPENEMBEDDED|SOURCE_META_VIRTUALIZATION|SOURCE_META_CLANG|SOURCE_META_SECURITY) ;; + RELEASE_ID|STATUS|NXP_BSP_VERSION|YOCTO_SERIES|BUILD_DIR|MACHINE|DISTRO|IMAGE|KERNEL_VERSION|KERNEL_SRCREV|UBOOT_VERSION|UBOOT_SRCREV|SOURCE_IDS|LAYER_PATHS|BBMASK_PATHS|GEISA_NXP_MACHINE_INCLUDE|GEISA_MACHINE_INCLUDE|SOURCE_POKY|SOURCE_META_ARM|SOURCE_META_FREESCALE|SOURCE_META_FREESCALE_DISTRO|SOURCE_META_FREESCALE_ML|SOURCE_META_IMX|SOURCE_META_IMX_FRDM|SOURCE_META_OPENEMBEDDED|SOURCE_META_VIRTUALIZATION|SOURCE_META_CLANG|SOURCE_META_SECURITY) ;; *) release_profile_error "unknown key $key in $file"; return 1;; esac printf -v "$key" '%s' "$value" diff --git a/platforms/nxp-imx93-yocto/scripts/test-release-profiles.sh b/platforms/nxp-imx93-yocto/scripts/test-release-profiles.sh index a026284..08d832b 100755 --- a/platforms/nxp-imx93-yocto/scripts/test-release-profiles.sh +++ b/platforms/nxp-imx93-yocto/scripts/test-release-profiles.sh @@ -15,7 +15,9 @@ tmp_root="$(mktemp -d "$tmp_parent/geisa-release-profile-tests.XXXXXX")" || { echo "unable to create release-profile test temporary directory under $tmp_parent" >&2 exit 1 } -trap 'rm -rf "$tmp_root"' EXIT +generated_test_root="$platform_root/build-development-source-state-test.$$" +source_test_file="$platform_root/sources/meta-geisa-community/.geisa-source-state-test.$$" +trap 'rm -rf "$tmp_root" "$generated_test_root" "$source_test_file"' EXIT assert_fails() { if "$@" >"$tmp_root/stdout" 2>"$tmp_root/stderr"; then @@ -41,11 +43,43 @@ fi release_profile_select nxp-6.12.34-2.1.0 release_profile_check_complete [[ " ${SOURCE_IDS} " == *" meta-clang "* && " ${SOURCE_IDS} " == *" meta-security "* ]] + [[ " ${SOURCE_IDS} " != *" meta-freescale-ml "* ]] + [[ " ${LAYER_PATHS} " != *" sources/meta-freescale-ml "* ]] + [[ "${KERNEL_VERSION}" == "6.12.34" ]] + [[ "${KERNEL_SRCREV}" == "be78e49cb4339fd38c9a40019df49b72fbb8bcb7" ]] + [[ "${UBOOT_VERSION}" == "2025.04" ]] + [[ "${UBOOT_SRCREV}" == "44898b9f3cfe5ff881c11ab1c44b714041f2b4ac" ]] +) +( + release_profile_select nxp-6.12.49-2.2.0 + release_profile_check_complete + [[ "${BUILD_DIR}" == "build-development-nxp-6.12.49-2.2.0" ]] + [[ "${GEISA_MACHINE_INCLUDE}" == "conf/machine/geisa-imx93-6.12.49.inc" ]] + [[ "${KERNEL_VERSION}" == "6.12.49" ]] + [[ "${KERNEL_SRCREV}" == "df24f9428e38740256a410b983003a478e72a7c0" ]] + [[ "${UBOOT_VERSION}" == "2025.04" ]] + [[ "${UBOOT_SRCREV}" == "4ddbad60eff308a5b356fb9ab8734ac382ddd692" ]] + [[ "${SOURCE_POKY}" == "d0b46a6624ec9c61c47270745dd0b2d5abbe6ac1" ]] + [[ "${SOURCE_META_ARM}" == "21894cc2ea3197e6bfc1a56d889f757a09dc8b31" ]] + [[ "${SOURCE_META_FREESCALE}" == "3d2781ad200846183ee3f3391f49512d0ef1b529" ]] + [[ "${SOURCE_META_FREESCALE_ML}" == "e55df3c0f515ba62fcc2cc4c8ddee80b99706a40" ]] + [[ "${SOURCE_META_IMX}" == "1cfbbb8f9ce1d6071775ea6083b79d98597c8206" ]] + [[ "${SOURCE_META_OPENEMBEDDED}" == "07330a98cf93806b7a4e0170a541b94962ff3960" ]] + [[ "${SOURCE_META_VIRTUALIZATION}" == "38008d99d5bedc7d9769b9e95e3d6019a2df1698" ]] + [[ "${SOURCE_META_CLANG}" == "003cba92e982bdd565a6889f28799f8bba14957e" ]] + [[ "${SOURCE_META_SECURITY}" == "1f7eeb8e84811fa79b98f236ade42dc52d44cfc6" ]] + [[ " ${SOURCE_IDS} " == *" meta-clang "* && " ${SOURCE_IDS} " == *" meta-security "* ]] + [[ " ${SOURCE_IDS} " == *" meta-freescale-ml "* ]] + [[ " ${LAYER_PATHS} " == *" sources/meta-freescale-ml "* ]] + [[ " ${LAYER_PATHS} " == *" sources/meta-imx/meta-imx-sdk "* ]] + [[ " ${SOURCE_IDS} " == *" meta-freescale-distro "* ]] + [[ " ${LAYER_PATHS} " == *" sources/meta-freescale-distro "* ]] ) # shellcheck disable=SC2154,SC2034 ( release_profile_select nxp-6.6.52-2.2.2 [[ " ${SOURCE_IDS} " != *" meta-clang "* && " ${SOURCE_IDS} " != *" meta-security "* ]] + [[ " ${SOURCE_IDS} " != *" meta-freescale-ml "* ]] ) ( # shellcheck disable=SC2154 @@ -85,7 +119,7 @@ declare -A fake_revs for source_id in "${release_profile_known_source_ids[@]}"; do path="$fake/$(case "$source_id" in poky) echo sources/poky;; meta-arm) echo sources/meta-arm;; - meta-freescale) echo sources/meta-freescale;; meta-imx) echo sources/meta-imx;; + meta-freescale) echo sources/meta-freescale;; meta-freescale-distro) echo sources/meta-freescale-distro;; meta-freescale-ml) echo sources/meta-freescale-ml;; meta-imx) echo sources/meta-imx;; meta-imx-frdm) echo sources/meta-imx-frdm;; meta-openembedded) echo sources/meta-openembedded;; meta-virtualization) echo sources/meta-virtualization;; @@ -146,6 +180,18 @@ done "$state" --release nxp-6.6.52-2.2.2 "$tmp_root/state-a" "$state" --release nxp-6.6.52-2.2.2 "$tmp_root/state-b" cmp "$tmp_root/state-a" "$tmp_root/state-b" + +mkdir -p "$generated_test_root/tmp" +printf '%s\n' generated > "$generated_test_root/tmp/generated-file" +"$state" --release nxp-6.6.52-2.2.2 "$tmp_root/state-generated" +cmp "$tmp_root/state-a" "$tmp_root/state-generated" + +base_digest="$(sed -n 's/^GEISA_SOURCE_DIRTY_DIGEST = "\(.*\)"$/\1/p' "$tmp_root/state-a")" +printf '%s\n' untracked > "$source_test_file" +"$state" --release nxp-6.6.52-2.2.2 "$tmp_root/state-untracked" +grep -Fqx 'GEISA_SOURCE_DIRTY = "true"' "$tmp_root/state-untracked" +untracked_digest="$(sed -n 's/^GEISA_SOURCE_DIRTY_DIGEST = "\(.*\)"$/\1/p' "$tmp_root/state-untracked")" +[ "$base_digest" != "$untracked_digest" ] grep -Fqx 'GEISA_RELEASE_ID = "nxp-6.6.52-2.2.2"' "$tmp_root/state-a" grep -Fqx 'GEISA_SOURCE_RELEASE_MATCH = "true"' "$tmp_root/state-a" grep -Fqx 'GEISA_EXPECTED_KERNEL_VERSION = "6.6.52"' "$tmp_root/state-a" diff --git a/platforms/nxp-imx93-yocto/sources/meta-freescale-distro b/platforms/nxp-imx93-yocto/sources/meta-freescale-distro new file mode 160000 index 0000000..b9c3536 --- /dev/null +++ b/platforms/nxp-imx93-yocto/sources/meta-freescale-distro @@ -0,0 +1 @@ +Subproject commit b9c3536b68271c420fe5de36fc284781ceaa32ab diff --git a/platforms/nxp-imx93-yocto/sources/meta-freescale-ml b/platforms/nxp-imx93-yocto/sources/meta-freescale-ml new file mode 160000 index 0000000..e55df3c --- /dev/null +++ b/platforms/nxp-imx93-yocto/sources/meta-freescale-ml @@ -0,0 +1 @@ +Subproject commit e55df3c0f515ba62fcc2cc4c8ddee80b99706a40 diff --git a/platforms/nxp-imx93-yocto/sources/meta-geisa-community/conf/machine/geisa-imx93-6.12.49.inc b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/conf/machine/geisa-imx93-6.12.49.inc new file mode 100644 index 0000000..81f9c80 --- /dev/null +++ b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/conf/machine/geisa-imx93-6.12.49.inc @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: Apache-2.0 + +require conf/machine/geisa-imx93-6.12.inc + +PREFERRED_VERSION_firmware-ele-imx = "2.0.4" +PREFERRED_VERSION_firmware-imx = "8.30" +GEISA_KERNEL_VERSION = "6.12.49" +GEISA_KERNEL_SRCREV = "df24f9428e38740256a410b983003a478e72a7c0" +GEISA_UBOOT_VERSION = "2025.04" +GEISA_UBOOT_SRCREV = "4ddbad60eff308a5b356fb9ab8734ac382ddd692" diff --git a/platforms/nxp-imx93-yocto/sources/meta-geisa-community/conf/machine/geisa-imx93-6.12.inc b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/conf/machine/geisa-imx93-6.12.inc index 6046f31..813a1bf 100644 --- a/platforms/nxp-imx93-yocto/sources/meta-geisa-community/conf/machine/geisa-imx93-6.12.inc +++ b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/conf/machine/geisa-imx93-6.12.inc @@ -5,3 +5,7 @@ MACHINE_FEATURES:append = " nxpwifi-all-sdio" PREFERRED_VERSION_firmware-ele-imx = "2.0.3" PREFERRED_VERSION_firmware-imx = "8.29" GEISA_TFLITE_RUNTIME_VERSION = "2.19.0" +GEISA_KERNEL_VERSION = "6.12.34" +GEISA_KERNEL_SRCREV = "be78e49cb4339fd38c9a40019df49b72fbb8bcb7" +GEISA_UBOOT_VERSION = "2025.04" +GEISA_UBOOT_SRCREV = "44898b9f3cfe5ff881c11ab1c44b714041f2b4ac" diff --git a/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-bsp/u-boot/u-boot-imx_2025.04.bbappend b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-bsp/u-boot/u-boot-imx_2025.04.bbappend index c5f44d6..4d84419 100644 --- a/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-bsp/u-boot/u-boot-imx_2025.04.bbappend +++ b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-bsp/u-boot/u-boot-imx_2025.04.bbappend @@ -1,3 +1,3 @@ # SPDX-License-Identifier: Apache-2.0 -SRCREV:geisa-imx93-machine = "44898b9f3cfe5ff881c11ab1c44b714041f2b4ac" +SRCREV:geisa-imx93-machine = "${GEISA_UBOOT_SRCREV}" diff --git a/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-devtools/protobuf/protobuf_%.bbappend b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-devtools/protobuf/protobuf_%.bbappend new file mode 100644 index 0000000..5350a32 --- /dev/null +++ b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-devtools/protobuf/protobuf_%.bbappend @@ -0,0 +1,3 @@ +# Build protoc for GEISA reference/development images. The compiler package is +# installed only by geisa-dev-image; application images use the runtime only. +PACKAGECONFIG:append = " compiler" diff --git a/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-image/images/geisa-application-base.bb b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-image/images/geisa-application-base.bb index ac15eca..afbd5e8 100644 --- a/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-image/images/geisa-application-base.bb +++ b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-image/images/geisa-application-base.bb @@ -11,6 +11,7 @@ IMAGE_FSTYPES = "squashfs tar.gz" IMAGE_INSTALL:append = " \ coreutils \ + libasyncns \ libatomic \ libmosquitto1 \ protobuf \ @@ -19,6 +20,40 @@ IMAGE_INSTALL:append = " \ tensorflow-lite-ethosu-delegate \ " +ROOTFS_POSTPROCESS_COMMAND += "geisa_assert_lee_base_libraries;" +geisa_assert_lee_base_libraries() { + for library in \ + libasyncns.so.* \ + libatomic.so.* \ + libcrypto.so.* \ + libutil.so.* \ + libz.so.* \ + libmosquitto.so.* \ + libprotobuf.so.*; do + find "${IMAGE_ROOTFS}${libdir}" -maxdepth 1 \ + \( -type f -o -type l \) -name "$library" -print -quit | grep -q . || \ + bbfatal "GEISA LEE base library is missing: $library" + done + + for library in \ + libc.so.* \ + libgcc_s.so.* \ + libstdc++.so.* \ + libcrypt.so.* \ + libdl.so.* \ + libm.so.* \ + libnsl.so.* \ + libpthread.so.* \ + libresolv.so.* \ + librt.so.* \ + libcap.so.*; do + if ! find "${IMAGE_ROOTFS}${libdir}" -maxdepth 1 \ + \( -type f -o -type l \) -name "$library" -print -quit | grep -q .; then + bbnote "GEISA LEE toolchain runtime library is not independently packaged: $library" + fi + done +} + ROOTFS_POSTPROCESS_COMMAND += "geisa_application_base_eth0_dhcp;" geisa_application_base_eth0_dhcp() { install -d ${IMAGE_ROOTFS}${sysconfdir}/systemd/network diff --git a/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-image/images/geisa-dev-image.bb b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-image/images/geisa-dev-image.bb index f47b76d..d10bf99 100644 --- a/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-image/images/geisa-dev-image.bb +++ b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-image/images/geisa-dev-image.bb @@ -30,6 +30,7 @@ geisa_dev_rootfs_rw() { # /usr/bin/install and /usr/bin/timeout; nodejs supports local development. GEISA_DEV_RUNTIME_INSTALL = " \ coreutils \ + libasyncns \ geisa-platform-mount \ geisa-sudo-policy \ mosquitto-clients \ @@ -75,6 +76,7 @@ GEISA_DEV_DYNAMIC_RENAMED_INSTALL = " \ nanopb-runtime-dev \ nanopb-runtime-source \ protobuf \ + protobuf-compiler \ protobuf-dev \ protobuf-c \ tensorflow-lite \ diff --git a/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-kernel/linux/linux-imx_6.12.bbappend b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-kernel/linux/linux-imx_6.12.bbappend index da5b2cf..af20b4b 100644 --- a/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-kernel/linux/linux-imx_6.12.bbappend +++ b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-kernel/linux/linux-imx_6.12.bbappend @@ -2,8 +2,8 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" -SRCREV:geisa-imx93-machine = "be78e49cb4339fd38c9a40019df49b72fbb8bcb7" -LINUX_VERSION:geisa-imx93-machine = "6.12.34" +SRCREV:geisa-imx93-machine = "${GEISA_KERNEL_SRCREV}" +LINUX_VERSION:geisa-imx93-machine = "${GEISA_KERNEL_VERSION}" SRC_URI:append = " \ file://container.cfg \ diff --git a/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-support/libasyncns/libasyncns_0.8.bb b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-support/libasyncns/libasyncns_0.8.bb new file mode 100644 index 0000000..a4d6e0e --- /dev/null +++ b/platforms/nxp-imx93-yocto/sources/meta-geisa-community/recipes-support/libasyncns/libasyncns_0.8.bb @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +SUMMARY = "Asynchronous name service library" +DESCRIPTION = "Asynchronous DNS resolution library for applications" +HOMEPAGE = "https://0pointer.de/lennart/projects/libasyncns/" +SECTION = "libs" +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://LICENSE;md5=fad9b3332be894bab9bc501572864b29" + +SRC_URI = "https://deb.debian.org/debian/pool/main/liba/libasyncns/libasyncns_${PV}.orig.tar.gz" +SRC_URI[sha256sum] = "4f1a66e746cbe54ff3c2fbada5843df4fbbbe7481d80be003e8d11161935ab74" + +S = "${UNPACKDIR}/libasyncns-${PV}" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--disable-static"