mirror of
				https://github.com/lingble/meta-tegra.git
				synced 2025-10-30 03:52:41 +00:00 
			
		
		
		
	image_types_tegra.bbclass: clean up DTB overlay copies
Copy just the overlays enumerated in OVERLAY_DTB_FILE into the tegraflash package/BUP workspace, and allow for those files to come from the virtual/dtb provider, just as we do for plain DTB files. Also prepare for retirement of the use of OVERLAY_DTB_FILE as bitbake variable, which was a bit awkward to manage. 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
						
							dabb6a7867
						
					
				
				
					commit
					c3a340d41e
				
			| @@ -46,6 +46,7 @@ IMAGE_TEGRAFLASH_ROOTFS ?= "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${IMAGE_TEGRAFLAS | |||||||
| TEGRAFLASH_ROOTFS_EXTERNAL = "${@'1' if d.getVar('TNSPEC_BOOTDEV') != 'mmcblk0p1' else '0'}" | TEGRAFLASH_ROOTFS_EXTERNAL = "${@'1' if d.getVar('TNSPEC_BOOTDEV') != 'mmcblk0p1' else '0'}" | ||||||
| ROOTFS_DEVICE_FOR_INITRD_FLASH = "${@tegra_rootfs_device(d)}" | ROOTFS_DEVICE_FOR_INITRD_FLASH = "${@tegra_rootfs_device(d)}" | ||||||
| TEGRAFLASH_NO_INTERNAL_STORAGE ??= "0" | TEGRAFLASH_NO_INTERNAL_STORAGE ??= "0" | ||||||
|  | OVERLAY_DTB_FILE ??= "" | ||||||
|  |  | ||||||
| def tegra_initrd_image(d): | def tegra_initrd_image(d): | ||||||
|     if d.getVar('IMAGE_UBOOT'): |     if d.getVar('IMAGE_UBOOT'): | ||||||
| @@ -297,22 +298,44 @@ copy_dtbs() { | |||||||
|             bbnote "Overwriting $destination/$dtbf with KERNEL_DEVICETREE content" |             bbnote "Overwriting $destination/$dtbf with KERNEL_DEVICETREE content" | ||||||
|             rm -f $destination/$dtbf |             rm -f $destination/$dtbf | ||||||
|         fi |         fi | ||||||
|         bbnote "Copying KERNEL_DEVICETREE entry $dtbf to $destination" |         bbnote "Copying KERNEL_DEVICETREE entry $dtb to $destination" | ||||||
|         cp -L "${DEPLOY_DIR_IMAGE}/$dtbf" $destination/$dtbf |         cp -L "${DEPLOY_DIR_IMAGE}/$dtb" $destination/$dtbf | ||||||
|     done |     done | ||||||
|     if [ -n "${EXTERNAL_KERNEL_DEVICETREE}" ]; then |     if [ -n "${EXTERNAL_KERNEL_DEVICETREE}" ]; then | ||||||
|         for dtb in $(find "${EXTERNAL_KERNEL_DEVICETREE}" \( -name '*.dtb' -o -name '*.dtbo' \) -printf '%P\n' | sort); do |         for dtb in $(find "${EXTERNAL_KERNEL_DEVICETREE}" \( -name '*.dtb' \) -printf '%P\n' | sort); do | ||||||
|             dtbf=`basename $dtb` |             dtbf=`basename $dtb` | ||||||
|             if [ -e $destination/$dtbf ]; then |             if [ -e $destination/$dtbf ]; then | ||||||
|                 bbnote "Overwriting $destination/$dtbf with EXTERNAL_KERNEL_DEVICETREE content" |                 bbnote "Overwriting $destination/$dtbf with EXTERNAL_KERNEL_DEVICETREE content" | ||||||
|                 rm -f $destination/$dtbf |                 rm -f $destination/$dtbf | ||||||
|             fi |             fi | ||||||
|             bbnote "Copying EXTERNAL_KERNEL_DEVICETREE entry $dtbf to $destination" |             bbnote "Copying EXTERNAL_KERNEL_DEVICETREE entry $dtb to $destination" | ||||||
|             cp -L "${EXTERNAL_KERNEL_DEVICETREE}/$dtbf" $destination/$dtbf |             cp -L "${EXTERNAL_KERNEL_DEVICETREE}/$dtb" $destination/$dtbf | ||||||
|         done |         done | ||||||
|     fi |     fi | ||||||
| } | } | ||||||
|  |  | ||||||
|  | copy_dtb_overlays() { | ||||||
|  |     local destination=$1 | ||||||
|  |     local dtb dtbf extdtb | ||||||
|  |     local extraoverlays=$(echo "${OVERLAY_DTB_FILE}" | sed -e"s/,/ /g") | ||||||
|  |     if [ -n "${IMAGE_TEGRAFLASH_INITRD_FLASHER}" ]; then | ||||||
|  |         extraoverlays="$extraoverlays L4TConfiguration-rcmboot.dtbo" | ||||||
|  |     fi | ||||||
|  |     for dtb in ${TEGRA_BOOTCONTROL_OVERLAYS} ${TEGRA_PLUGIN_MANAGER_OVERLAYS} $extraoverlays; do | ||||||
|  |         dtbf=`basename $dtb` | ||||||
|  |         if [ -n "${EXTERNAL_KERNEL_DEVICETREE}" ]; then | ||||||
|  |             local extdtb=$(find "${EXTERNAL_KERNEL_DEVICETREE}" -name $dtbf -printf '%P' 2>/dev/null) | ||||||
|  | 	    if [ -n "$extdtb" ]; then | ||||||
|  | 	        bbnote "Copying external overlay $extdtb to $destination" | ||||||
|  | 		cp -L "${EXTERNAL_KERNEL_DEVICETREE}/$extdtb" $destination/$dtbf | ||||||
|  | 		continue | ||||||
|  | 	    fi | ||||||
|  | 	fi | ||||||
|  | 	bbnote "Copying overlay $dtb to $destination" | ||||||
|  | 	cp -L "${DEPLOY_DIR_IMAGE}/$dtb" $destination/$dtbf | ||||||
|  |     done | ||||||
|  | } | ||||||
|  |  | ||||||
| create_tegraflash_pkg() { | create_tegraflash_pkg() { | ||||||
|     : |     : | ||||||
| } | } | ||||||
| @@ -347,14 +370,18 @@ create_tegraflash_pkg:tegra194() { | |||||||
|     cp -R ${STAGING_DATADIR}/nv_tegra/rollback/t${@d.getVar('NVIDIA_CHIP')[2:]}x ./rollback/ |     cp -R ${STAGING_DATADIR}/nv_tegra/rollback/t${@d.getVar('NVIDIA_CHIP')[2:]}x ./rollback/ | ||||||
|     cp ${STAGING_DATADIR}/tegraflash/flashvars . |     cp ${STAGING_DATADIR}/tegraflash/flashvars . | ||||||
|     sed -i -e "s/@OVERLAY_DTB_FILE@/${OVERLAY_DTB_FILE}/" ./flashvars |     sed -i -e "s/@OVERLAY_DTB_FILE@/${OVERLAY_DTB_FILE}/" ./flashvars | ||||||
|  |     cat >> ./flashvars <<EOF | ||||||
|  | BOOTCONTROL_OVERLAYS="${@','.join(d.getVar('TEGRA_BOOTCONTROL_OVERLAYS').split())}" | ||||||
|  | PLUGIN_MANAGER_OVERLAYS="${@','.join(d.getVar('TEGRA_PLUGIN_MANAGER_OVERLAYS').split())}" | ||||||
|  | EOF | ||||||
|     for f in ${STAGING_DATADIR}/tegraflash/tegra19[4x]-*.cfg; do |     for f in ${STAGING_DATADIR}/tegraflash/tegra19[4x]-*.cfg; do | ||||||
|         cp $f . |         cp $f . | ||||||
|     done |     done | ||||||
|     for f in ${STAGING_DATADIR}/tegraflash/tegra194-*-bpmp-*.dtb; do |     for f in ${STAGING_DATADIR}/tegraflash/tegra194-*-bpmp-*.dtb; do | ||||||
|         cp $f . |         cp $f . | ||||||
|     done |     done | ||||||
|     cp ${DEPLOY_DIR_IMAGE}/*.dtbo . |  | ||||||
|     copy_dtbs "${WORKDIR}/tegraflash" |     copy_dtbs "${WORKDIR}/tegraflash" | ||||||
|  |     copy_dtb_overlays "${WORKDIR}/tegraflash" | ||||||
|     if [ "${TEGRA_SIGNING_EXCLUDE_TOOLS}" != "1" ]; then |     if [ "${TEGRA_SIGNING_EXCLUDE_TOOLS}" != "1" ]; then | ||||||
|         cp -R ${STAGING_BINDIR_NATIVE}/${FLASHTOOLS_DIR}/* . |         cp -R ${STAGING_BINDIR_NATIVE}/${FLASHTOOLS_DIR}/* . | ||||||
| 	if [ -z "${IMAGE_TEGRAFLASH_INITRD_FLASHER}" ]; then | 	if [ -z "${IMAGE_TEGRAFLASH_INITRD_FLASHER}" ]; then | ||||||
| @@ -470,6 +497,10 @@ create_tegraflash_pkg:tegra234() { | |||||||
|     # Copy and update flashvars |     # Copy and update flashvars | ||||||
|     cp ${STAGING_DATADIR}/tegraflash/flashvars . |     cp ${STAGING_DATADIR}/tegraflash/flashvars . | ||||||
|     sed -i -e "s/@OVERLAY_DTB_FILE@/${OVERLAY_DTB_FILE}/" ./flashvars |     sed -i -e "s/@OVERLAY_DTB_FILE@/${OVERLAY_DTB_FILE}/" ./flashvars | ||||||
|  |     cat >> ./flashvars <<EOF | ||||||
|  | BOOTCONTROL_OVERLAYS="${@','.join(d.getVar('TEGRA_BOOTCONTROL_OVERLAYS').split())}" | ||||||
|  | PLUGIN_MANAGER_OVERLAYS="${@','.join(d.getVar('TEGRA_PLUGIN_MANAGER_OVERLAYS').split())}" | ||||||
|  | EOF | ||||||
|  |  | ||||||
|     for f in ${STAGING_DATADIR}/tegraflash/bpmp_t234-*.bin; do |     for f in ${STAGING_DATADIR}/tegraflash/bpmp_t234-*.bin; do | ||||||
|         cp $f . |         cp $f . | ||||||
| @@ -477,11 +508,11 @@ create_tegraflash_pkg:tegra234() { | |||||||
|     for f in ${STAGING_DATADIR}/tegraflash/tegra234-*.dts*; do |     for f in ${STAGING_DATADIR}/tegraflash/tegra234-*.dts*; do | ||||||
|         cp $f . |         cp $f . | ||||||
|     done |     done | ||||||
|     cp ${DEPLOY_DIR_IMAGE}/*.dtbo . |  | ||||||
|     for f in ${STAGING_DATADIR}/tegraflash/tegra234-bpmp-*.dtb; do |     for f in ${STAGING_DATADIR}/tegraflash/tegra234-bpmp-*.dtb; do | ||||||
|         cp $f . |         cp $f . | ||||||
|     done |     done | ||||||
|     copy_dtbs "${WORKDIR}/tegraflash" |     copy_dtbs "${WORKDIR}/tegraflash" | ||||||
|  |     copy_dtb_overlays "${WORKDIR}/tegraflash" | ||||||
|     if [ "${TEGRA_SIGNING_EXCLUDE_TOOLS}" != "1" ]; then |     if [ "${TEGRA_SIGNING_EXCLUDE_TOOLS}" != "1" ]; then | ||||||
|         cp -R ${STAGING_BINDIR_NATIVE}/${FLASHTOOLS_DIR}/* . |         cp -R ${STAGING_BINDIR_NATIVE}/${FLASHTOOLS_DIR}/* . | ||||||
| 	if [ -z "${IMAGE_TEGRAFLASH_INITRD_FLASHER}" ]; then | 	if [ -z "${IMAGE_TEGRAFLASH_INITRD_FLASHER}" ]; then | ||||||
| @@ -654,10 +685,13 @@ oe_make_bup_payload() { | |||||||
|         cp "${STAGING_DATADIR}/tegraflash/$f" . |         cp "${STAGING_DATADIR}/tegraflash/$f" . | ||||||
|     done |     done | ||||||
|     cp ${STAGING_DATADIR}/tegraflash/flashvars . |     cp ${STAGING_DATADIR}/tegraflash/flashvars . | ||||||
|     cp ${DEPLOY_DIR_IMAGE}/*.dtbo . |     sed -i -e "s/@OVERLAY_DTB_FILE@/${OVERLAY_DTB_FILE}/" ./flashvars | ||||||
|  |     cat >> ./flashvars <<EOF | ||||||
|  | BOOTCONTROL_OVERLAYS="${@','.join(d.getVar('TEGRA_BOOTCONTROL_OVERLAYS').split())}" | ||||||
|  | PLUGIN_MANAGER_OVERLAYS="${@','.join(d.getVar('TEGRA_PLUGIN_MANAGER_OVERLAYS').split())}" | ||||||
|  | EOF | ||||||
|     if [ "${SOC_FAMILY}" = "tegra194" ]; then |     if [ "${SOC_FAMILY}" = "tegra194" ]; then | ||||||
|         cp mb1_t194_prod.bin mb1_b_t194_prod.bin |         cp mb1_t194_prod.bin mb1_b_t194_prod.bin | ||||||
|         sed -i -e "s/@OVERLAY_DTB_FILE@/${OVERLAY_DTB_FILE}/" ./flashvars |  | ||||||
|         for f in ${STAGING_DATADIR}/tegraflash/tegra19[4x]-*.cfg; do |         for f in ${STAGING_DATADIR}/tegraflash/tegra19[4x]-*.cfg; do | ||||||
|             cp $f . |             cp $f . | ||||||
|         done |         done | ||||||
| @@ -665,7 +699,6 @@ oe_make_bup_payload() { | |||||||
|             cp $f . |             cp $f . | ||||||
|         done |         done | ||||||
|     elif [ "${SOC_FAMILY}" = "tegra234" ]; then |     elif [ "${SOC_FAMILY}" = "tegra234" ]; then | ||||||
|         sed -i -e "s/@OVERLAY_DTB_FILE@/${OVERLAY_DTB_FILE}/" ./flashvars |  | ||||||
| 	for f in ${STAGING_DATADIR}/tegraflash/bpmp_t234-*.bin; do | 	for f in ${STAGING_DATADIR}/tegraflash/bpmp_t234-*.bin; do | ||||||
|             cp $f . |             cp $f . | ||||||
| 	done | 	done | ||||||
| @@ -678,6 +711,7 @@ oe_make_bup_payload() { | |||||||
|     fi |     fi | ||||||
|     . ./flashvars |     . ./flashvars | ||||||
|     copy_dtbs "${WORKDIR}/bup-payload" |     copy_dtbs "${WORKDIR}/bup-payload" | ||||||
|  |     copy_dtb_overlays "${WORKDIR}/bup-payload" | ||||||
|     if [ -n "${NVIDIA_BOARD_CFG}" ]; then |     if [ -n "${NVIDIA_BOARD_CFG}" ]; then | ||||||
|         cp "${STAGING_DATADIR}/tegraflash/board_config_${MACHINE}.xml" . |         cp "${STAGING_DATADIR}/tegraflash/board_config_${MACHINE}.xml" . | ||||||
|         boardcfg=board_config_${MACHINE}.xml |         boardcfg=board_config_${MACHINE}.xml | ||||||
| @@ -719,5 +753,8 @@ create_bup_payload_image() { | |||||||
| create_bup_payload_image[vardepsexclude] += "DATETIME" | create_bup_payload_image[vardepsexclude] += "DATETIME" | ||||||
|  |  | ||||||
| CONVERSIONTYPES += "bup-payload" | CONVERSIONTYPES += "bup-payload" | ||||||
| CONVERSION_DEPENDS_bup-payload = "tegra-flashtools-native python3-pyyaml-native coreutils-native tegra-bootfiles tegra-redundant-boot-rollback dtc-native virtual/bootloader:do_deploy virtual/kernel:do_deploy virtual/secure-os:do_deploy ${TEGRA_ESP_IMAGE}:do_image_complete ${TEGRA_SIGNING_EXTRA_DEPS} ${DTB_EXTRA_DEPS}" | CONVERSION_DEPENDS_bup-payload = "tegra-flashtools-native python3-pyyaml-native coreutils-native tegra-bootfiles \ | ||||||
|  |                                   tegra-redundant-boot-rollback dtc-native \ | ||||||
|  |                                   virtual/bootloader:do_deploy virtual/kernel:do_deploy virtual/secure-os:do_deploy \ | ||||||
|  |                                   ${TEGRA_ESP_IMAGE}:do_image_complete ${TEGRA_SIGNING_EXTRA_DEPS} ${DTB_EXTRA_DEPS}" | ||||||
| CONVERSION_CMD:bup-payload = "create_bup_payload_image ${type}" | CONVERSION_CMD:bup-payload = "create_bup_payload_image ${type}" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user