mirror of
https://github.com/lingble/meta-tegra.git
synced 2025-10-30 03:52:41 +00:00
tegra-uefi-capsules: include all logic for BUP generation
Drop BUP-specific recipes and move all logic to UEFI capsule generation recipe, as suggested in [1]. [1] https://github.com/OE4T/meta-tegra/discussions/1492 Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
This commit is contained in:
committed by
Matt Madison
parent
ca2f725732
commit
3b28f68df6
@@ -462,25 +462,3 @@ do_image_tegraflash[depends] += "${TEGRAFLASH_PKG_DEPENDS} dtc-native:do_populat
|
||||
virtual/bootloader:do_deploy virtual/secure-os:do_deploy ${TEGRA_SIGNING_EXTRA_DEPS} ${DTB_EXTRA_DEPS} \
|
||||
${@'${TEGRAFLASH_INITRD_FLASH_IMAGE}:do_image_complete' if d.getVar('TEGRAFLASH_INITRD_FLASH_IMAGE') != '' else ''}"
|
||||
IMAGE_TYPEDEP:tegraflash += "${IMAGE_TEGRAFLASH_FS_TYPE}"
|
||||
|
||||
oe_make_bup_payload() {
|
||||
PATH="${STAGING_BINDIR_NATIVE}/${FLASHTOOLS_DIR}:${PATH}"
|
||||
export tosimgfilename=${TOSIMGFILENAME}
|
||||
rm -rf ${WORKDIR}/bup-payload
|
||||
mkdir ${WORKDIR}/bup-payload
|
||||
oldwd="$PWD"
|
||||
cd ${WORKDIR}/bup-payload
|
||||
# BUP generator really wants to use 'boot.img' for the LNX
|
||||
# partition contents
|
||||
tegraflash_populate_package "$1" boot.img ${@tegra_bootcontrol_overlay_list(d, bup=True)}
|
||||
mv generate_bup_payload.sh doflash.sh
|
||||
tegraflash_create_flash_config flash.xml.in boot.img ${STAGING_DATADIR}/tegraflash/bupgen-internal-flash.xml
|
||||
. ./flashvars
|
||||
tegraflash_custom_sign_bup
|
||||
for bup in ${WORKDIR}/bup-payload/${BUP_PAYLOAD_DIR}/*; do
|
||||
[ -e $bup ] || continue
|
||||
BUP_generator.py --contents --check $bup
|
||||
done
|
||||
mv ${WORKDIR}/bup-payload/${BUP_PAYLOAD_DIR}/* .
|
||||
cd "$oldwd"
|
||||
}
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
DESCRIPTION = "Install tegra bup payload file in the location expected by nv_update_engine"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
|
||||
|
||||
COMPATIBLE_MACHINE = "(tegra)"
|
||||
|
||||
inherit tegra-bup
|
||||
|
||||
do_install() {
|
||||
install -d ${D}/opt/ota_package/
|
||||
if [ -e ${DEPLOY_DIR_IMAGE}/${BUPFILENAME}.bl_only.bup-payload ]; then
|
||||
install -m 0644 ${DEPLOY_DIR_IMAGE}/${BUPFILENAME}.bl_only.bup-payload ${D}/opt/ota_package/bl_only_payload
|
||||
fi
|
||||
if [ -e ${DEPLOY_DIR_IMAGE}/${BUPFILENAME}.kernel_only.bup-payload ]; then
|
||||
install -m 0644 ${DEPLOY_DIR_IMAGE}/${BUPFILENAME}.kernel_only.bup-payload ${D}/opt/ota_package/kernel_only_payload
|
||||
fi
|
||||
}
|
||||
|
||||
ALLOW_EMPTY:${PN} = "1"
|
||||
|
||||
do_install[depends] += "${@bup_dependency(d)}"
|
||||
FILES:${PN} = "/opt/ota_package"
|
||||
RDEPENDS:${PN} += "tegra-redundant-boot-update-engine"
|
||||
# For UEFI build - remove once buildpaths issue is resolved there
|
||||
INSANE_SKIP:${PN} = "buildpaths"
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
@@ -2,7 +2,7 @@ DESCRIPTION = "Generate UEFI capsules for bup paylods"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
|
||||
|
||||
inherit tegra-bup deploy
|
||||
inherit tegra-bup deploy image_types_tegra kernel-artifact-names
|
||||
|
||||
TEGRA_UEFI_CAPSULE_SIGNING_CLASS ??= "tegra-uefi-capsule-signing"
|
||||
inherit ${TEGRA_UEFI_CAPSULE_SIGNING_CLASS}
|
||||
@@ -11,13 +11,51 @@ TEGRA_UEFI_CAPSULE_SIGNING_EXTRA_DEPS ??= ""
|
||||
|
||||
COMPATIBLE_MACHINE = "(tegra)"
|
||||
|
||||
DEPENDS += "tegra-bup-payload"
|
||||
TEGRA_SIGNING_EXTRA_DEPS ??= ""
|
||||
|
||||
GUID:tegra194 ?= "be3f5d68-7654-4ed2-838c-2a2faf901a78"
|
||||
GUID:tegra234 ?= "bf0d4599-20d4-414e-b2c5-3595b1cda402"
|
||||
|
||||
do_compile() {
|
||||
# Generate BUP images
|
||||
PATH="${STAGING_BINDIR_NATIVE}/${FLASHTOOLS_DIR}:${PATH}"
|
||||
export tosimgfilename=${TOSIMGFILENAME}
|
||||
rm -rf ${B}/bup-payload
|
||||
mkdir ${B}/bup-payload
|
||||
oldwd="$PWD"
|
||||
cd ${B}/bup-payload
|
||||
# BUP generator really wants to use 'boot.img' for the LNX
|
||||
# partition contents
|
||||
tegraflash_populate_package ${IMAGE_TEGRAFLASH_KERNEL} boot.img ${@tegra_bootcontrol_overlay_list(d, bup=True)}
|
||||
mv generate_bup_payload.sh doflash.sh
|
||||
tegraflash_create_flash_config flash.xml.in boot.img ${STAGING_DATADIR}/tegraflash/bupgen-internal-flash.xml
|
||||
. ./flashvars
|
||||
tegraflash_custom_sign_bup
|
||||
for bup in ${B}/bup-payload/${BUP_PAYLOAD_DIR}/*; do
|
||||
[ -e $bup ] || continue
|
||||
BUP_generator.py --contents --check $bup
|
||||
done
|
||||
mv ${B}/bup-payload/${BUP_PAYLOAD_DIR}/* .
|
||||
cd "$oldwd"
|
||||
|
||||
# Create symlinks BUP payloads with a naming expected by sign_uefi_capsules
|
||||
for f in ${B}/bup-payload/*_only_payload; do
|
||||
[ -e $f ] || continue
|
||||
sfx=$(basename $f _payload)
|
||||
|
||||
ln -sf $f ${B}/${BUPFILENAME}.$sfx.bup-payload
|
||||
done
|
||||
|
||||
# Generate UEFI capsules
|
||||
sign_uefi_capsules
|
||||
|
||||
# Check if capsules were generated successfully
|
||||
if [ ! -e ${B}/tegra-bl.cap ]; then
|
||||
bberror "${B}/tegra-bl.cap wasn't generated"
|
||||
fi
|
||||
if [ -e ${B}/${BUPFILENAME}.kernel.bup_payload -a ! -e ${B}/tegra-kernel.cap ]; then
|
||||
bberror "${B}/tegra-kernel.cap wasn't generated"
|
||||
fi
|
||||
}
|
||||
|
||||
TEGRA_UEFI_CAPSULE_INSTALL_DIR ??= "/opt/nvidia/UpdateCapsule"
|
||||
@@ -53,3 +91,8 @@ do_deploy() {
|
||||
addtask deploy after do_install
|
||||
|
||||
do_compile[depends] += "${@bup_dependency(d)} ${TEGRA_UEFI_CAPSULE_SIGNING_EXTRA_DEPS}"
|
||||
do_compile[depends] += "virtual/kernel:do_deploy tegra-flashtools-native:do_populate_sysroot dtc-native:do_populate_sysroot"
|
||||
do_compile[depends] += "python3-pyyaml-native:do_populate_sysroot"
|
||||
do_compile[depends] += "tegra-redundant-boot-rollback:do_populate_sysroot tegra-bootfiles:do_populate_sysroot"
|
||||
do_compile[depends] += "coreutils-native:do_populate_sysroot ${TEGRA_ESP_IMAGE}:do_image_complete virtual/secure-os:do_deploy"
|
||||
do_compile[depends] += "${TEGRA_SIGNING_EXTRA_DEPS}"
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
DESCRIPTION = "Generates a bootloader update payload for use with nv_update_engine when using a kernel with bundled initramfs"
|
||||
LICENSE = "MIT"
|
||||
|
||||
COMPATIBLE_MACHINE = "(tegra)"
|
||||
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
|
||||
inherit nopackages image_types_tegra deploy kernel-artifact-names
|
||||
|
||||
deltask do_fetch
|
||||
deltask do_unpack
|
||||
deltask do_patch
|
||||
deltask do_configure
|
||||
deltask do_compile
|
||||
deltask do_install
|
||||
deltask do_populate_sysroot
|
||||
|
||||
do_deploy() {
|
||||
if [ ! -z "${INITRAMFS_IMAGE}" -a "${INITRAMFS_IMAGE_BUNDLE}" = "1" ]; then
|
||||
for imageType in ${KERNEL_IMAGETYPES} ; do
|
||||
if [ "$imageType" = "fitImage" ] ; then
|
||||
continue
|
||||
fi
|
||||
initramfs_symlink_name=${imageType}-${INITRAMFS_LINK_NAME}
|
||||
oe_make_bup_payload ${DEPLOY_DIR_IMAGE}/${initramfs_symlink_name}.cboot
|
||||
install -d ${DEPLOYDIR}
|
||||
for f in ${WORKDIR}/bup-payload/*_only_payload; do
|
||||
[ -e $f ] || continue
|
||||
sfx=$(basename $f _payload)
|
||||
install -m 0644 $f ${DEPLOYDIR}/${initramfs_symlink_name}.$sfx.bup-payload
|
||||
done
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
TEGRA_SIGNING_EXTRA_DEPS ??= ""
|
||||
|
||||
do_deploy[depends] += "virtual/kernel:do_deploy tegra-flashtools-native:do_populate_sysroot dtc-native:do_populate_sysroot"
|
||||
do_deploy[depends] += "python3-pyyaml-native:do_populate_sysroot"
|
||||
do_deploy[depends] += "tegra-redundant-boot-rollback:do_populate_sysroot tegra-bootfiles:do_populate_sysroot"
|
||||
do_deploy[depends] += "coreutils-native:do_populate_sysroot ${TEGRA_ESP_IMAGE}:do_image_complete virtual/secure-os:do_deploy"
|
||||
do_deploy[depends] += "${TEGRA_SIGNING_EXTRA_DEPS}"
|
||||
addtask deploy before do_build
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
Reference in New Issue
Block a user