mirror of
				https://github.com/lingble/meta-tegra.git
				synced 2025-10-30 20:07:55 +00:00 
			
		
		
		
	image_types_tegra: update for UEFI signing
* Package signed kernel DTB files * Add UefiDefaultSecurityKeys overlay when signing is enabled Signed-off-by: Matt Madison <matt@madison.systems>
This commit is contained in:
		 Matt Madison
					Matt Madison
				
			
				
					committed by
					
						 Matt Madison
						Matt Madison
					
				
			
			
				
	
			
			
			 Matt Madison
						Matt Madison
					
				
			
						parent
						
							922def5b1a
						
					
				
				
					commit
					202af166e4
				
			| @@ -21,6 +21,20 @@ def tegra_rootfs_device(d): | ||||
|         return re.sub(r"p[0-9]+$", "", bootdev) | ||||
|     return re.sub("[0-9]+$", "", bootdev) | ||||
|  | ||||
| def tegra_dtb_extra_deps(d): | ||||
|     deps = [] | ||||
|     if d.getVar('PREFERRED_PROVIDER_virtual/dtb'): | ||||
|         deps.append('virtual/dtb:do_populate_sysroot') | ||||
|     if d.getVar('TEGRA_UEFI_DB_KEY') and d.getVar('TEGRA_UEFI_DB_CERT'): | ||||
|         deps.append('tegra-uefi-keys-dtb:do_populate_sysroot') | ||||
|     return ' '.join(deps) | ||||
|  | ||||
| def tegra_bootcontrol_overlay_list(d): | ||||
|     overlays = d.getVar('TEGRA_BOOTCONTROL_OVERLAYS').split() | ||||
|     if d.getVar('TEGRA_UEFI_DB_KEY') and d.getVar('TEGRA_UEFI_DB_CERT'): | ||||
|         overlays.append('UefiDefaultSecurityKeys.dtbo') | ||||
|     return ','.join(overlays) | ||||
|  | ||||
| IMAGE_ROOTFS_SIZE ?= "${@tegra_default_rootfs_size(d)}" | ||||
|  | ||||
| KERNEL_ARGS ??= "" | ||||
| @@ -28,7 +42,7 @@ TEGRA_SIGNING_ARGS ??= "" | ||||
| TEGRA_SIGNING_ENV ??= "" | ||||
| TEGRA_SIGNING_EXCLUDE_TOOLS ??= "" | ||||
| TEGRA_SIGNING_EXTRA_DEPS ??= "" | ||||
| DTB_EXTRA_DEPS ??= "${@'virtual/dtb:do_populate_sysroot' if d.getVar('PREFERRED_PROVIDER_virtual/dtb') else ''}" | ||||
| DTB_EXTRA_DEPS ??= "${@tegra_dtb_extra_deps(d)}" | ||||
| EXTERNAL_KERNEL_DEVICETREE ??= "${@'${RECIPE_SYSROOT}/boot/devicetree' if d.getVar('PREFERRED_PROVIDER_virtual/dtb') else ''}" | ||||
|  | ||||
| TEGRA_BUPGEN_SPECS ??= "boardid=${TEGRA_BOARDID};fab=${TEGRA_FAB};boardrev=${TEGRA_BOARDREV};chiprev=${TEGRA_CHIPREV}" | ||||
| @@ -47,6 +61,7 @@ TEGRAFLASH_ROOTFS_EXTERNAL = "${@'1' if d.getVar('TNSPEC_BOOTDEV') != 'mmcblk0p1 | ||||
| ROOTFS_DEVICE_FOR_INITRD_FLASH = "${@tegra_rootfs_device(d)}" | ||||
| TEGRAFLASH_NO_INTERNAL_STORAGE ??= "0" | ||||
| OVERLAY_DTB_FILE ??= "" | ||||
| USE_UEFI_SIGNED_FILES ?= "${@'true' if d.getVar('TEGRA_UEFI_DB_KEY') and d.getVar('TEGRA_UEFI_DB_CERT') else 'false'}" | ||||
|  | ||||
| def tegra_initrd_image(d): | ||||
|     if d.getVar('IMAGE_UBOOT'): | ||||
| @@ -296,20 +311,26 @@ copy_dtbs() { | ||||
|         dtbf=`basename $dtb` | ||||
|         if [ -e $destination/$dtbf ]; then | ||||
|             bbnote "Overwriting $destination/$dtbf with KERNEL_DEVICETREE content" | ||||
|             rm -f $destination/$dtbf | ||||
|             rm -f $destination/$dtbf $destination/$dtbf.signed | ||||
|         fi | ||||
|         bbnote "Copying KERNEL_DEVICETREE entry $dtb to $destination" | ||||
|         cp -L "${DEPLOY_DIR_IMAGE}/$dtb" $destination/$dtbf | ||||
| 	if ${USE_UEFI_SIGNED_FILES}; then | ||||
|             cp -L "${DEPLOY_DIR_IMAGE}/$dtb.signed" $destination/$dtbf.signed | ||||
| 	fi | ||||
|     done | ||||
|     if [ -n "${EXTERNAL_KERNEL_DEVICETREE}" ]; then | ||||
|         for dtb in $(find "${EXTERNAL_KERNEL_DEVICETREE}" \( -name '*.dtb' \) -printf '%P\n' | sort); do | ||||
|             dtbf=`basename $dtb` | ||||
|             if [ -e $destination/$dtbf ]; then | ||||
|                 bbnote "Overwriting $destination/$dtbf with EXTERNAL_KERNEL_DEVICETREE content" | ||||
|                 rm -f $destination/$dtbf | ||||
|                 rm -f $destination/$dtbf $destination/$dtbf.signed | ||||
|             fi | ||||
|             bbnote "Copying EXTERNAL_KERNEL_DEVICETREE entry $dtb to $destination" | ||||
|             cp -L "${EXTERNAL_KERNEL_DEVICETREE}/$dtb" $destination/$dtbf | ||||
| 	    if ${USE_UEFI_SIGNED_FILES}; then | ||||
|                 cp -L "${DEPLOY_DIR_IMAGE}/$dtb.signed" $destination/$dtbf.signed | ||||
| 	    fi | ||||
|         done | ||||
|     fi | ||||
| } | ||||
| @@ -321,6 +342,9 @@ copy_dtb_overlays() { | ||||
|     if [ -n "${IMAGE_TEGRAFLASH_INITRD_FLASHER}" ]; then | ||||
|         extraoverlays="$extraoverlays L4TConfiguration-rcmboot.dtbo" | ||||
|     fi | ||||
|     if ${USE_UEFI_SIGNED_FILES}; then | ||||
|         extraoverlays="$extraoverlays UefiDefaultSecurityKeys.dtbo" | ||||
|     fi | ||||
|     for dtb in ${TEGRA_BOOTCONTROL_OVERLAYS} ${TEGRA_PLUGIN_MANAGER_OVERLAYS} $extraoverlays; do | ||||
|         dtbf=`basename $dtb` | ||||
|         if [ -n "${EXTERNAL_KERNEL_DEVICETREE}" ]; then | ||||
| @@ -371,7 +395,7 @@ create_tegraflash_pkg:tegra194() { | ||||
|     cp ${STAGING_DATADIR}/tegraflash/flashvars . | ||||
|     sed -i -e "s/@OVERLAY_DTB_FILE@/${OVERLAY_DTB_FILE}/" ./flashvars | ||||
|     cat >> ./flashvars <<EOF | ||||
| BOOTCONTROL_OVERLAYS="${@','.join(d.getVar('TEGRA_BOOTCONTROL_OVERLAYS').split())}" | ||||
| BOOTCONTROL_OVERLAYS="${@tegra_bootcontrol_overlay_list(d)}" | ||||
| PLUGIN_MANAGER_OVERLAYS="${@','.join(d.getVar('TEGRA_PLUGIN_MANAGER_OVERLAYS').split())}" | ||||
| EOF | ||||
|     for f in ${STAGING_DATADIR}/tegraflash/tegra19[4x]-*.cfg; do | ||||
| @@ -498,7 +522,7 @@ create_tegraflash_pkg:tegra234() { | ||||
|     cp ${STAGING_DATADIR}/tegraflash/flashvars . | ||||
|     sed -i -e "s/@OVERLAY_DTB_FILE@/${OVERLAY_DTB_FILE}/" ./flashvars | ||||
|     cat >> ./flashvars <<EOF | ||||
| BOOTCONTROL_OVERLAYS="${@','.join(d.getVar('TEGRA_BOOTCONTROL_OVERLAYS').split())}" | ||||
| BOOTCONTROL_OVERLAYS="${@tegra_bootcontrol_overlay_list(d)}" | ||||
| PLUGIN_MANAGER_OVERLAYS="${@','.join(d.getVar('TEGRA_PLUGIN_MANAGER_OVERLAYS').split())}" | ||||
| EOF | ||||
|  | ||||
| @@ -687,7 +711,7 @@ oe_make_bup_payload() { | ||||
|     cp ${STAGING_DATADIR}/tegraflash/flashvars . | ||||
|     sed -i -e "s/@OVERLAY_DTB_FILE@/${OVERLAY_DTB_FILE}/" ./flashvars | ||||
|     cat >> ./flashvars <<EOF | ||||
| BOOTCONTROL_OVERLAYS="${@','.join(d.getVar('TEGRA_BOOTCONTROL_OVERLAYS').split())}" | ||||
| BOOTCONTROL_OVERLAYS="${@tegra_bootcontrol_overlay_list(d)}" | ||||
| PLUGIN_MANAGER_OVERLAYS="${@','.join(d.getVar('TEGRA_PLUGIN_MANAGER_OVERLAYS').split())}" | ||||
| EOF | ||||
|     if [ "${SOC_FAMILY}" = "tegra194" ]; then | ||||
|   | ||||
		Reference in New Issue
	
	Block a user