mirror of
				https://github.com/lingble/meta-tegra.git
				synced 2025-10-29 19:42: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:
		 Igor Opaniuk
					Igor Opaniuk
				
			
				
					committed by
					
						 Matt Madison
						Matt Madison
					
				
			
			
				
	
			
			
			 Matt Madison
						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