diff --git a/jetson-xavier-nx-devkit-emmc.coffee b/jetson-xavier-nx-devkit-emmc.coffee deleted file mode 100644 index 4f2e3e99a..000000000 --- a/jetson-xavier-nx-devkit-emmc.coffee +++ /dev/null @@ -1,44 +0,0 @@ -deviceTypesCommon = require '@resin.io/device-types/common' -{ networkOptions, commonImg, instructions } = deviceTypesCommon - -BOARD_PREPARE = 'Put the NVidia Jetson Xavier NX board in recovery mode' -FLASH_TOOL = 'Unzip BalenaOS image and use Jetson Flash to provision the device.' -DONE_FLASHING = 'After flashing is completed, please wait until the board is rebooted' -module.exports = - version: 1 - slug: 'jetson-xavier-nx-devkit-emmc' - aliases: [ 'jetson-xavier-nx-devkit-emmc' ] - name: 'Nvidia Jetson Xavier NX Devkit eMMC' - arch: 'aarch64' - state: 'released' - - instructions: [ - BOARD_PREPARE - FLASH_TOOL - DONE_FLASHING - ] - - gettingStartedLink: - windows: 'https://docs.balena.io/jetson-xavier-nx-devkit-emmc/nodejs/getting-started/#adding-your-first-device' - osx: 'https://docs.balena.io/jetson-xavier-nx-devkit-emmc/nodejs/getting-started/#adding-your-first-device' - linux: 'https://docs.balena.io/jetson-xavier-nx-devkit-emmc/nodejs/getting-started/#adding-your-first-device' - - supportsBlink: false - - yocto: - machine: 'jetson-xavier-nx-devkit-emmc' - image: 'balena-image' - fstype: 'balenaos-img' - version: 'yocto-honister' - deployArtifact: 'balena-image-jetson-xavier-nx-devkit-emmc.balenaos-img' - compressed: true - - options: [ networkOptions.group ] - - configuration: - config: - partition: - primary: 9 - path: '/config.json' - - initialization: commonImg.initialization diff --git a/jetson-xavier-nx-devkit.coffee b/jetson-xavier-nx-devkit.coffee deleted file mode 100644 index 0755e86c4..000000000 --- a/jetson-xavier-nx-devkit.coffee +++ /dev/null @@ -1,45 +0,0 @@ -deviceTypesCommon = require '@resin.io/device-types/common' -{ networkOptions, commonImg, instructions } = deviceTypesCommon - -BOARD_PREPARE = 'Put the NVidia Jetson Xavier NX Devkit SD-CARD board in recovery mode' -FLASH_TOOL = 'Unzip BalenaOS image and use Jetson Flash to provision the device.' -DONE_FLASHING = 'After flashing is completed, please wait until the board is rebooted' - -module.exports = - version: 1 - slug: 'jetson-xavier-nx-devkit' - aliases: [ 'jetson-xavier-nx-devkit' ] - name: 'Nvidia Jetson Xavier NX Devkit SD-CARD' - arch: 'aarch64' - state: 'released' - - instructions: [ - BOARD_PREPARE - FLASH_TOOL - DONE_FLASHING - ] - - gettingStartedLink: - windows: 'https://docs.balena.io/jetson-xavier-nx-devkit-sd-card/nodejs/getting-started/#adding-your-first-device' - osx: 'https://docs.balena.io/jetson-xavier-nx-devkit-sd-card/nodejs/getting-started/#adding-your-first-device' - linux: 'https://docs.balena.io/jetson-xavier-nx-devkit-sd-card/nodejs/getting-started/#adding-your-first-device' - - supportsBlink: false - - yocto: - machine: 'jetson-xavier-nx-devkit' - image: 'balena-image' - fstype: 'balenaos-img' - version: 'yocto-honister' - deployArtifact: 'balena-image-jetson-xavier-nx-devkit.balenaos-img' - compressed: true - - options: [ networkOptions.group ] - - configuration: - config: - partition: - primary: 9 - path: '/config.json' - - initialization: commonImg.initialization diff --git a/jetson-xavier.coffee b/jetson-xavier.coffee deleted file mode 100644 index c43ed29c4..000000000 --- a/jetson-xavier.coffee +++ /dev/null @@ -1,44 +0,0 @@ -deviceTypesCommon = require '@resin.io/device-types/common' -{ networkOptions, commonImg, instructions } = deviceTypesCommon - -BOARD_PREPARE = 'Put the NVidia Jetson Xavier board in recovery mode' -FLASH_TOOL = 'Unzip BalenaOS image and use Jetson Flash to provision the device.' -DONE_FLASHING = 'After flashing is completed, please wait until the board is rebooted' -module.exports = - version: 1 - slug: 'jetson-xavier' - aliases: [ 'jetson-xavier' ] - name: 'Nvidia Jetson Xavier AGX' - arch: 'aarch64' - state: 'released' - - instructions: [ - BOARD_PREPARE - FLASH_TOOL - DONE_FLASHING - ] - - gettingStartedLink: - windows: 'https://docs.balena.io/jetson-xavier/nodejs/getting-started/#adding-your-first-device' - osx: 'https://docs.balena.io/jetson-xavier/nodejs/getting-started/#adding-your-first-device' - linux: 'https://docs.balena.io/jetson-xavier/nodejs/getting-started/#adding-your-first-device' - - supportsBlink: false - - yocto: - machine: 'jetson-xavier' - image: 'balena-image' - fstype: 'balenaos-img' - version: 'yocto-honister' - deployArtifact: 'balena-image-jetson-xavier.balenaos-img' - compressed: true - - options: [ networkOptions.group ] - - configuration: - config: - partition: - primary: 37 - path: '/config.json' - - initialization: commonImg.initialization diff --git a/layers/meta-balena-jetson/recipes-bsp/cboot/cboot-t19x_32.7.3.bbappend b/layers/meta-balena-jetson/recipes-bsp/cboot/cboot-t19x_32.7.3.bbappend deleted file mode 100644 index 04dee138b..000000000 --- a/layers/meta-balena-jetson/recipes-bsp/cboot/cboot-t19x_32.7.3.bbappend +++ /dev/null @@ -1,7 +0,0 @@ -FILESEXTRAPATHS:prepend := "${THISDIR}/files:" - -SRC_URI:append:jetson-xavier-nx-devkit = " \ - file://0030-removable_boot-Reset-if-SD-CARD-not-found-or-loading.patch \ -" - -SRC_URI:append = " file://0031-tegra194-Set-SD-eMMC-boot-order-as-default-priority.patch " diff --git a/layers/meta-balena-jetson/recipes-bsp/cboot/files/0030-removable_boot-Reset-if-SD-CARD-not-found-or-loading.patch b/layers/meta-balena-jetson/recipes-bsp/cboot/files/0030-removable_boot-Reset-if-SD-CARD-not-found-or-loading.patch deleted file mode 100644 index 2ff12e915..000000000 --- a/layers/meta-balena-jetson/recipes-bsp/cboot/files/0030-removable_boot-Reset-if-SD-CARD-not-found-or-loading.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 5a29c3d4ab353fb4923edee497663d120fc66456 Mon Sep 17 00:00:00 2001 -From: Alexandru Costache -Date: Sat, 5 Feb 2022 18:24:42 +0100 -Subject: [PATCH] Reset if medium not found or loading kernel/dtb failed - -After multiple reboots it may happen that cboot can't find -the kernel and dtb partitions on the SD-CARD. - -Let's reset in these cases. - -Upstream-status: Inappropriate [configuration] -Signed-off-by: Alexandru Costache ---- - bootloader/partner/t18x/cboot/platform/tegra_shared/debug.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/bootloader/partner/t18x/cboot/platform/tegra_shared/debug.c b/bootloader/partner/t18x/cboot/platform/tegra_shared/debug.c -index a1cc9ca..b174854 100644 ---- a/bootloader/partner/t18x/cboot/platform/tegra_shared/debug.c -+++ b/bootloader/partner/t18x/cboot/platform/tegra_shared/debug.c -@@ -15,6 +15,7 @@ - #include - #include - #include -+#include - #include - - #if defined(CONFIG_DEBUG_TIMESTAMP) -@@ -91,7 +92,9 @@ int platform_dgetc(char *c, bool wait) - - void platform_halt(void) - { -- dprintf(ALWAYS, "HALT: spinning forever...\n"); -+ dprintf(ALWAYS, "Will reset in 10 seconds...\n"); -+ tegrabl_mdelay(10 * 1000); -+ tegrabl_reset(); - for(;;); - } - --- -2.17.1 - diff --git a/layers/meta-balena-jetson/recipes-bsp/cboot/files/0031-tegra194-Set-SD-eMMC-boot-order-as-default-priority.patch b/layers/meta-balena-jetson/recipes-bsp/cboot/files/0031-tegra194-Set-SD-eMMC-boot-order-as-default-priority.patch deleted file mode 100644 index 357ae3829..000000000 --- a/layers/meta-balena-jetson/recipes-bsp/cboot/files/0031-tegra194-Set-SD-eMMC-boot-order-as-default-priority.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 47cbf8ebeaf0961eaff051e52ec1eb7640957a60 Mon Sep 17 00:00:00 2001 -From: Alexandru Costache -Date: Mon, 2 May 2022 11:35:31 +0200 -Subject: [PATCH 1/2] tegra194: Set SD/eMMC boot order as default priority - -We don't disable the rest, just in case users need to do -quick tests with another distribution like ubuntu, -for comparison. - -Upstream-status: Inappropriate[configuration] -Signed-off-by: Alexandru Costache ---- - bootloader/partner/common/lib/cbo/tegrabl_cbo.c | 6 +++--- - bootloader/partner/t18x/cboot/platform/t194/platform.c | 7 ++++--- - 2 files changed, 7 insertions(+), 6 deletions(-) - -diff --git a/bootloader/partner/common/lib/cbo/tegrabl_cbo.c b/bootloader/partner/common/lib/cbo/tegrabl_cbo.c -index cbc7e52..c3c913d 100644 ---- a/bootloader/partner/common/lib/cbo/tegrabl_cbo.c -+++ b/bootloader/partner/common/lib/cbo/tegrabl_cbo.c -@@ -36,18 +36,18 @@ static char **p_boot_dev_order; - static const char *default_boot_dev_order[] = { - /* Specified in the order of priority from top to bottom */ - "sd", -+ "emmc", - "usb", - "nvme", -- "emmc", - "net", - }; - - static uint8_t default_boot_order[NUM_SECONDARY_STORAGE_DEVICES] = { - /* Specified in the order of priority from top to bottom */ - BOOT_FROM_SD, -+ BOOT_FROM_BUILTIN_STORAGE, - BOOT_FROM_USB, - BOOT_FROM_NVME, -- BOOT_FROM_BUILTIN_STORAGE, - BOOT_FROM_NETWORK, - BOOT_DEFAULT, - }; -@@ -64,9 +64,9 @@ char *boot_cfg_vars[] = { - - static struct boot_devices g_boot_devices[] = { - {"sd", BOOT_FROM_SD}, -+ {"emmc", BOOT_FROM_BUILTIN_STORAGE}, - {"usb", BOOT_FROM_USB}, - {"net", BOOT_FROM_NETWORK}, -- {"emmc", BOOT_FROM_BUILTIN_STORAGE}, - {"ufs", BOOT_FROM_BUILTIN_STORAGE}, - {"sata", BOOT_FROM_BUILTIN_STORAGE}, - {"nvme", BOOT_FROM_NVME}, -diff --git a/bootloader/partner/t18x/cboot/platform/t194/platform.c b/bootloader/partner/t18x/cboot/platform/t194/platform.c -index 815f90e..537649d 100644 ---- a/bootloader/partner/t18x/cboot/platform/t194/platform.c -+++ b/bootloader/partner/t18x/cboot/platform/t194/platform.c -@@ -669,14 +669,15 @@ void platform_init(void) - } - #endif - -- pr_info("Load in CBoot Boot Options partition and parse it\n"); -+ pr_info("Ensure no boot option file is read from any raw partition and use default balenaOS boot order\n"); -+ /* - err = tegrabl_read_cbo(CBO_PARTITION); - if (err != TEGRABL_NO_ERROR) { - pr_warn("%s: tegrabl_read_cbo failed with error %#x\n", __func__, err); - is_cbo_read = false; - } -- -- (void)tegrabl_cbo_parse_info(is_cbo_read); -+ */ -+ (void)tegrabl_cbo_parse_info(false); - - #if defined(CONFIG_ENABLE_SHELL) - enter_shell_upon_user_request(); --- -2.17.1 - diff --git a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/boot0_t194.bin.gz b/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/boot0_t194.bin.gz deleted file mode 100644 index 43eb61cc0..000000000 Binary files a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/boot0_t194.bin.gz and /dev/null differ diff --git a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/boot0_t194_nx_sd.bindiff b/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/boot0_t194_nx_sd.bindiff deleted file mode 100644 index 8fb8ab1fb..000000000 Binary files a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/boot0_t194_nx_sd.bindiff and /dev/null differ diff --git a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/partition_specification194.txt b/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/partition_specification194.txt deleted file mode 100644 index 5e91dc0fe..000000000 --- a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/partition_specification194.txt +++ /dev/null @@ -1,36 +0,0 @@ -mts-mce:mce_c10_prod_cr_sigheader.bin.encrypt:512000 -mts-mce_b:mce_c10_prod_cr_sigheader.bin.encrypt:512000 -mts-proper:mts_c10_prod_cr_sigheader.bin.encrypt:4194304 -mts-proper_b:mts_c10_prod_cr_sigheader.bin.encrypt:4194304 -cpu-bootloader:cboot_t194_sigheader.bin.encrypt:524288 -cpu-bootloader_b:cboot_t194_sigheader.bin.encrypt:524288 -bootloader-dtb:[DTB_NAME]_sigheader.dtb.encrypt:393216 -bootloader-dtb_b:[DTB_NAME]_sigheader.dtb.encrypt:393216 -secure-os:tos-trusty_t194_sigheader.img.encrypt:2097152 -secure-os_b:tos-trusty_t194_sigheader.img.encrypt:2097152 -eks:eks_sigheader.img.encrypt:131072 -eks_b:eks_sigheader.img.encrypt:131072 -bpmp-fw:bpmp_t194_sigheader.bin.encrypt:1048576 -bpmp-fw_b:bpmp_t194_sigheader.bin.encrypt:1048576 -bpmp-fw-dtb:tegra194-a02-bpmp-p2888-a04_sigheader.dtb.encrypt:1048576 -bpmp-fw-dtb_b:tegra194-a02-bpmp-p2888-a04_sigheader.dtb.encrypt:1048576 -xusb-fw:xusb_sil_rel_fw:262144 -xusb-fw_b:xusb_sil_rel_fw:262144 -rce-fw:camera-rtcpu-rce_sigheader.img.encrypt:524288 -rce-fw_b:camera-rtcpu-rce_sigheader.img.encrypt:524288 -adsp-fw:adsp-fw_sigheader.bin.encrypt:4194304 -adsp-fw_b:adsp-fw_sigheader.bin.encrypt:4194304 -sce-fw:none.bin:524288 -sce-fw_b:none.bin:524288 -sc7:warmboot_t194_prod_sigheader.bin.encrypt:6291456 -sc7_b:warmboot_t194_prod_sigheader.bin.encrypt:6291456 -BMP:bmp.blob:134217728 -BMP_b:bmp.blob:134217728 -kernel:boot_sigheader.img.encrypt:67108864 -kernel_b:boot_sigheader.img.encrypt:67108864 -kernel-dtb:[DTB_NAME]_sigheader.dtb.encrypt:524288 -kernel-dtb_b:[DTB_NAME]_sigheader.dtb.encrypt:524288 -CPUBL-CFG:none.bin:1048576 -RP1:none.bin:8388608 -RP2:none.bin:8388608 -PADDING:none.bin:4722688 diff --git a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/partition_specification194_nxde.txt b/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/partition_specification194_nxde.txt deleted file mode 100644 index e27ff932c..000000000 --- a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/partition_specification194_nxde.txt +++ /dev/null @@ -1,8 +0,0 @@ -kernel:boot_sigheader.img.encrypt:67108864 -kernel_b:boot_sigheader.img.encrypt:67108864 -kernel-dtb:[DTBNAME]_sigheader.dtb.encrypt:524288 -kernel-dtb_b:[DTBNAME]_sigheader.dtb.encrypt:524288 -recovery-dtb:[DTBNAME]_sigheader.dtb.encrypt:524288 -kernel-bootctrl:none.bin:262144 -kernel-bootctrl_b:none.bin:262144 -PADDING:none.bin:333426688 diff --git a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/partition_specification194_nxde_sdcard.txt b/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/partition_specification194_nxde_sdcard.txt deleted file mode 100644 index e27ff932c..000000000 --- a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/partition_specification194_nxde_sdcard.txt +++ /dev/null @@ -1,8 +0,0 @@ -kernel:boot_sigheader.img.encrypt:67108864 -kernel_b:boot_sigheader.img.encrypt:67108864 -kernel-dtb:[DTBNAME]_sigheader.dtb.encrypt:524288 -kernel-dtb_b:[DTBNAME]_sigheader.dtb.encrypt:524288 -recovery-dtb:[DTBNAME]_sigheader.dtb.encrypt:524288 -kernel-bootctrl:none.bin:262144 -kernel-bootctrl_b:none.bin:262144 -PADDING:none.bin:333426688 diff --git a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/resinOS-flash194.xml b/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/resinOS-flash194.xml deleted file mode 100644 index 747fd6b94..000000000 --- a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/resinOS-flash194.xml +++ /dev/null @@ -1,526 +0,0 @@ - - - - sequential - basic - 32768 - 0 - 8 - 0 - - - sequential - basic - 262144 - 0 - 8 - 0 - mb1_t194_prod.bin - - - sequential - basic - 262144 - 0 - 8 - 0 - mb1_t194_prod.bin - - - sequential - basic - 81920 - 0 - 8 - 0 - - - sequential - basic - 81920 - 0 - 8 - 0 - - - sequential - basic - 204800 - 0 - 8 - 0 - - - sequential - basic - 204800 - 0 - 8 - 0 - - - sequential - basic - 131072 - 0 - 8 - 0 - spe_t194.bin - - - sequential - basic - 131072 - 0 - 8 - 0 - spe_t194.bin - - - sequential - basic - 262144 - 0 - 8 - 0 - nvtboot_t194.bin - - - sequential - basic - 262144 - 0 - 8 - 0 - nvtboot_t194.bin - - - sequential - basic - 262144 - 0 - 8 - 0 - preboot_c10_prod_cr.bin - - - sequential - basic - 262144 - 0 - 8 - 0 - preboot_c10_prod_cr.bin - - - sequential - basic - 4096 - 0 - 0x8 - 0 - slot_metadata.bin - - - sequential - basic - 4096 - 0 - 0x8 - 0 - slot_metadata.bin - - - sequential - basic - 0xFFFFFFFFFFFFFFFF - 0 - 8 - 0 - - - - - sequential - basic - 512 - 0 - 8 - 0 - - - sequential - basic - 19968 - 0 - 8 - 0 - - - sequential - basic - 512000 - 0 - 8 - 0 - mce_c10_prod_cr.bin - - - sequential - basic - 512000 - 0 - 8 - 0 - mce_c10_prod_cr.bin - - - sequential - basic - 4194304 - 0 - 8 - 0 - mts_c10_prod_cr.bin - - - sequential - basic - 4194304 - 0 - 8 - 0 - mts_c10_prod_cr.bin - - - sequential - basic - 524288 - 0 - 8 - 0 - cboot_t194.bin - - - sequential - basic - 524288 - 0 - 8 - 0 - cboot_t194.bin - - - sequential - basic - 393216 - 0 - 8 - 0 - DTB_NAME - - - sequential - basic - 393216 - 0 - 8 - 0 - DTB_NAME - - - sequential - basic - 2097152 - 0 - 8 - 0 - tos-trusty_t194.img - - - sequential - basic - 2097152 - 0 - 8 - 0 - tos-trusty_t194.img - - - sequential - basic - 131072 - 0 - 8 - 0 - eks.img - - - sequential - basic - 131072 - 0 - 8 - 0 - eks.img - - - sequential - basic - 1048576 - 0 - 8 - 0 - bpmp_t194.bin - - - sequential - basic - 1048576 - 0 - 8 - 0 - bpmp_t194.bin - - - sequential - basic - 1048576 - 0 - 8 - 0 - tegra194-a02-bpmp-p2888-a04.dtb - - - sequential - basic - 1048576 - 0 - 8 - 0 - tegra194-a02-bpmp-p2888-a04.dtb - - - sequential - basic - 262144 - 0 - 8 - 0 - xusb_sil_rel_fw - - - sequential - basic - 262144 - 0 - 8 - 0 - xusb_sil_rel_fw - - - sequential - basic - 524288 - 0 - 8 - 0 - camera-rtcpu-rce.img - - - sequential - basic - 524288 - 0 - 8 - 0 - camera-rtcpu-rce.img - - - sequential - basic - 4194304 - 0 - 8 - 0 - adsp-fw.bin - - - sequential - basic - 4194304 - 0 - 8 - 0 - adsp-fw.bin - - - sequential - basic - 524288 - 0 - 8 - 0 - - - sequential - basic - 524288 - 0 - 8 - 0 - - - sequential - basic - 6291456 - 0 - 8 - 0 - warmboot_t194_prod.bin - - - sequential - basic - 6291456 - 0 - 8 - 0 - warmboot_t194_prod.bin - - - sequential - basic - 134217728 - 0 - 0x8 - 0 - bmp.blob - - - sequential - basic - 134217728 - 0 - 0x8 - 0 - bmp.blob - - - sequential - basic - 67108864 - 0 - 8 - 0 - boot.img - - - sequential - basic - 67108864 - 0 - 8 - 0 - boot.img - - - sequential - basic - 524288 - 0 - 8 - 0 - DTB_NAME - - - sequential - basic - 524288 - 0 - 8 - 0 - DTB_NAME - - - sequential - basic - 1048576 - 0 - 0x8 - 0 - - - sequential - basic - 8388608 - 0 - 0x8 - 0 - - - sequential - basic - 8388608 - 0 - 0x8 - 0 - - - sequential - basic - 4722688 - 0 - 0x8 - 0 - - - sequential - basic - 125829120 - 0 - 0x8 - 0 - - - sequential - basic - 499122176 - 0 - 0x8 - 0 - - - sequential - basic - 499122176 - 0 - 0x8 - 0 - - - sequential - basic - 20971520 - 0 - 0x8 - 0 - - - sequential - basic - 212860928 - 0 - 0x808 - 0 - - - sequential - basic - 0xFFFFFFFFFFFFFFFF - 0 - 8 - 0 - - - diff --git a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/resinOS-flash194_nxde.xml b/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/resinOS-flash194_nxde.xml deleted file mode 100644 index 683b71a2a..000000000 --- a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/resinOS-flash194_nxde.xml +++ /dev/null @@ -1,652 +0,0 @@ - - - - sequential - basic - 131072 - 0 - 8 - 0 - **Required.** Contains Boot Configuration Table (BCT). - - - sequential - basic - 262144 - 0 - 8 - 0 - MB1FILE - **Required.** Slot A; contains NVIDIA signed MB1 binary. - - - sequential - basic - 262144 - 0 - 8 - 0 - MB1FILE - **Required.** Slot B; contains NVIDIA signed MB1 binary. - - - sequential - basic - 65536 - 0 - 8 - 0 - **Required.** Slot A; contains MB1 boot configuration table. - - - sequential - basic - 65536 - 0 - 8 - 0 - **Required.** Slot B; contains MB1 boot configuration table. - - - sequential - basic - 262144 - 0 - 8 - 0 - **Required.** Slot A; contains memory configuration table. - - - sequential - basic - 262144 - 0 - 8 - 0 - **Required.** Slot B; contains memory configuration table. - - - sequential - basic - 262144 - 0 - 8 - 0 - SPEFILE - **Required.** Slot A; contains BPMP SPE-FW binary. - - - sequential - basic - 262144 - 0 - 8 - 0 - SPEFILE - **Required.** Slot B; contains BPMP SPE-FW binary. - - - sequential - basic - 262144 - 0 - 8 - 0 - TEGRABOOT - **Required.** Slot A; contains TegraBoot binary. - - - sequential - basic - 262144 - 0 - 8 - 0 - TEGRABOOT - **Required.** Slot B; contains TegraBoot binary. - - - sequential - basic - 65536 - 0 - 8 - 0 - MTSPREBOOT - **Required.** Slot A; contains Denver preboot firmware. - - - sequential - basic - 65536 - 0 - 8 - 0 - MTSPREBOOT - **Required.** Slot B; contains Denver preboot firmware. - - - - sequential - basic - 196608 - 0 - 8 - 0 - MTS_MCE - **Required.** Slot A; contains microcode associated with boot, power management, - and clocks. - - - sequential - basic - 196608 - 0 - 8 - 0 - MTS_MCE - **Required.** Slot B; contains microcode associated with boot, power management, - and clocks. - - - sequential - basic - 4194304 - 0 - 8 - 0 - MTSPROPER - **Required.** Slot A; contains microcode associated with execution - and optimization of ARM code. - - - sequential - basic - 4194304 - 0 - 8 - 0 - MTSPROPER - **Required.** Slot B; contains microcode associated with execution - and optimization of ARM code. - - - sequential - basic - 131072 - 0 - 8 - 0 - WB0BOOT - **Required.** Slot A; contains warm boot firmware. - - - sequential - basic - 131072 - 0 - 8 - 0 - WB0BOOT - **Required.** Slot B; contains warm boot firmware. - - - sequential - basic - 4096 - 65536 - 0 - 0x8 - 0 - slot_metadata.bin - **Required.** Slot A; contains slot status for A/B boot and A/B - update. - - - sequential - basic - 4096 - 65536 - 0 - 0x8 - 0 - slot_metadata.bin - **Required.** Slot B; contains slot status for A/B boot and A/B - update. - - - sequential - basic - 196608 - 65536 - 0 - 8 - 0 - xusb_sil_rel_fw - **Required.** Slot A; contains XUSB module’s firmware file, making XUSB - a true USB 3.0 compliant host controller. - - - sequential - basic - 196608 - 0 - 8 - 0 - xusb_sil_rel_fw - **Required.** Slot B; contains XUSB module’s firmware file, making XUSB - a true USB 3.0 compliant host controller. - - - sequential - basic - 1441792 - 0 - 8 - 0 - TBCFILE - **Required.** Slot A; contains CBoot, the final boot stage CPU Bootloader - binary that loads the binary in the kernel partition. - - - sequential - basic - 1441792 - 0 - 8 - 0 - TBCFILE - **Required.** Slot B; contains CBoot, the final boot stage CPU Bootloader - binary that loads the binary in the kernel partition. - - - sequential - basic - 458752 - 0 - 8 - 0 - TBCDTB-FILE - **Required.** Slot A; contains Bootloader device tree blob - (DTB). - - - sequential - basic - 458752 - 0 - 8 - 0 - TBCDTB-FILE - **Required.** Slot B; contains Bootloader device tree blob - (DTB). - - - sequential - basic - 196608 - 0 - 0x8 - 0 - bmp.blob - **Optional.** Slot A; contains BMP images for splash screen display during - boot. - - - sequential - basic - 196608 - 0 - 0x8 - 0 - bmp.blob - **Optional.** Slot B; contains BMP images for splash screen display during - boot. - - - sequential - basic - 2621440 - 0 - 8 - 0 - TOSFILE - **Required.** Slot A; contains the trusted OS. - - - sequential - basic - 2621440 - 0 - 8 - 0 - TOSFILE - **Required.** Slot B; contains the trusted OS. - - - sequential - basic - 65536 - 0 - 8 - 0 - EKSFILE - **Optional.** Slot A; contains the encrypted keys. - - - sequential - basic - 65536 - 0 - 8 - 0 - EKSFILE - **Optional.** Slot B; contains the encrypted keys. - - - sequential - basic - 1048576 - 0 - 8 - 0 - adsp-fw.bin - **Required.** Slot A; contains ADSP software. - - - sequential - basic - 1048576 - 0 - 8 - 0 - adsp-fw.bin - **Required.** Slot B; contains ADSP software. - - - sequential - basic - 1048576 - 0 - 8 - 0 - CAMERAFW - **Required.** Slot A; contains `camera-rtcpu-rce` firmware. - - - sequential - basic - 1048576 - 0 - 8 - 0 - CAMERAFW - **Required.** Slot B; contains `camera-rtcpu-rce` firmware. - - - sequential - basic - 1048576 - 0 - 8 - 0 - - **Required.** Contains `camera-rtcpu-sce` firmware. - - - sequential - basic - 1048576 - 0 - 8 - 0 - - **Required.** Contains `camera-rtcpu-sce` firmware. - - - sequential - basic - 1572864 - 0 - 8 - 0 - BPFFILE - **Required.** Slot A; contains BPMP firmware. - - - sequential - basic - 1572864 - 0 - 8 - 0 - BPFFILE - **Required.** Slot B; contains BPMP firmware. - - - sequential - basic - 1048576 - 0 - 8 - 0 - BPFDTB_FILE - **Required.** Slot A; contains BPMP firmware device tree blob - (DTB). - - - sequential - basic - 1048576 - 0 - 8 - 0 - BPFDTB_FILE - **Required.** Slot B; contains BPMP firmware device tree blob - (DTB). - - - sequential - basic - 65536 - 0 - 0x8 - 0 - **Optional.** Contains boot device selection priority list. - - - sequential - basic - 65536 - 0 - 0x8 - 0 - **Optional.** Contains boot device selection priority list. - - - sequential - basic - 65536 - 0 - 0 - 8 - 0 - VERFILE - **Required.** Contains BSP version information. - - - sequential - basic - 65536 - 0 - 0 - 8 - 0 - VERFILE - **Required.** Contains a redundant copy of BSP version information. - - - sequential - basic - 0xFFFFFFFFFFFFFFFF - 0 - 8 - 0 - **Required.** Contains secondary GPT of the `spi` - device. - - - - - sequential - basic - 512 - 0 - 8 - 0 - **Required.** Contains protective MBR. - - - sequential - basic - 19968 - 0 - 8 - 0 - **Required.** Contains primary GPT of the `sdmmc_user` device. All - partitions defined after this entry are configured in the kernel, and are - accessible by standard partition tools such as gdisk and parted. - - - sequential - basic - 67108864 - 0 - 8 - 0 - LNXFILE - **Required.** Slot A; contains U-Boot, which loads and launches the kernel - from the rootfs at `/boot`. - - - sequential - basic - 67108864 - 0 - 8 - 0 - LNXFILE - **Required.** Slot B; contains U-Boot, which loads and launches the kernel - from the rootfs at `/boot`. - - - sequential - basic - 524288 - 0 - 8 - 0 - DTB_FILE - **Required.** Slot A; contains kernel device tree blob. - - - sequential - basic - 524288 - 0 - 8 - 0 - DTB_FILE - **Required.** Slot B; contains kernel device tree blob. - - - sequential - basic - 524288 - 0 - 8 - 0 - RECDTB-FILE - **Required.** Contains recovery DTB image. - - - sequential - basic - 262144 - 0 - 8 - 0 - BOOTCTRL-FILE - **Required.** Slot A; contains boot control data. - - - sequential - basic - 262144 - 0 - 8 - 0 - BOOTCTRL-FILE - **Required.** Slot B; contains boot control data. - - - sequential - basic - 333426688 - 0 - 8 - 0 - Allows for adding new partitions before resin-boot in the future. - - - sequential - basic - 125829120 - 0 - 0x8 - 0 - - - sequential - basic - 750780416 - 0 - 0x8 - 0 - - - sequential - basic - 750780416 - 0 - 0x8 - 0 - - - sequential - basic - 20971520 - 0 - 0x8 - 0 - - - sequential - basic - 212860928 - 0 - 0x808 - 0 - - - sequential - basic - 0xFFFFFFFFFFFFFFFF - 0 - 8 - 0 - **Required.** Contains secondary GPT of the `sdmmc_user` - device. - - - diff --git a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/resinOS-flash194_nxde_sdcard.xml b/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/resinOS-flash194_nxde_sdcard.xml deleted file mode 100644 index 427e3f19f..000000000 --- a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/files/resinOS-flash194_nxde_sdcard.xml +++ /dev/null @@ -1,651 +0,0 @@ - - - - sequential - basic - 131072 - 0 - 8 - 0 - **Required.** Contains Boot Configuration Table (BCT). - - - sequential - basic - 262144 - 0 - 8 - 0 - MB1FILE - **Required.** Slot A; contains NVIDIA signed MB1 binary. - - - sequential - basic - 262144 - 0 - 8 - 0 - MB1FILE - **Required.** Slot B; contains NVIDIA signed MB1 binary. - - - sequential - basic - 65536 - 0 - 8 - 0 - **Required.** Slot A; contains MB1 boot configuration table. - - - sequential - basic - 65536 - 0 - 8 - 0 - **Required.** Slot B; contains MB1 boot configuration table. - - - sequential - basic - 262144 - 0 - 8 - 0 - **Required.** Slot A; contains memory configuration table. - - - sequential - basic - 262144 - 0 - 8 - 0 - **Required.** Slot B; contains memory configuration table. - - - sequential - basic - 262144 - 0 - 8 - 0 - SPEFILE - **Required.** Slot A; contains BPMP SPE-FW binary. - - - sequential - basic - 262144 - 0 - 8 - 0 - SPEFILE - **Required.** Slot B; contains BPMP SPE-FW binary. - - - sequential - basic - 262144 - 0 - 8 - 0 - TEGRABOOT - **Required.** Slot A; contains TegraBoot binary. - - - sequential - basic - 262144 - 0 - 8 - 0 - TEGRABOOT - **Required.** Slot B; contains TegraBoot binary. - - - sequential - basic - 65536 - 0 - 8 - 0 - MTSPREBOOT - **Required.** Slot A; contains Denver preboot firmware. - - - sequential - basic - 65536 - 0 - 8 - 0 - MTSPREBOOT - **Required.** Slot B; contains Denver preboot firmware. - - - sequential - basic - 196608 - 0 - 8 - 0 - MTS_MCE - **Required.** Slot A; contains microcode associated with boot, power management, - and clocks. - - - sequential - basic - 196608 - 0 - 8 - 0 - MTS_MCE - **Required.** Slot B; contains microcode associated with boot, power management, - and clocks. - - - sequential - basic - 4194304 - 0 - 8 - 0 - MTSPROPER - **Required.** Slot A; contains microcode associated with execution - and optimization of ARM code. - - - sequential - basic - 4194304 - 0 - 8 - 0 - MTSPROPER - **Required.** Slot B; contains microcode associated with execution - and optimization of ARM code. - - - sequential - basic - 131072 - 0 - 8 - 0 - WB0BOOT - **Required.** Slot A; contains warm boot firmware. - - - sequential - basic - 131072 - 0 - 8 - 0 - WB0BOOT - **Required.** Slot B; contains warm boot firmware. - - - sequential - basic - 4096 - 65536 - 0 - 0x8 - 0 - slot_metadata.bin - **Required.** Slot A; contains slot status for A/B boot and A/B - update. - - - sequential - basic - 4096 - 65536 - 0 - 0x8 - 0 - slot_metadata.bin - **Required.** Slot B; contains slot status for A/B boot and A/B - update. - - - sequential - basic - 196608 - 65536 - 0 - 8 - 0 - xusb_sil_rel_fw - **Required.** Slot A; contains XUSB module’s firmware file, making XUSB - a true USB 3.0 compliant host controller. - - - sequential - basic - 196608 - 0 - 8 - 0 - xusb_sil_rel_fw - **Required.** Slot B; contains XUSB module’s firmware file, making XUSB - a true USB 3.0 compliant host controller. - - - sequential - basic - 1441792 - 0 - 8 - 0 - TBCFILE - **Required.** Slot A; contains CBoot, the final boot stage CPU Bootloader - binary that loads the binary in the kernel partition. - - - sequential - basic - 1441792 - 0 - 8 - 0 - TBCFILE - **Required.** Slot B; contains CBoot, the final boot stage CPU Bootloader - binary that loads the binary in the kernel partition. - - - sequential - basic - 458752 - 0 - 8 - 0 - TBCDTB-FILE - **Required.** Slot A; contains Bootloader device tree blob - (DTB). - - - sequential - basic - 458752 - 0 - 8 - 0 - TBCDTB-FILE - **Required.** Slot B; contains Bootloader device tree blob - (DTB). - - - sequential - basic - 196608 - 0 - 0x8 - 0 - bmp.blob - **Optional.** Slot A; contains BMP images for splash screen display during - boot. - - - sequential - basic - 196608 - 0 - 0x8 - 0 - bmp.blob - **Optional.** Slot B; contains BMP images for splash screen display during - boot. - - - sequential - basic - 2621440 - 0 - 8 - 0 - TOSFILE - **Required.** Slot A; contains the trusted OS. - - - sequential - basic - 2621440 - 0 - 8 - 0 - TOSFILE - **Required.** Slot B; contains the trusted OS. - - - sequential - basic - 65536 - 0 - 8 - 0 - EKSFILE - **Optional.** Slot A; contains the encrypted keys. - - - sequential - basic - 65536 - 0 - 8 - 0 - EKSFILE - **Optional.** Slot B; contains the encrypted keys. - - - sequential - basic - 1048576 - 0 - 8 - 0 - adsp-fw.bin - **Required.** Slot A; contains ADSP software. - - - sequential - basic - 1048576 - 0 - 8 - 0 - adsp-fw.bin - **Required.** Slot B; contains ADSP software. - - - sequential - basic - 1048576 - 0 - 8 - 0 - CAMERAFW - **Required.** Slot A; contains `camera-rtcpu-rce` firmware. - - - sequential - basic - 1048576 - 0 - 8 - 0 - CAMERAFW - **Required.** Slot B; contains `camera-rtcpu-rce` firmware. - - - sequential - basic - 1048576 - 0 - 8 - 0 - - **Required.** Contains `camera-rtcpu-sce` firmware. - - - sequential - basic - 1048576 - 0 - 8 - 0 - - **Required.** Contains `camera-rtcpu-sce` firmware. - - - sequential - basic - 1572864 - 0 - 8 - 0 - BPFFILE - **Required.** Slot A; contains BPMP firmware. - - - sequential - basic - 1572864 - 0 - 8 - 0 - BPFFILE - **Required.** Slot B; contains BPMP firmware. - - - sequential - basic - 1048576 - 0 - 8 - 0 - BPFDTB_FILE - **Required.** Slot A; contains BPMP firmware device tree blob - (DTB). - - - sequential - basic - 1048576 - 0 - 8 - 0 - BPFDTB_FILE - **Required.** Slot B; contains BPMP firmware device tree blob - (DTB). - - - sequential - basic - 65536 - 0 - 0x8 - 0 - **Optional.** Contains boot device selection priority list. - - - sequential - basic - 65536 - 0 - 0x8 - 0 - **Optional.** Contains boot device selection priority list. - - - sequential - basic - 65536 - 0 - 0 - 8 - 0 - VERFILE - **Required.** Contains BSP version information. - - - sequential - basic - 65536 - 0 - 0 - 8 - 0 - VERFILE - **Required.** Contains a redundant copy of BSP version information. - - - sequential - basic - 0xFFFFFFFFFFFFFFFF - 0 - 8 - 0 - **Required.** Contains secondary GPT of the `spi` - device. - - - - - sequential - basic - 512 - 0 - 8 - 0 - **Required.** Contains protective MBR. - - - sequential - basic - 19968 - 0 - 8 - 0 - **Required.** Contains primary GPT of the `sdcard` device. All - partitions defined after this entry are configured in the kernel, and are - accessible by standard partition tools such as gdisk and parted. - - - sequential - basic - 67108864 - 0 - 8 - 0 - LNXFILE - **Required.** Slot A; contains U-Boot, which loads and launches the kernel - from the rootfs at `/boot`. - - - sequential - basic - 67108864 - 0 - 8 - 0 - LNXFILE - **Required.** Slot B; contains U-Boot, which loads and launches the kernel - from the rootfs at `/boot`. - - - sequential - basic - 524288 - 0 - 8 - 0 - DTB_FILE - **Required.** Slot A; contains kernel device tree blob. - - - sequential - basic - 524288 - 0 - 8 - 0 - DTB_FILE - **Required.** Slot B; contains kernel device tree blob. - - - sequential - basic - 524288 - 0 - 8 - 0 - RECDTB-FILE - **Required.** Contains recovery DTB image. - - - sequential - basic - 262144 - 0 - 8 - 0 - BOOTCTRL-FILE - **Required.** Slot A; contains boot control data. - - - sequential - basic - 262144 - 0 - 8 - 0 - BOOTCTRL-FILE - **Required.** Slot B; contains boot control data. - - - sequential - basic - 333426688 - 0 - 8 - 0 - Allows for adding new partitions before resin-boot in the future. - - - sequential - basic - 125829120 - 0 - 0x8 - 0 - - - sequential - basic - 750780416 - 0 - 0x8 - 0 - - - sequential - basic - 750780416 - 0 - 0x8 - 0 - - - sequential - basic - 20971520 - 0 - 0x8 - 0 - - - sequential - basic - 212860928 - 0 - 0x808 - 0 - - - sequential - basic - 0xFFFFFFFFFFFFFFFF - 0 - 8 - 0 - **Required.** Contains secondary GPT of the `sdcard` - device. - - - diff --git a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/tegra-bootfiles_32.7.3.bbappend b/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/tegra-bootfiles_32.7.3.bbappend deleted file mode 100644 index b22b2683c..000000000 --- a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/tegra-bootfiles_32.7.3.bbappend +++ /dev/null @@ -1,13 +0,0 @@ -do_compile:prepend:tegra194() { - for f in ${S}/bootloader/${NVIDIA_BOARD}/tegra194-*-bpmp-*.dtb; - do - if [ $(basename "$f") = "tegra194-a02-bpmp-p2888-a04.dtb" ]; then - echo "Changing parents for can1 and can2 in file $f" - for dtnode in can1 can2 - do - fdtput -t x ${f} "/clocks/clock@$dtnode" "allowed-parents" "121" "5b" "13a" "5e" - done - fi - done -} - diff --git a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/tegra194-flash-dry_32.7.3.bb b/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/tegra194-flash-dry_32.7.3.bb deleted file mode 100644 index 6099a167e..000000000 --- a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/tegra194-flash-dry_32.7.3.bb +++ /dev/null @@ -1,264 +0,0 @@ -SUMMARY = "Create flash artifacts without flashing" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${BALENA_COREBASE}/COPYING.Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" - -IMAGE_ROOTFS_ALIGNMENT ?= "4" - -BOOT_BLOB="boot0_t194.bin.gz" - -DEPENDS = " \ - coreutils-native \ - virtual/bootloader \ - virtual/kernel \ - tegra-binaries \ - tegra-bootfiles \ - tegra194-flashtools-native \ - dtc-native \ - virtual/bootlogo \ - " - -inherit deploy python3native perlnative l4t_bsp - -SRC_URI = " \ - file://resinOS-flash194.xml \ - file://partition_specification194.txt \ - file://${BOOT_BLOB};unpack=0 \ -" - -PINMUXCFG = "tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg" -LNXSIZE ?= "67108864" -DTBNAME = "tegra194-p2888-0001-p2822-0000" -KERNEL_DEVICETREE = "${DEPLOY_DIR_IMAGE}/${DTBNAME}.dtb" -DTBFILE ?= "${@os.path.basename(d.getVar('KERNEL_DEVICETREE', True).split()[0])}" - -IMAGE_TEGRAFLASH_FS_TYPE ??= "ext4" -IMAGE_TEGRAFLASH_ROOTFS ?= "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${IMAGE_TEGRAFLASH_FS_TYPE}" - -LDK_DIR = "${TMPDIR}/work-shared/L4T-${SOC_FAMILY}-${PV}-${PR}/Linux_for_Tegra" -B = "${WORKDIR}/build" -S = "${WORKDIR}" -LNXFILE="${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin" -IMAGE_TEGRAFLASH_KERNEL ?= "${DEPLOY_DIR_IMAGE}/${LNXFILE}" -BINARY_INSTALL_PATH = "/opt/tegra-binaries" - -OS_KERNEL_CMDLINE = "${@bb.utils.contains('DISTRO_FEATURES','osdev-image','console=ttyTHS0,115200n8 console=tty1 ','console=null quiet splash vt.global_cursor_default=0 consoleblank=0',d)} l4tver=${L4T_VERSION}" -ROOTA_ARGS="root=LABEL=resin-rootA ro rootwait rootfstype=ext4 ${KERNEL_ARGS} ${OS_KERNEL_CMDLINE}" -ROOTB_ARGS="root=LABEL=resin-rootB ro rootwait rootfstype=ext4 ${KERNEL_ARGS} ${OS_KERNEL_CMDLINE}" - -BOOTFILES=" \ - bpmp_t194.bin \ - camera-rtcpu-rce.img \ - eks.img \ - mb1_t194_prod.bin \ - nvtboot_applet_t194.bin \ - nvtboot_t194.bin \ - preboot_c10_prod_cr.bin \ - mce_c10_prod_cr.bin \ - mts_c10_prod_cr.bin \ - nvtboot_cpu_t194.bin \ - nvtboot_recovery_t194.bin \ - nvtboot_recovery_cpu_t194.bin \ - preboot_d15_prod_cr.bin \ - slot_metadata.bin \ - spe_t194.bin \ - warmboot_t194_prod.bin \ - xusb_sil_rel_fw \ - adsp-fw.bin \ -" - -signfile() { - local destdir="${WORKDIR}/tegraflash" - local lnxfile="${LNXFILE}" - local f - PATH="${STAGING_BINDIR_NATIVE}/tegra186-flash:${PATH}" - export cbootfilename=cboot_t194.bin - - export BOARDID=${TEGRA_BOARDID} - export FAB=${TEGRA_FAB} - export localbootfile=boot.img - - if [ "${SOC_FAMILY}" = "tegra194" ]; then - export CHIPREV=${TEGRA_CHIPREV} - export sdramcfg=${MACHINE}.cfg,${MACHINE}-override.cfg - else - export sdramcfg=${MACHINE}.cfg - fi - - export bins="mb2_bootloader nvtboot_recovery_t194.bin; \ - mts_preboot preboot_c10_prod_cr.bin; \ - mts_mce mce_c10_prod_cr.bin; \ - mts_proper mts_c10_prod_cr.bin; - bpmp_fw bpmp_t194.bin; \ - bpmp_fw_dtb tegra194-a02-bpmp-p2888-a04.dtb; \ - spe_fw spe_t194.bin; \ - tlk tos-trusty_t194.img; \ - eks eks.img; \ - bootloader_dtb ${DTBFILE}" - - tegraflashpy=$(which tegraflash.py) - python3 $tegraflashpy --chip 0x19 \ - --bl nvtboot_recovery_cpu_t194.bin \ - --sdram_config ${sdramcfg} \ - --odmdata ${ODMDATA} \ - --applet mb1_t194_prod.bin \ - --soft_fuses tegra194-mb1-soft-fuses-l4t.cfg \ - --cmd "sign$1" \ - --cfg flash.xml.in \ - --uphy_config tegra194-mb1-uphy-lane-p2888-0000-p2822-0000.cfg \ - --device_config tegra19x-mb1-bct-device-sdmmc.cfg \ - --misc_config tegra194-mb1-bct-misc-flash.cfg \ - --misc_cold_boot_config tegra194-mb1-bct-misc-l4t.cfg \ - --pinmux_config ${PINMUXCFG} \ - --gpioint_config tegra194-mb1-bct-gpioint-p2888-0000-p2822-0000.cfg \ - --pmic_config tegra194-mb1-bct-pmic-p2888-0001-a04-p2822-0000.cfg \ - --pmc_config tegra19x-mb1-padvoltage-p2888-0000-a00-p2822-0000-a00.cfg \ - --prod_config tegra19x-mb1-prod-p2888-0000-p2822-0000.cfg \ - --scr_config tegra194-mb1-bct-scr-cbb-mini.cfg \ - --scr_cold_boot_config tegra194-mb1-bct-scr-cbb-mini.cfg \ - --br_cmd_config tegra194-mb1-bct-reset-p2888-0000-p2822-0000.cfg \ - --dev_params tegra194-br-bct-sdmmc.cfg --bins "${bins}" -} - -do_configure() { - local destdir="${WORKDIR}/tegraflash" - local lnxfile="${LNXFILE}" - local f - PATH="${STAGING_BINDIR_NATIVE}/tegra186-flash:${PATH}" - rm -rf "${WORKDIR}/tegraflash" - mkdir -p "${WORKDIR}/tegraflash" - oldwd=`pwd` - cd "${WORKDIR}/tegraflash" - ln -s "${STAGING_DATADIR}/tegraflash/${MACHINE}.cfg" . - ln -s "${STAGING_DATADIR}/tegraflash/${MACHINE}-override.cfg" . - ln -s "${DEPLOY_DIR_IMAGE}/cboot-${MACHINE}.bin" ./cboot_t194.bin - ln -s "${DEPLOY_DIR_IMAGE}/tos-${MACHINE}.img" ./tos-trusty_t194.img - - cp "${DEPLOY_DIR_IMAGE}/bootlogo-${MACHINE}.blob" ./bmp.blob - mkdir -p ${DEPLOY_DIR_IMAGE}/bootfiles - cp ./cboot_t194.bin ${DEPLOY_DIR_IMAGE}/bootfiles/ - cp ./bmp.blob ${DEPLOY_DIR_IMAGE}/bootfiles/ - - for f in ${BOOTFILES}; do - ln -s "${STAGING_DATADIR}/tegraflash/$f" . - cp "${STAGING_DATADIR}/tegraflash/$f" ${DEPLOY_DIR_IMAGE}/bootfiles/ - done - - for f in ${STAGING_DATADIR}/tegraflash/tegra19[4x]-*.cfg; do - ln -s $f . - cp $f ${DEPLOY_DIR_IMAGE}/bootfiles/ - done - - for f in ${STAGING_DATADIR}/tegraflash/tegra194-*-bpmp-*.dtb; do - cp $f . - cp $f ${DEPLOY_DIR_IMAGE}/bootfiles/ - done - - ln -s ${STAGING_BINDIR_NATIVE}/tegra186-flash . - - cp "${DEPLOY_DIR_IMAGE}/${DTBFILE}" ./${DTBFILE} - cp ./${DTBFILE} ./${DTBNAME}-rootA.dtb - cp ./${DTBFILE} ./${DTBNAME}-rootB.dtb - - # Add rootA/rootB and save as separate dtbs to be used when - # switching partitions - bootargs="`fdtget ./${DTBFILE} /chosen bootargs 2>/dev/null`" - fdtput -t s ./${DTBNAME}-rootA.dtb /chosen bootargs "$bootargs ${ROOTA_ARGS}" - fdtput -t s ./${DTBNAME}-rootB.dtb /chosen bootargs "$bootargs ${ROOTB_ARGS}" - - # Make bootable image from kernel and sign it - cp ${DEPLOY_DIR_IMAGE}/${LNXFILE} ${LNXFILE} - ln -sf ${STAGING_BINDIR_NATIVE}/tegra186-flash/mkbootimg ./ - - # mkbootimg really needs initrd, even if empty - touch initrd - ./mkbootimg --kernel ${LNXFILE} --ramdisk initrd --board mmcblk0p1 --output boot.img - - # prepare flash.xml.in to be used in signing - cp ${WORKDIR}/resinOS-flash194.xml flash.xml.in - sed -i "s, DTB_NAME, ${DTBFILE},g" flash.xml.in - - sed -i -e "s/\[DTB_NAME\]/$(echo ${DTBFILE} | cut -d '.' -f 1)/g" ${WORKDIR}/partition_specification194.txt - - # prep env for tegraflash - rm -f ./slot_metadata.bin - cp ${STAGING_DATADIR}/tegraflash/slot_metadata.bin ./ - mkdir ./rollback - - ln -sf ${STAGING_BINDIR_NATIVE}/tegra186-flash/rollback_parser.py ./rollback/ - ln -snf ${STAGING_DATADIR}/nv_tegra/rollback/t${@d.getVar('NVIDIA_CHIP')[2:]}x ./rollback/ - ln -sf ${STAGING_BINDIR_NATIVE}/tegra186-flash/BUP_generator.py ./ - ln -sf ${STAGING_BINDIR_NATIVE}/tegra186-flash/${SOC_FAMILY}-flash-helper.sh ./ - ln -sf ${STAGING_BINDIR_NATIVE}/tegra186-flash/tegraflash.py ./ - - # bup is based on the rootfs, which is not built at this point - # not using it for the moment - # sed -e 's,^function ,,' ${STAGING_BINDIR_NATIVE}/tegra186-flash/l4t_bup_gen.func > ./l4t_bup_gen.func - rm -rf signed - - # Sign all tegra bins - signfile "" - - # any binary written to a partition that - # has signing mandatory needs to be signed - signfile " ${DTBNAME}-rootA.dtb" - signfile " ${DTBNAME}-rootB.dtb" - - # Needed to embedd plain initramfs kernel and dtb to main image - cp ${LNXFILE} ${DEPLOY_DIR_IMAGE}/bootfiles/Image - cp -r ${DTBNAME}-root*.dtb ${DEPLOY_DIR_IMAGE}/bootfiles/ - cp ${WORKDIR}/resinOS-flash194.xml ${DEPLOY_DIR_IMAGE}/bootfiles/flash.xml - cp -r signed/* ${DEPLOY_DIR_IMAGE}/bootfiles/ - cp -r ${DTBNAME}-root*_sigheader.dtb.encrypt ${DEPLOY_DIR_IMAGE}/bootfiles/ - dd if=/dev/zero of="${DEPLOY_DIR_IMAGE}/bootfiles/bmp.blob" bs=1K count=1 - - # This is the Xavier boot0, which wasn't necessary for HUP from L4T 31.x to 32.3.1, - # but becomes when moving to L4T 32.4.2 or newer. - cp ${WORKDIR}/${BOOT_BLOB} ${DEPLOY_DIR_IMAGE}/bootfiles/ -} - - -do_install() { - install -d ${D}/${BINARY_INSTALL_PATH} - cp -r ${S}/tegraflash/signed/* ${D}/${BINARY_INSTALL_PATH} - rm ${D}/${BINARY_INSTALL_PATH}/boot*im* - cp ${S}/tegraflash/${DTBNAME}-rootA.dtb ${D}/${BINARY_INSTALL_PATH}/ - cp ${DEPLOY_DIR_IMAGE}/bootfiles/boot_sigheader.img.encrypt ${D}/${BINARY_INSTALL_PATH}/ - cp ${WORKDIR}/partition_specification194.txt ${D}/${BINARY_INSTALL_PATH}/ - cp -r ${S}/tegraflash/${DTBNAME}-root*sigheader.dtb.encrypt ${D}/${BINARY_INSTALL_PATH} - # When generating image, this will be default dtb containing cmdline with root set to resin-rootA - cp ${S}/tegraflash/${DTBNAME}-rootA_sigheader.dtb.encrypt ${DEPLOY_DIR_IMAGE}/bootfiles/${DTBNAME}_sigheader.dtb.encrypt -} - -do_deploy() { - rm -rf ${DEPLOYDIR}/$(basename ${BINARY_INSTALL_PATH}) - mkdir -p ${DEPLOYDIR}/$(basename ${BINARY_INSTALL_PATH}) - cp -r ${D}/${BINARY_INSTALL_PATH}/* ${DEPLOYDIR}/$(basename ${BINARY_INSTALL_PATH}) -} - -FILES:${PN} += "${BINARY_INSTALL_PATH}" - -INHIBIT_PACKAGE_STRIP = "1" -INHIBIT_PACKAGE_DEBUG_SPLIT = "1" - -# Binaries copied to DEPLOY_DIR_IMAGE -# to be included in the boot partition -# need to be redeployed on each build -# as this path is not cached -do_install[nostamp] = "1" -do_deploy[nostamp] = "1" -do_configure[nostamp] = "1" - -do_configure[depends] += " tegra-binaries:do_preconfigure" -do_configure[depends] += " virtual/kernel:do_deploy \ - virtual/bootloader:do_deploy \ -" -do_configure[depends] += " cboot:do_deploy" -do_configure[depends] += " tos-prebuilt:do_deploy" - -do_install[depends] += " virtual/kernel:do_deploy" -do_populate_lic[depends] += "tegra-binaries:do_unpack" - -addtask do_deploy before do_package after do_install - -COMPATIBLE_MACHINE = "jetson-xavier" diff --git a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/tegra194-nxde-flash-dry_32.7.3.bb b/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/tegra194-nxde-flash-dry_32.7.3.bb deleted file mode 100644 index c3db8a61a..000000000 --- a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/tegra194-nxde-flash-dry_32.7.3.bb +++ /dev/null @@ -1,310 +0,0 @@ -SUMMARY = "Create flash artifacts without flashing the Jetson NX Devkit eMMC" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${BALENA_COREBASE}/COPYING.Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" - -IMAGE_ROOTFS_ALIGNMENT ?= "4" - -BOOT_BLOB = "boot0xavier_nx_emmc.bin.gz" - -DEPENDS = " \ - coreutils-native \ - virtual/bootloader \ - virtual/kernel \ - tegra-binaries \ - tegra-bootfiles \ - tegra194-flashtools-native \ - dtc-native \ - virtual/bootlogo \ - " - -inherit deploy python3native perlnative - -SRC_URI = " \ - file://resinOS-flash194_nxde.xml \ - file://partition_specification194_nxde.txt \ - file://${BOOT_BLOB};;unpack=0 \ -" - -FLASHXML = "resinOS-flash194_nxde.xml" -DTBNAME = "tegra194-p3668-all-p3509-0000" -DTBNAME:photon-xavier-nx = "tegra194-xavier-nx-cti-NGX003" -DTBNAME_cnx100-xavier-nx = "tegra194-xavier-nx-cnx100" -KERNEL_DEVICETREE = "${DEPLOY_DIR_IMAGE}/${DTBNAME}.dtb" -DTBFILE ?= "${@os.path.basename(d.getVar('KERNEL_DEVICETREE', True).split()[0])}" -LNXSIZE ?= "67108864" - -IMAGE_TEGRAFLASH_FS_TYPE ??= "ext4" -IMAGE_TEGRAFLASH_ROOTFS ?= "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${IMAGE_TEGRAFLASH_FS_TYPE}" - -LDK_DIR = "${TMPDIR}/work-shared/L4T-${SOC_FAMILY}-${PV}-${PR}/Linux_for_Tegra" -B = "${WORKDIR}/build" -S = "${WORKDIR}" -LNXFILE="${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin" -IMAGE_TEGRAFLASH_KERNEL ?= "${DEPLOY_DIR_IMAGE}/${LNXFILE}" -BINARY_INSTALL_PATH = "/opt/tegra-binaries" - -OS_KERNEL_CMDLINE = "${@bb.utils.contains('DISTRO_FEATURES','osdev-image','console=ttyTHS0,115200n8 console=tty1 debug loglevel=7','console=null quiet splash vt.global_cursor_default=0 consoleblank=0',d)}" -ROOTA_ARGS="root=LABEL=resin-rootA ro rootwait rootfstype=ext4 ${KERNEL_ARGS} ${OS_KERNEL_CMDLINE}" -ROOTB_ARGS="root=LABEL=resin-rootB ro rootwait rootfstype=ext4 ${KERNEL_ARGS} ${OS_KERNEL_CMDLINE}" - -BOOTFILES = "\ - adsp-fw.bin \ - bpmp_t194.bin \ - camera-rtcpu-rce.img \ - eks.img \ - mb1_t194_prod.bin \ - nvtboot_applet_t194.bin \ - nvtboot_t194.bin \ - preboot_c10_prod_cr.bin \ - mce_c10_prod_cr.bin \ - mts_c10_prod_cr.bin \ - nvtboot_cpu_t194.bin \ - nvtboot_recovery_t194.bin \ - nvtboot_recovery_cpu_t194.bin \ - preboot_d15_prod_cr.bin \ - slot_metadata.bin \ - spe_t194.bin \ - warmboot_t194_prod.bin \ - xusb_sil_rel_fw \ -" - -signfile() { - local destdir="${WORKDIR}/tegraflash" - local lnxfile="${LNXFILE}" - local f - PATH="${STAGING_BINDIR_NATIVE}/tegra186-flash:${PATH}" - export cbootfilename=cboot_t194.bin - - export BOARDID=${TEGRA_BOARDID} - export FAB=${TEGRA_FAB} - export localbootfile=boot.img - - cp ${STAGING_DATADIR}/tegraflash/flashvars . - . ./flashvars - - export bins=" mb2_bootloader nvtboot_recovery_t194.bin; \ - mts_preboot preboot_c10_prod_cr.bin; \ - mts_mce mce_c10_prod_cr.bin; \ - mts_proper mts_c10_prod_cr.bin; \ - bpmp_fw bpmp_t194.bin; \ - bpmp_fw_dtb tegra194-a02-bpmp-p3668-a00.dtb; \ - spe_fw spe_t194.bin; \ - tlk tos-trusty_t194.img; \ - eks eks.img; \ - bootloader_dtb ${DTBFILE}" - - cat flash.xml.in | sed \ - -e"s,LNXFILE,${localbootfile}," -e"s,LNXSIZE,${LNXSIZE}," \ - -e"s,TEGRABOOT,nvtboot_t194.bin," \ - -e"s,MTSPREBOOT,preboot_c10_prod_cr.bin," \ - -e"s,MTS_MCE,mce_c10_prod_cr.bin," \ - -e"s,MTSPROPER,mts_c10_prod_cr.bin," \ - -e"s,MB1FILE,mb1_t194_prod.bin," \ - -e"s,BPFFILE,bpmp_t194.bin," \ - -e"s,BPFDTB_FILE,tegra194-a02-bpmp-p3668-a00.dtb," \ - -e"s,TBCFILE,$cbootfilename," \ - -e"s,TBCDTB-FILE,${DTBFILE}," \ - -e"s,CAMERAFW,camera-rtcpu-rce.img," \ - -e"s,SPEFILE,spe_t194.bin," \ - -e"s,VERFILE,bsp_version," \ - -e"s,WB0BOOT,warmboot_t194_prod.bin," \ - -e"s,TOSFILE,tos-trusty_t194.img," \ - -e"s,EKSFILE,eks.img," \ - -e"s, DTB_FILE, ${DTBFILE}," \ - -e"s,RECNAME,recovery," -e"s,RECSIZE,66060288," -e"s,RECDTB-NAME,recovery-dtb," -e"s,BOOTCTRLNAME,kernel-bootctrl," \ - -e"/RECFILE/d" -e"/RECDTB-FILE/d" -e"/BOOTCTRL-FILE/d" \ - > $destdir/flash.xml - - - tegraflashpy=$(which tegraflash.py) - - python3 $tegraflashpy --bl nvtboot_recovery_cpu_t194.bin \ - --sdram_config tegra194-mb1-bct-memcfg-p3668-0001-a00.cfg,tegra194-memcfg-sw-override.cfg \ - --odmdata 0xB8190000 \ - --applet mb1_t194_prod.bin \ - --cmd "sign$1" \ - --soft_fuses tegra194-mb1-soft-fuses-l4t.cfg \ - --cfg flash.xml \ - --chip 0x19 \ - --device_config tegra19x-mb1-bct-device-qspi-p3668.cfg \ - --misc_cold_boot_config tegra194-mb1-bct-misc-l4t.cfg \ - --misc_config tegra194-mb1-bct-misc-flash.cfg \ - --pinmux_config tegra19x-mb1-pinmux-p3668-a01.cfg \ - --gpioint_config tegra194-mb1-bct-gpioint-p3668-0001-a00.cfg \ - --pmic_config tegra194-mb1-bct-pmic-p3668-0001-a00.cfg \ - --pmc_config tegra19x-mb1-padvoltage-p3668-a01.cfg \ - --prod_config tegra19x-mb1-prod-p3668-0001-a00.cfg \ - --scr_config tegra194-mb1-bct-scr-cbb-mini-p3668.cfg \ - --scr_cold_boot_config tegra194-mb1-bct-scr-cbb-mini-p3668.cfg \ - --br_cmd_config tegra194-mb1-bct-reset-p3668-0001-a00.cfg \ - --dev_params tegra194-br-bct-qspi.cfg \ - --bin "${bins}" -} - -do_configure() { - local destdir="${WORKDIR}/tegraflash" - local lnxfile="${LNXFILE}" - local f - PATH="${STAGING_BINDIR_NATIVE}/tegra186-flash:${PATH}" - rm -rf "${WORKDIR}/tegraflash" - mkdir -p "${WORKDIR}/tegraflash" - oldwd=`pwd` - cd "${WORKDIR}/tegraflash" - ln -sf "${STAGING_DATADIR}/tegraflash/bsp_version" . - ln -s "${STAGING_DATADIR}/tegraflash/${MACHINE}.cfg" . - ln -s "${STAGING_DATADIR}/tegraflash/${MACHINE}-override.cfg" . - ln -s "${DEPLOY_DIR_IMAGE}/cboot-${MACHINE}.bin" ./cboot_t194.bin - ln -s "${DEPLOY_DIR_IMAGE}/tos-${MACHINE}.img" ./tos-trusty_t194.img - - cp "${DEPLOY_DIR_IMAGE}/bootlogo-${MACHINE}.blob" ./bmp.blob - mkdir -p ${DEPLOY_DIR_IMAGE}/bootfiles - cp ./cboot_t194.bin ${DEPLOY_DIR_IMAGE}/bootfiles/ - cp ./bmp.blob ${DEPLOY_DIR_IMAGE}/bootfiles/ - - for f in ${BOOTFILES}; do - ln -s "${STAGING_DATADIR}/tegraflash/$f" . - cp "${STAGING_DATADIR}/tegraflash/$f" ${DEPLOY_DIR_IMAGE}/bootfiles/ - done - - cp ${STAGING_DATADIR}/tegraflash/flashvars . - . ./flashvars - - for f in ${STAGING_DATADIR}/tegraflash/tegra19[4x]-*.cfg; do - ln -s $f . - cp $f ${DEPLOY_DIR_IMAGE}/bootfiles/ - done - - for f in ${STAGING_DATADIR}/tegraflash/tegra194-*-bpmp-*.dtb; do - cp $f . - done - - if [ -n "${NVIDIA_BOARD_CFG}" ]; then - ln -s "${STAGING_DATADIR}/tegraflash/board_config_${MACHINE}.xml" . - boardcfg=board_config_${MACHINE}.xml - else - boardcfg= - fi - export boardcfg - - sed -i -e "s/\[DTBNAME\]/${DTBNAME}/g" ${WORKDIR}/partition_specification194_nxde.txt - - ln -s ${STAGING_BINDIR_NATIVE}/tegra186-flash . - - cp "${DEPLOY_DIR_IMAGE}/${DTBFILE}" ./${DTBFILE} - - # This one is used to ensure carrier boards have - # the same bldtb, so that the generated boot0.img - # has valid signatures. - cp "${DEPLOY_DIR_IMAGE}/tegra194-p3668-all-p3509-0000.dtb" . - - # These reside on the eMMC, can differ from bldtb - cp ./${DTBFILE} ./${DTBNAME}-rootA.dtb - cp ./${DTBFILE} ./${DTBNAME}-rootB.dtb - - # Add rootA/rootB and save as separate dtbs to be used when - # switching partitions - bootargs="`fdtget ./${DTBFILE} /chosen bootargs 2>/dev/null`" - fdtput -t s ./${DTBNAME}-rootA.dtb /chosen bootargs "$bootargs ${ROOTA_ARGS} " - fdtput -t s ./${DTBNAME}-rootB.dtb /chosen bootargs "$bootargs ${ROOTB_ARGS} " - - # Need to switch back to default values from flashing, otherwise bootloader dtb offset inside boot0.img will - # change and will generate signature failure in MB2. - bldtbchosenargs="console=ttyTCU0,115200" - bldtbdtsname="/dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t19x/jakku/kernel-dts/tegra194-p3668-all-p3509-0000.dts" - - # Do not overide this hardcoded dtb for carrier boards, this is used for bldtb in boot0.img - fdtput -t s ./tegra194-p3668-all-p3509-0000.dtb / "nvidia,dtsfilename" $bldtbdtsname - fdtput -t s ./tegra194-p3668-all-p3509-0000.dtb /chosen bootargs $bldtbchosenargs - - # Make bootable image from kernel and sign it - cp ${DEPLOY_DIR_IMAGE}/${LNXFILE} ${LNXFILE} - ln -sf ${STAGING_BINDIR_NATIVE}/tegra186-flash/mkbootimg ./ - - # mkbootimg really needs initrd, even if empty - touch initrd - ./mkbootimg --kernel ${LNXFILE} --ramdisk initrd --board mmcblk0p1 --output boot.img - - # prepare flash.xml.in to be used in signing - cp ${WORKDIR}/${FLASHXML} flash.xml.in - - # prep env for tegraflash - rm -f ./slot_metadata.bin - cp ${STAGING_DATADIR}/tegraflash/slot_metadata.bin ./ - mkdir ./rollback - - ln -sf ${STAGING_BINDIR_NATIVE}/tegra186-flash/rollback_parser.py ./rollback/ - ln -snf ${STAGING_DATADIR}/nv_tegra/rollback/t${@d.getVar('NVIDIA_CHIP')[2:]}x ./rollback/ - ln -sf ${STAGING_BINDIR_NATIVE}/tegra186-flash/BUP_generator.py ./ - ln -sf ${STAGING_BINDIR_NATIVE}/tegra186-flash/${SOC_FAMILY}-flash-helper.sh ./ - ln -sf ${STAGING_BINDIR_NATIVE}/tegra186-flash/tegraflash.py ./ - - # bup is based on the rootfs, which is not built at this point - # not using it for the moment - # sed -e 's,^function ,,' ${STAGING_BINDIR_NATIVE}/tegra186-flash/l4t_bup_gen.func > ./l4t_bup_gen.func - rm -rf signed - - # Sign all tegra bins - signfile - - signfile " ${DTBNAME}-rootA.dtb" - signfile " ${DTBNAME}-rootB.dtb" - - # Used in boot0.img - signfile " tegra194-p3668-all-p3509-0000.dtb" - - # Needed to embedd plain initramfs kernel and dtb to main image - cp $localbootfile ${DEPLOY_DIR_IMAGE}/bootfiles/Image - - cp -r ${DTBNAME}-root*.dtb* ${DEPLOY_DIR_IMAGE}/bootfiles/ - cp ${WORKDIR}/${FLASHXML} ${DEPLOY_DIR_IMAGE}/bootfiles/flash.xml - cp -r signed/* ${DEPLOY_DIR_IMAGE}/bootfiles/ - cp tegra194-p3668-all-p3509-0000_sigheader.dtb.encrypt ${DEPLOY_DIR_IMAGE}/bootfiles/ - - zcat ${WORKDIR}/${BOOT_BLOB} > boot0.img -} - -do_install() { - install -d ${D}/${BINARY_INSTALL_PATH} - cp -r ${S}/tegraflash/signed/* ${D}/${BINARY_INSTALL_PATH} - - cp ${S}/tegraflash/${DTBNAME}-rootA.dtb ${D}/${BINARY_INSTALL_PATH}/ - cp ${WORKDIR}/partition_specification194_nxde.txt ${D}/${BINARY_INSTALL_PATH}/ - cp -r ${S}/tegraflash/${DTBNAME}-root*sigheader.dtb.encrypt ${D}/${BINARY_INSTALL_PATH} - cp ${S}/tegraflash/boot0.img ${D}/${BINARY_INSTALL_PATH} - # When generating image, this will be default dtb containing cmdline with root set to resin-rootA - cp ${S}/tegraflash/${DTBNAME}-rootA_sigheader.dtb.encrypt ${DEPLOY_DIR_IMAGE}/bootfiles/${DTBNAME}_sigheader.dtb.encrypt -} - -do_deploy() { - rm -rf ${DEPLOYDIR}/$(basename ${BINARY_INSTALL_PATH}) - mkdir -p ${DEPLOYDIR}/$(basename ${BINARY_INSTALL_PATH}) - cp -r ${D}/${BINARY_INSTALL_PATH}/* ${DEPLOYDIR}/$(basename ${BINARY_INSTALL_PATH}) -} - -FILES:${PN} += "${BINARY_INSTALL_PATH}" - -INHIBIT_PACKAGE_STRIP = "1" -INHIBIT_PACKAGE_DEBUG_SPLIT = "1" - -# Binaries copied to DEPLOY_DIR_IMAGE -# to be included in the boot partition -# need to be redeployed on each build -# as this path is not cached -do_install[nostamp] = "1" -do_deploy[nostamp] = "1" -do_configure[nostamp] = "1" - -do_configure[depends] += " tegra-binaries:do_preconfigure" -do_configure[depends] += " virtual/kernel:do_deploy \ - virtual/bootloader:do_deploy \ -" -do_configure[depends] += " cboot:do_deploy" -do_configure[depends] += " tos-prebuilt:do_deploy" - -do_install[depends] += " virtual/kernel:do_deploy" -do_populate_lic[depends] += "tegra-binaries:do_unpack" - -addtask do_deploy before do_package after do_install - -COMPATIBLE_MACHINE = "jetson-xavier-nx-devkit-emmc" diff --git a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/tegra194-nxde-sdcard-flash_32.7.3.bb b/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/tegra194-nxde-sdcard-flash_32.7.3.bb deleted file mode 100644 index 6490bea18..000000000 --- a/layers/meta-balena-jetson/recipes-bsp/tegra-binaries/tegra194-nxde-sdcard-flash_32.7.3.bb +++ /dev/null @@ -1,418 +0,0 @@ -SUMMARY = "Create flash artifacts without flashing the Jetson NX Devkit SD-CARD" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${BALENA_COREBASE}/COPYING.Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" - -IMAGE_ROOTFS_ALIGNMENT ?= "4" - -DEPENDS = " \ - coreutils-native \ - virtual/bootloader \ - virtual/kernel \ - tegra-binaries \ - tegra-bootfiles \ - tegra194-flashtools-native \ - dtc-native \ - virtual/bootlogo \ - " - -inherit deploy python3native perlnative - -BOOT_BINDIFF="boot0_t194_nx_sd.bindiff" - -SRC_URI = " \ - file://resinOS-flash194_nxde_sdcard.xml \ - file://partition_specification194_nxde_sdcard.txt \ - file://boot0_t194_nx_sd.bindiff \ -" - -FLASHXML = "resinOS-flash194_nxde_sdcard.xml" -DTBNAME = "tegra194-p3668-all-p3509-0000" -DTBNAME:jetson-xavier-nx-devkit-seeed-2mic-hat = "tegra194-p3668-all-p3509-0000-seeed-2mic-hat" -KERNEL_DEVICETREE = "${DEPLOY_DIR_IMAGE}/${DTBNAME}.dtb" -DTBFILE ?= "${@os.path.basename(d.getVar('KERNEL_DEVICETREE', True).split()[0])}" -LNXSIZE ?= "67108864" - -IMAGE_TEGRAFLASH_FS_TYPE ??= "ext4" -IMAGE_TEGRAFLASH_ROOTFS ?= "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${IMAGE_TEGRAFLASH_FS_TYPE}" - -LDK_DIR = "${TMPDIR}/work-shared/L4T-${SOC_FAMILY}-${PV}-${PR}/Linux_for_Tegra" -B = "${WORKDIR}/build" -S = "${WORKDIR}" -LNXFILE="${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin" -IMAGE_TEGRAFLASH_KERNEL ?= "${DEPLOY_DIR_IMAGE}/${LNXFILE}" -BINARY_INSTALL_PATH = "/opt/tegra-binaries" - -OS_KERNEL_CMDLINE = "${@bb.utils.contains('DISTRO_FEATURES','osdev-image','console=ttyTHS0,115200n8 console=tty1 debug loglevel=7','console=null quiet splash vt.global_cursor_default=0 consoleblank=0',d)}" -ROOTA_ARGS="root=LABEL=resin-rootA ro rootwait rootfstype=ext4 ${KERNEL_ARGS} ${OS_KERNEL_CMDLINE}" -ROOTB_ARGS="root=LABEL=resin-rootB ro rootwait rootfstype=ext4 ${KERNEL_ARGS} ${OS_KERNEL_CMDLINE}" - -BOOTFILES = "\ - adsp-fw.bin \ - bpmp_t194.bin \ - camera-rtcpu-rce.img \ - eks.img \ - mb1_t194_prod.bin \ - nvtboot_applet_t194.bin \ - nvtboot_t194.bin \ - preboot_c10_prod_cr.bin \ - mce_c10_prod_cr.bin \ - mts_c10_prod_cr.bin \ - nvtboot_cpu_t194.bin \ - nvtboot_recovery_t194.bin \ - nvtboot_recovery_cpu_t194.bin \ - preboot_d15_prod_cr.bin \ - slot_metadata.bin \ - spe_t194.bin \ - warmboot_t194_prod.bin \ - xusb_sil_rel_fw \ -" - -signfile() { - local destdir="${WORKDIR}/tegraflash" - local lnxfile="${LNXFILE}" - local f - PATH="${STAGING_BINDIR_NATIVE}/tegra186-flash:${PATH}" - export cbootfilename=cboot_t194.bin - - export BOARDID=${TEGRA_BOARDID} - export FAB=${TEGRA_FAB} - export localbootfile=boot.img - - cp ${STAGING_DATADIR}/tegraflash/flashvars . - . ./flashvars - - export bins=" mb2_bootloader nvtboot_recovery_t194.bin; \ - mts_preboot preboot_c10_prod_cr.bin; \ - mts_mce mce_c10_prod_cr.bin; \ - mts_proper mts_c10_prod_cr.bin; \ - bpmp_fw bpmp_t194.bin; \ - bpmp_fw_dtb tegra194-a02-bpmp-p3668-a00.dtb; \ - spe_fw spe_t194.bin; \ - tlk tos-trusty_t194.img; \ - eks eks.img; \ - bootloader_dtb ${DTBFILE}" - - cat flash.xml.in | sed \ - -e"s,LNXFILE,${localbootfile}," -e"s,LNXSIZE,${LNXSIZE}," \ - -e"s,TEGRABOOT,nvtboot_t194.bin," \ - -e"s,MTSPREBOOT,preboot_c10_prod_cr.bin," \ - -e"s,MTS_MCE,mce_c10_prod_cr.bin," \ - -e"s,MTSPROPER,mts_c10_prod_cr.bin," \ - -e"s,MB1FILE,mb1_t194_prod.bin," \ - -e"s,BPFFILE,bpmp_t194.bin," \ - -e"s,BPFDTB_FILE,tegra194-a02-bpmp-p3668-a00.dtb," \ - -e"s,TBCFILE,$cbootfilename," \ - -e"s,TBCDTB-FILE,${DTBFILE}," \ - -e"s,CAMERAFW,camera-rtcpu-rce.img," \ - -e"s,SPEFILE,spe_t194.bin," \ - -e"s,VERFILE,bsp_version," \ - -e"s,WB0BOOT,warmboot_t194_prod.bin," \ - -e"s,TOSFILE,tos-trusty_t194.img," \ - -e"s,EKSFILE,eks.img," \ - -e"s, DTB_FILE, ${DTBFILE}," \ - -e"s,RECNAME,recovery," \ - -e"s,RECSIZE,66060288," \ - -e"s,RECDTB-NAME,recovery-dtb," \ - -e"s,BOOTCTRLNAME,kernel-bootctrl," \ - -e"/RECFILE/d" -e"/RECDTB-FILE/d" -e"/BOOTCTRL-FILE/d" \ - > $destdir/flash.xml - - tegraflashpy=$(which tegraflash.py) - - python3 $tegraflashpy --bl nvtboot_recovery_cpu_t194.bin \ - --sdram_config tegra194-mb1-bct-memcfg-p3668-0001-a00.cfg,tegra194-memcfg-sw-override.cfg \ - --odmdata 0xB8190000 \ - --applet mb1_t194_prod.bin \ - --cmd "sign$1" \ - --soft_fuses tegra194-mb1-soft-fuses-l4t.cfg \ - --cfg flash.xml \ - --chip 0x19 \ - --device_config tegra19x-mb1-bct-device-qspi-p3668.cfg \ - --misc_cold_boot_config tegra194-mb1-bct-misc-l4t.cfg \ - --misc_config tegra194-mb1-bct-misc-flash.cfg \ - --pinmux_config tegra19x-mb1-pinmux-p3668-a01.cfg \ - --gpioint_config tegra194-mb1-bct-gpioint-p3668-0001-a00.cfg \ - --pmic_config tegra194-mb1-bct-pmic-p3668-0001-a00.cfg \ - --pmc_config tegra19x-mb1-padvoltage-p3668-a01.cfg \ - --prod_config tegra19x-mb1-prod-p3668-0001-a00.cfg \ - --scr_config tegra194-mb1-bct-scr-cbb-mini-p3668.cfg \ - --scr_cold_boot_config tegra194-mb1-bct-scr-cbb-mini-p3668.cfg \ - --br_cmd_config tegra194-mb1-bct-reset-p3668-0001-a00.cfg \ - --dev_params tegra194-br-bct-qspi.cfg \ - --bin "${bins}" -} - -do_configure() { - local destdir="${WORKDIR}/tegraflash" - local lnxfile="${LNXFILE}" - local f - PATH="${STAGING_BINDIR_NATIVE}/tegra186-flash:${PATH}" - rm -rf "${WORKDIR}/tegraflash" - mkdir -p "${WORKDIR}/tegraflash" - oldwd=`pwd` - cd "${WORKDIR}/tegraflash" - ln -sf "${STAGING_DATADIR}/tegraflash/bsp_version" . - ln -s "${STAGING_DATADIR}/tegraflash/${MACHINE}.cfg" . - ln -s "${STAGING_DATADIR}/tegraflash/${MACHINE}-override.cfg" . - ln -s "${DEPLOY_DIR_IMAGE}/cboot-${MACHINE}.bin" ./cboot_t194.bin - ln -s "${DEPLOY_DIR_IMAGE}/tos-${MACHINE}.img" ./tos-trusty_t194.img - cp "${DEPLOY_DIR_IMAGE}/bootlogo-${MACHINE}.blob" ./bmp.blob - mkdir -p ${DEPLOY_DIR_IMAGE}/bootfiles - cp ./cboot_t194.bin ${DEPLOY_DIR_IMAGE}/bootfiles/ - cp ./bmp.blob ${DEPLOY_DIR_IMAGE}/bootfiles/ - - for f in ${BOOTFILES}; do - ln -s "${STAGING_DATADIR}/tegraflash/$f" . - cp "${STAGING_DATADIR}/tegraflash/$f" ${DEPLOY_DIR_IMAGE}/bootfiles/ - done - - cp ${STAGING_DATADIR}/tegraflash/flashvars . - . ./flashvars - - for f in ${STAGING_DATADIR}/tegraflash/tegra19[4x]-*.cfg; do - ln -s $f . - cp $f ${DEPLOY_DIR_IMAGE}/bootfiles/ - done - - for f in ${STAGING_DATADIR}/tegraflash/tegra194-*-bpmp-*.dtb; do - cp $f . - done - - if [ -n "${NVIDIA_BOARD_CFG}" ]; then - ln -s "${STAGING_DATADIR}/tegraflash/board_config_${MACHINE}.xml" . - boardcfg=board_config_${MACHINE}.xml - else - boardcfg= - fi - export boardcfg - - sed -i -e "s/\[DTBNAME\]/${DTBNAME}/g" ${WORKDIR}/partition_specification194_nxde_sdcard.txt - - ln -s ${STAGING_BINDIR_NATIVE}/tegra186-flash . - - cp "${DEPLOY_DIR_IMAGE}/${DTBFILE}" ./${DTBFILE} - - # This one is used to ensure carrier boards have - # the same bldtb, so that the generated boot0.img - # has valid signatures. - cp "${DEPLOY_DIR_IMAGE}/tegra194-p3668-all-p3509-0000.dtb" . - - # These reside on the eMMC, can differ from bldtb - cp ./${DTBFILE} ./${DTBNAME}-rootA.dtb - cp ./${DTBFILE} ./${DTBNAME}-rootB.dtb - - # Add rootA/rootB and save as separate dtbs to be used when - # switching partitions - bootargs="`fdtget ./${DTBFILE} /chosen bootargs 2>/dev/null`" - fdtput -t s ./${DTBNAME}-rootA.dtb /chosen bootargs "$bootargs ${ROOTA_ARGS} " - fdtput -t s ./${DTBNAME}-rootB.dtb /chosen bootargs "$bootargs ${ROOTB_ARGS} " - - # Need to switch back to default values from flashing, otherwise bootloader dtb offset inside boot0.img will - # change and will generate signature failure in MB2. - bldtbchosenargs="console=ttyTCU0,115200" - bldtbdtsname="/dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t19x/jakku/kernel-dts/tegra194-p3668-all-p3509-0000.dts" - - # Do not overide this hardcoded dtb for any carrier boards, because it is used for bldtb in boot0.img - fdtput -t s ./tegra194-p3668-all-p3509-0000.dtb / "nvidia,dtsfilename" $bldtbdtsname - fdtput -t s ./tegra194-p3668-all-p3509-0000.dtb /chosen bootargs $bldtbchosenargs - - # Make bootable image from kernel and sign it - cp ${DEPLOY_DIR_IMAGE}/${LNXFILE} ${LNXFILE} - ln -sf ${STAGING_BINDIR_NATIVE}/tegra186-flash/mkbootimg ./ - # mkbootimg really needs initrd, even if empty - touch initrd - ./mkbootimg --kernel ${LNXFILE} --ramdisk initrd --board mmcblk0p1 --output boot.img - - # prepare flash.xml.in to be used in signing - cp ${WORKDIR}/${FLASHXML} flash.xml.in - - # prep env for tegraflash - rm -f ./slot_metadata.bin - cp ${STAGING_DATADIR}/tegraflash/slot_metadata.bin ./ - mkdir ./rollback - - ln -sf ${STAGING_BINDIR_NATIVE}/tegra186-flash/rollback_parser.py ./rollback/ - ln -snf ${STAGING_DATADIR}/nv_tegra/rollback/t${@d.getVar('NVIDIA_CHIP')[2:]}x ./rollback/ - ln -sf ${STAGING_BINDIR_NATIVE}/tegra186-flash/BUP_generator.py ./ - ln -sf ${STAGING_BINDIR_NATIVE}/tegra186-flash/${SOC_FAMILY}-flash-helper.sh ./ - ln -sf ${STAGING_BINDIR_NATIVE}/tegra186-flash/tegraflash.py ./ - - rm -rf signed - - # Sign all tegra bins - signfile - - signfile " ${DTBNAME}-rootA.dtb" - signfile " ${DTBNAME}-rootB.dtb" - - # Used in boot0.img - signfile " tegra194-p3668-all-p3509-0000.dtb" - - # Needed to embedd plain initramfs kernel and dtb to main image - cp $localbootfile ${DEPLOY_DIR_IMAGE}/bootfiles/Image - - cp -r ${DTBNAME}-root*.dtb* ${DEPLOY_DIR_IMAGE}/bootfiles/ - cp ${WORKDIR}/${FLASHXML} ${DEPLOY_DIR_IMAGE}/bootfiles/flash.xml - cp -r signed/* ${DEPLOY_DIR_IMAGE}/bootfiles/ - cp tegra194-p3668-all-p3509-0000_sigheader.dtb.encrypt ${DEPLOY_DIR_IMAGE}/bootfiles/ - - dd if=/dev/zero count=1 bs=33554432 | tr "\000" "\377" > boot0.img - dd if=/dev/zero bs=2887 count=1 of=boot0.img conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/br_bct_BR.bct of=boot0.img conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/br_bct_BR.bct of=boot0.img seek=4096 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/br_bct_BR.bct of=boot0.img seek=32768 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/br_bct_BR.bct of=boot0.img seek=65536 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/br_bct_BR.bct of=boot0.img seek=98304 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/mb1_t194_prod_sigheader.bin.encrypt of=boot0.img seek=131072 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/mb1_t194_prod_sigheader.bin.encrypt of=boot0.img seek=393216 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/mb1_cold_boot_bct_MB1_sigheader.bct.encrypt of=boot0.img seek=655360 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/mb1_cold_boot_bct_MB1_sigheader.bct.encrypt of=boot0.img seek=720896 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/mem_coldboot_sigheader.bct.encrypt of=boot0.img seek=786432 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/mem_coldboot_sigheader.bct.encrypt of=boot0.img seek=1048576 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/spe_t194_sigheader.bin.encrypt of=boot0.img seek=1310720 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/spe_t194_sigheader.bin.encrypt of=boot0.img seek=1572864 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/nvtboot_t194_sigheader.bin.encrypt of=boot0.img seek=1835008 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/nvtboot_t194_sigheader.bin.encrypt of=boot0.img seek=2097152 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/preboot_c10_prod_cr_sigheader.bin.encrypt of=boot0.img seek=2359296 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/preboot_c10_prod_cr_sigheader.bin.encrypt of=boot0.img seek=2424832 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/mce_c10_prod_cr_sigheader.bin.encrypt of=boot0.img seek=2490368 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/mce_c10_prod_cr_sigheader.bin.encrypt of=boot0.img seek=2686976 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/mts_c10_prod_cr_sigheader.bin.encrypt of=boot0.img seek=2883584 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/mts_c10_prod_cr_sigheader.bin.encrypt of=boot0.img seek=7077888 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/warmboot_t194_prod_sigheader.bin.encrypt of=boot0.img seek=11272192 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/warmboot_t194_prod_sigheader.bin.encrypt of=boot0.img seek=11403264 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/slot_metadata.bin of=boot0.img seek=11534336 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/slot_metadata.bin of=boot0.img seek=11599872 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/xusb_sil_rel_fw of=boot0.img seek=11665408 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/xusb_sil_rel_fw of=boot0.img seek=11862016 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/cboot_t194_sigheader.bin.encrypt of=boot0.img seek=12058624 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/cboot_t194_sigheader.bin.encrypt of=boot0.img seek=13500416 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/tegra194-p3668-all-p3509-0000_sigheader.dtb.encrypt of=boot0.img seek=14942208 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/tegra194-p3668-all-p3509-0000_sigheader.dtb.encrypt of=boot0.img seek=15400960 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/bmp.blob of=boot0.img seek=15859712 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/bmp.blob of=boot0.img seek=16056320 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/tos-trusty_t194_sigheader.img.encrypt of=boot0.img seek=16252928 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/tos-trusty_t194_sigheader.img.encrypt of=boot0.img seek=18874368 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/eks_sigheader.img.encrypt of=boot0.img seek=21495808 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/eks_sigheader.img.encrypt of=boot0.img seek=21561344 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/adsp-fw_sigheader.bin.encrypt of=boot0.img seek=21626880 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/adsp-fw_sigheader.bin.encrypt of=boot0.img seek=22675456 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/camera-rtcpu-rce_sigheader.img.encrypt of=boot0.img seek=23724032 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/camera-rtcpu-rce_sigheader.img.encrypt of=boot0.img seek=24772608 bs=1 conv=notrunc - - # sce-fw empty both a+b - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/bpmp_t194_sigheader.bin.encrypt of=boot0.img seek=27918336 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/bpmp_t194_sigheader.bin.encrypt of=boot0.img seek=29491200 bs=1 conv=notrunc - - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/tegra194-a02-bpmp-p3668-a00_sigheader.dtb.encrypt of=boot0.img seek=31064064 bs=1 conv=notrunc - dd if=${DEPLOY_DIR_IMAGE}/bootfiles/tegra194-a02-bpmp-p3668-a00_sigheader.dtb.encrypt of=boot0.img seek=32112640 bs=1 conv=notrunc - - # boot option file is empty on a clean flashed board, will leave it here - # for offset refference - #dd if=${DEPLOY_DIR_IMAGE}/bootfiles/cbo.dtb seek=33161216 bs=1 conv=notrunc - #dd if=${DEPLOY_DIR_IMAGE}/bootfiles/cbo.dtb seek=33226752 bs=1 conv=notrunc - - # For 32.6.1 /opt/tegra-binaries/boot0.img MD5 should have the same MD5 - # even if building images for compatible carrier boards. If it isn't identical, - # then board won't boot after HUP. - cp ${WORKDIR}/${BOOT_BINDIFF} . - dd if=${BOOT_BINDIFF} of=boot0.img seek=14942224 bs=1 count=32 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=14945200 skip=32 bs=1 count=80 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=15400976 skip=112 bs=1 count=32 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=15400992 skip=144 bs=1 count=32 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=15403952 skip=176 bs=1 count=80 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=16252944 skip=256 bs=1 count=32 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=16255920 skip=288 bs=1 count=4 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=18874384 skip=292 bs=1 count=64 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=18877360 skip=356 bs=1 count=4 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=21495824 skip=360 bs=1 count=64 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=21498800 skip=424 bs=1 count=4 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=21561360 skip=428 bs=1 count=64 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=21564336 skip=492 bs=1 count=4 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=27918352 skip=496 bs=1 count=64 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=27921328 skip=560 bs=1 count=4 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=29491216 skip=564 bs=1 count=64 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=29494192 skip=628 bs=1 count=4 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=31064080 skip=632 bs=1 count=64 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=31067056 skip=696 bs=1 count=4 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=32112656 skip=700 bs=1 count=64 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=32115632 skip=764 bs=1 count=4 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=33292288 skip=768 bs=1 count=256 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=33357824 skip=1024 bs=1 count=256 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=33537536 skip=1280 bs=1 count=16896 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=14946816 skip=18176 bs=1 count=48 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=15101952 skip=18224 bs=1 count=128 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=15405568 skip=18352 bs=1 count=48 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=15560704 skip=18400 bs=1 count=128 conv=notrunc - - # Needed starting with 32.6.1 - dd if=${BOOT_BINDIFF} of=boot0.img seek=31067056 skip=18528 bs=1 count=16 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=31067104 skip=18544 bs=1 count=32 conv=notrunc - dd if=${BOOT_BINDIFF} of=boot0.img seek=31068160 skip=18576 bs=1 count=64 conv=notrunc -} - -do_install() { - install -d ${D}/${BINARY_INSTALL_PATH} - cp -r ${S}/tegraflash/signed/* ${D}/${BINARY_INSTALL_PATH} - - cp ${S}/tegraflash/${DTBNAME}-rootA.dtb ${D}/${BINARY_INSTALL_PATH}/ - cp ${WORKDIR}/partition_specification194_nxde_sdcard.txt ${D}/${BINARY_INSTALL_PATH}/ - cp -r ${S}/tegraflash/${DTBNAME}-root*sigheader.dtb.encrypt ${D}/${BINARY_INSTALL_PATH} - cp ${S}/tegraflash/boot0.img ${D}/${BINARY_INSTALL_PATH} - # When generating image, this will be default dtb containing cmdline with root set to resin-rootA - cp ${S}/tegraflash/${DTBNAME}-rootA_sigheader.dtb.encrypt ${DEPLOY_DIR_IMAGE}/bootfiles/${DTBNAME}_sigheader.dtb.encrypt -} - -do_deploy() { - rm -rf ${DEPLOYDIR}/$(basename ${BINARY_INSTALL_PATH}) - mkdir -p ${DEPLOYDIR}/$(basename ${BINARY_INSTALL_PATH}) - cp -r ${D}/${BINARY_INSTALL_PATH}/* ${DEPLOYDIR}/$(basename ${BINARY_INSTALL_PATH}) -} - -FILES:${PN} += "${BINARY_INSTALL_PATH}" - -INHIBIT_PACKAGE_STRIP = "1" -INHIBIT_PACKAGE_DEBUG_SPLIT = "1" - -# Binaries copied to DEPLOY_DIR_IMAGE -# to be included in the boot partition -# need to be redeployed on each build -# as this path is not cached -do_install[nostamp] = "1" -do_deploy[nostamp] = "1" -do_configure[nostamp] = "1" - -do_configure[depends] += " tegra-binaries:do_preconfigure" -do_configure[depends] += " virtual/kernel:do_deploy \ - virtual/bootloader:do_deploy \ -" -do_configure[depends] += " cboot:do_deploy" -do_configure[depends] += " tos-prebuilt:do_deploy" - -do_install[depends] += " virtual/kernel:do_deploy" -do_populate_lic[depends] += "tegra-binaries:do_unpack" - -addtask do_deploy before do_package after do_install - -COMPATIBLE_MACHINE = "jetson-xavier-nx-devkit" diff --git a/layers/meta-balena-jetson/recipes-core/images/balena-image-initramfs.bbappend b/layers/meta-balena-jetson/recipes-core/images/balena-image-initramfs.bbappend index 891ef0cb3..1260a76e0 100644 --- a/layers/meta-balena-jetson/recipes-core/images/balena-image-initramfs.bbappend +++ b/layers/meta-balena-jetson/recipes-core/images/balena-image-initramfs.bbappend @@ -5,9 +5,6 @@ PACKAGE_INSTALL:append = " tegra-firmware-xusb" # the kernel size to allow for host extensions support for now. #PACKAGE_INSTALL:append:jetson-tx1 = " kernel-module-bcmdhd" PACKAGE_INSTALL:remove:jetson-tx1 = "tegra-firmware-xusb" -PACKAGE_INSTALL:append:jetson-xavier = " util-linux-blockdev initramfs-module-blockdev" -PACKAGE_INSTALL:append:jetson-xavier-nx-devkit-emmc = " util-linux-blockdev initramfs-module-blockdev" -PACKAGE_INSTALL:append:jetson-xavier-nx-devkit = " util-linux-blockdev initramfs-module-blockdev" PACKAGE_INSTALL:remove:astro-tx2 = " mdraid" PACKAGE_INSTALL:remove:blackboard-tx2 = " mdraid" diff --git a/layers/meta-balena-jetson/recipes-core/images/balena-image.bbappend b/layers/meta-balena-jetson/recipes-core/images/balena-image.bbappend index 3d072671a..9b4d5db72 100644 --- a/layers/meta-balena-jetson/recipes-core/images/balena-image.bbappend +++ b/layers/meta-balena-jetson/recipes-core/images/balena-image.bbappend @@ -73,41 +73,6 @@ device_specific_configuration:jetson-nano-2gb-devkit() { done } -# We leave this space way larger than currently -# needed because other larger partitions are -# added from one Jetpack release to another -DEVICE_SPECIFIC_SPACE:jetson-xavier = "458752" - -# Binaries are signed and packed into -# a partition and the flaser script -# gets them from there. Can't store them -# raw due to partition alignments which -# trigger checksum mismatches during flash - -do_image:balenaos-img:jetson-xavier[depends] += " tegra194-flash-dry:do_deploy" -device_specific_configuration:jetson-xavier() { - partitions=$(cat ${DEPLOY_DIR_IMAGE}/tegra-binaries/partition_specification194.txt) - NVIDIA_PART_OFFSET=20480 - START=${NVIDIA_PART_OFFSET} - for n in ${partitions}; do - part_name=$(echo $n | cut -d ':' -f 1) - file_name=$(echo $n | cut -d ':' -f 2) - part_size=$(echo $n | cut -d ':' -f 3) - file_path=$(find ${DEPLOY_DIR_IMAGE}/bootfiles -name $file_name) - END=$(expr ${START} \+ ${part_size} \- 1) - echo "Will write $part_name from ${START} to ${END} part size: $part_size" - parted -s ${BALENA_RAW_IMG} unit B mkpart $part_name ${START} ${END} - # The padding partition exists to allow for the device specific space to - # be a multiple of 4096. We don't write anything to it for the moment. - if [ ! "$file_name" = "none.bin" ]; then - check_size ${file_path} ${part_size} - dd if=$file_path of=${BALENA_RAW_IMG} conv=notrunc seek=$(expr ${START} \/ 512) bs=512 - fi - START=$(expr ${END} \+ 1) - done - -} - NVIDIA_PART_OFFSET:jetson-tx2="4097" DEVICE_SPECIFIC_SPACE:jetson-tx2="49152" @@ -196,18 +161,3 @@ write_jetson_nx_partitions() { START=$(expr ${END} \+ 1) done } - -# We leave this space way larger than currently -# needed because other larger partitions can be -# added from one Jetpack release to another -DEVICE_SPECIFIC_SPACE:jetson-xavier-nx-devkit-emmc = "458752" -do_image:balenaos-img:jetson-xavier-nx-devkit-emmc[depends] += " tegra194-nxde-flash-dry:do_deploy" -device_specific_configuration:jetson-xavier-nx-devkit-emmc() { - write_jetson_nx_partitions "partition_specification194_nxde.txt" -} - -DEVICE_SPECIFIC_SPACE:jetson-xavier-nx-devkit = "458752" -do_image:balenaos-img:jetson-xavier-nx-devkit[depends] += " tegra194-nxde-sdcard-flash:do_deploy" -device_specific_configuration:jetson-xavier-nx-devkit() { - write_jetson_nx_partitions "partition_specification194_nxde_sdcard.txt" -} diff --git a/layers/meta-balena-jetson/recipes-core/images/balena-image.inc b/layers/meta-balena-jetson/recipes-core/images/balena-image.inc index 0567bb103..9b8cc6591 100644 --- a/layers/meta-balena-jetson/recipes-core/images/balena-image.inc +++ b/layers/meta-balena-jetson/recipes-core/images/balena-image.inc @@ -20,10 +20,7 @@ DTBFILE:jn30b-nano = "tegra210-p3448-0002-p3449-0000-b00-jn30b.dtb" DTBFILE:photon-nano = "tegra210-nano-cti-NGX003.dtb" DTBFILE:photon-tx2-nx = "tegra186-tx2-nx-cti-NGX003-IMX219-2CAM.dtb" DTBFILE:floyd-nano="tegra210-p3448-0002-p3449-0000-b00-floyd-nano.dtb" -DTBFILE:photon-xavier-nx = "tegra194-xavier-nx-cti-NGX003.dtb" DTBFILE:cnx100-xavier-nx = "tegra194-xavier-nx-cnx100.dtb" -DTBNAME:jetson-xavier="tegra194-p2888-0001-p2822-0000" -DTBNAME:jetson-xavier-nx-devkit-seeed-2mic-hat="tegra194-p3668-all-p3509-0000-seeed-2mic-hat" BALENA_BOOT_PARTITION_FILES:append = " \ dispatcher.d/50-sample-script:/dispatcher.d/50-sample-script \ @@ -48,54 +45,17 @@ BALENA_BOOT_PARTITION_FILES:append:jetson-nano = " ${NANO_BOOT_PARTITION_FILES} BALENA_BOOT_PARTITION_FILES:append:jetson-nano-emmc = "${NANO_BOOT_PARTITION_FILES}" BALENA_BOOT_PARTITION_FILES:append:jetson-nano-2gb-devkit = "${NANO_BOOT_PARTITION_FILES}" - -do_rootfs:balenaos-img:jetson-xavier[depends] += " tegra194-flash-dry:do_deploy " - -BALENA_BOOT_PARTITION_FILES:append:jetson-xavier = " \ - bootfiles/mb1_t194_prod_sigheader.bin.encrypt:/bootfiles/mb1_t194_prod_sigheader.bin.encrypt \ - bootfiles/spe_t194_sigheader.bin.encrypt:/bootfiles/spe_t194_sigheader.bin.encrypt \ - bootfiles/nvtboot_t194_sigheader.bin.encrypt:/bootfiles/nvtboot_t194_sigheader.bin.encrypt \ - bootfiles/preboot_c10_prod_cr_sigheader.bin.encrypt:/bootfiles/preboot_c10_prod_cr_sigheader.bin.encrypt \ - bootfiles/slot_metadata.bin:/bootfiles/slot_metadata.bin \ - bootfiles/bmp.blob:/bootfiles/bmp.blob \ - bootfiles/mce_c10_prod_cr_sigheader.bin.encrypt:/bootfiles/mce_c10_prod_cr_sigheader.bin.encrypt \ - bootfiles/mts_c10_prod_cr_sigheader.bin.encrypt:/bootfiles/mts_c10_prod_cr_sigheader.bin.encrypt \ - bootfiles/cboot_t194_sigheader.bin.encrypt:/bootfiles/cboot_t194_sigheader.bin.encrypt \ - bootfiles/tos-trusty_t194_sigheader.img.encrypt:/bootfiles/tos-trusty_t194_sigheader.img.encrypt \ - bootfiles/eks_sigheader.img.encrypt:/bootfiles/eks_sigheader.img.encrypt \ - bootfiles/bpmp_t194_sigheader.bin.encrypt:/bootfiles/bpmp_t194_sigheader.bin.encrypt \ - bootfiles/tegra194-a02-bpmp-p2888-a04_sigheader.dtb.encrypt:/bootfiles/tegra194-a02-bpmp-p2888-a04_sigheader.dtb.encrypt \ - bootfiles/xusb_sil_rel_fw:/bootfiles/xusb_sil_rel_fw \ - bootfiles/camera-rtcpu-rce_sigheader.img.encrypt:/bootfiles/camera-rtcpu-rce_sigheader.img.encrypt \ - bootfiles/adsp-fw_sigheader.bin.encrypt:/bootfiles/adsp-fw_sigheader.bin.encrypt \ - bootfiles/warmboot_t194_prod_sigheader.bin.encrypt:/bootfiles/warmboot_t194_prod_sigheader.bin.encrypt \ - bootfiles/${DTBNAME}-rootA_sigheader.dtb.encrypt:/bootfiles/${DTBNAME}-rootA_sigheader.dtb.encrypt \ - bootfiles/${DTBNAME}-rootB_sigheader.dtb.encrypt:/bootfiles/${DTBNAME}-rootB_sigheader.dtb.encrypt \ - bootfiles/boot0_t194.bin.gz:/bootfiles/boot0_t194.bin.gz \ - tegra-binaries/partition_specification194.txt:/bootfiles/partition_specification194.txt \ -" - do_rootfs:balenaos-img:jetson-tx2[depends] += " tegra186-flash-dry:do_deploy \ linux-tegra:do_deploy \ " -do_rootfs:balenaos-img:jetson-xavier-nx-devkit-emmc[depends] += " tegra194-nxde-flash-dry:do_deploy " -do_rootfs:balenaos-img:jetson-xavier-nx-devkit[depends] += " tegra194-nxde-sdcard-flash:do_deploy " - # The space resinOS takes will amount to 1GiB IMAGE_ROOTFS_SIZE = "487424" -# Bootloader blob is 32MB on the NX -IMAGE_ROOTFS_SIZE:jetson-xavier-nx-devkit-emmc = "733184" -IMAGE_ROOTFS_SIZE:jetson-xavier-nx-devkit = "733184" - # Need space for all the above signed update binaries BALENA_BOOT_SIZE:jetson-nano = "80960" BALENA_BOOT_SIZE:jetson-nano-2gb-devkit = "80960" BALENA_BOOT_SIZE:jetson-nano-emmc = "80960" -BALENA_BOOT_SIZE:jetson-xavier = "121440" -BALENA_BOOT_SIZE:jetson-xavier-nx-devkit-emmc = "121440" -BALENA_BOOT_SIZE:jetson-xavier-nx-devkit = "121440" BALENA_BOOT_SIZE:jetson-tx2="80960" BALENA_BOOT_SIZE:jetson-tx1="80960" @@ -112,48 +72,6 @@ IMAGE_INSTALL:append:jetson-nano = "${IMAGE_PACKAGES_NANO}" IMAGE_INSTALL:append:jetson-nano-emmc = "${IMAGE_PACKAGES_NANO}" IMAGE_INSTALL:append:jetson-nano-2gb-devkit = "${IMAGE_PACKAGES_NANO}" -IMAGE_INSTALL:append:jetson-xavier = " \ - tegra194-flash-dry \ - fan-startup \ - parted \ - gptfdisk \ - tegra-nvpmodel \ - tegra-configs-nvstartup \ - tegra-configs-udev \ - tegra-boot-tools \ -" - -IMAGE_INSTALL:append:jetson-xavier-nx-devkit-emmc = " \ - tegra194-nxde-flash-dry \ - parted \ - gptfdisk \ - tegra-nvpmodel \ - tegra-configs-nvstartup \ - tegra-configs-udev \ - tegra-wifi \ - tegra-bluetooth \ - tegra-firmware-rtl8822 \ - tegra-udrm-probeconf \ - mtd-utils \ - tegra-boot-tools \ -" - -IMAGE_INSTALL:append:jetson-xavier-nx-devkit = " \ - tegra194-nxde-sdcard-flash \ - fan-startup \ - parted \ - gptfdisk \ - tegra-nvpmodel \ - tegra-configs-nvstartup \ - tegra-configs-udev \ - mtd-utils \ - tegra-bluetooth \ - tegra-wifi \ - tegra-firmware-rtl8822 \ - tegra-udrm-probeconf \ - tegra-boot-tools \ -" - IMAGE_INSTALL:append:jetson-tx2 = " \ tegra186-flash-dry \ parted \ diff --git a/layers/meta-balena-jetson/recipes-core/initrdscripts/initramfs-framework_%.bbappend b/layers/meta-balena-jetson/recipes-core/initrdscripts/initramfs-framework_%.bbappend index 3c759f24e..1d1ada7ac 100644 --- a/layers/meta-balena-jetson/recipes-core/initrdscripts/initramfs-framework_%.bbappend +++ b/layers/meta-balena-jetson/recipes-core/initrdscripts/initramfs-framework_%.bbappend @@ -1,41 +1,5 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/files:" -SRC_URI:append:jetson-xavier = " \ - file://blockdev \ -" - -SRC_URI:append:jetson-xavier-nx-devkit-emmc = " \ - file://blockdev \ -" - -SRC_URI:append:jetson-xavier-nx-devkit = " \ - file://blockdev \ -" - -do_install:append:jetson-xavier() { - install -m 0755 ${WORKDIR}/blockdev ${D}/init.d/02-blockdev -} - -do_install:append:jetson-xavier-nx-devkit-emmc() { - install -m 0755 ${WORKDIR}/blockdev ${D}/init.d/02-blockdev -} - -do_install:append:jetson-xavier-nx-devkit() { - install -m 0755 ${WORKDIR}/blockdev ${D}/init.d/02-blockdev -} - -PACKAGES:append:jetson-xavier = " \ - initramfs-module-blockdev \ -" - -PACKAGES:append:jetson-xavier-nx-devkit-emmc = " \ - initramfs-module-blockdev \ -" - -PACKAGES:append:jetson-xavier-nx-devkit = " \ - initramfs-module-blockdev \ -" - # Run this script after 01-udev # to populate /dev with emmc partitions SUMMARY:initramfs-module-blockdev = "Trigger ioctl to force re-read emmc partitions" diff --git a/layers/meta-balena-jetson/recipes-kernel/linux/kernel-image-initramfs.bbappend b/layers/meta-balena-jetson/recipes-kernel/linux/kernel-image-initramfs.bbappend index 6a872187a..7d3a9cfa3 100644 --- a/layers/meta-balena-jetson/recipes-kernel/linux/kernel-image-initramfs.bbappend +++ b/layers/meta-balena-jetson/recipes-kernel/linux/kernel-image-initramfs.bbappend @@ -1,20 +1,3 @@ -# For Xavier devices, which don't use -# u-boot and load the kernel from a raw -# partition, we can free up some rootfs -# space that would otherwise be taken up by -# the kernel image. -do_install:append:jetson-xavier() { - echo "" > ${D}/boot/${type} -} - -do_install:append:jetson-xavier-nx-devkit-emmc() { - echo "" > ${D}/boot/${type} -} - -do_install:append:jetson-xavier-nx-devkit() { - echo "" > ${D}/boot/${type} -} - # Fixes error: packages already installed # by kernel-image-initramfs do_install:append() { diff --git a/layers/meta-balena-jetson/recipes-support/hostapp-update-hooks/files/99-resin-bootfiles-xavier b/layers/meta-balena-jetson/recipes-support/hostapp-update-hooks/files/99-resin-bootfiles-xavier deleted file mode 100644 index 41ed2b31a..000000000 --- a/layers/meta-balena-jetson/recipes-support/hostapp-update-hooks/files/99-resin-bootfiles-xavier +++ /dev/null @@ -1,185 +0,0 @@ -#!/bin/sh -set -o errexit - -# Script which writes the appropriate -# device tree with embedded cmdline -# and updates the kernel, as well as -# the rest of the bootloader binaries - -. /usr/libexec/os-helpers-fs -. /usr/libexec/os-helpers-logging - -DURING_UPDATE=${DURING_UPDATE:-0} -bootloader_device="/dev/mmcblk0boot0" -partspec="/resin-boot/bootfiles/partition_specification194.txt" -bootloader_blob="/resin-boot/bootfiles/boot0_t194.bin.gz" -bootpart_kernel="/mnt/boot/bootfiles/boot_sigheader.img.encrypt" - -# Check if old release made use of -# DURING_UPDATE flag and backport rollback-altboot -# fix to old hook if necessary. -backport_rollback_altboot_fix() -{ - inactive_hook=$(find /mnt/sysroot/active/ | grep "99-resin-bootfiles-xavier") - if grep -q "DURING_UPDATE" "${inactive_hook}"; then - info "No need to backport altboot fix to old hook" - else - info "Will backport rollback-altboot fix to old hook" - sed -i 's/os-helpers-fs/os-helpers-fs \nDURING_UPDATE=${DURING_UPDATE:-0}\nif [ "$DURING_UPDATE" = "0" ]; then target_sysroot="active"; else target_sysroot="inactive"; fi; /g' ${inactive_hook} - sed -i 's|/mnt/sysroot/inactive|/mnt/sysroot/${target_sysroot}|g' ${inactive_hook} - info "Applied rollback-altboot fix to old hostapp-update hook" - fi - - if [ -e ${bootpart_kernel} ]; then - rm ${bootpart_kernel} - info "Removed signed kernel binary from boot partition, it is now located in the rootfs" - else - info "No need to remove kernel binary from boot partition" - fi -} - -get_label_suffix_by_slot() -{ - if [ $1 -eq 0 ]; then - echo '' - else - echo '_b' - fi -} - -if ! command -v tegra-boot-control &> /dev/null -then - info "Could not find tegra-boot-control!" - exit 1 -fi - -redundancy_state=$(/usr/bin/tegra-boot-control -s | awk -F 'Redundancy:' '{print $2}' | awk '{print $1}' | tr -d '\n') -info "Redundancy is currently ${redundancy_state}" - -# Enable boot slot redundancy if not enabled already -tegra-boot-control -e -curr_slot=$(/usr/bin/tegra-boot-control -c) -info "Current active slot is ${curr_slot}" - -if [ "$DURING_UPDATE" = "1" ]; then - backport_rollback_altboot_fix - info "Target active slot is $((target_slot = ! curr_slot))" - target_sysroot="inactive" -else - info "Target active slot stays $((target_slot = curr_slot))" - target_sysroot="active" -fi - -target_part=$(findmnt --noheadings --canonicalize --output SOURCE "/mnt/sysroot/${target_sysroot}" -t ext4) -info "New rootfs partition is ${target_part}" - -target_label_suffix=$(get_label_suffix_by_slot ${target_slot}) -rootstr=$(get_dev_label "${target_part}") -rootl="" - -update_needed() { - current_update_file=${1} - device=${2} - update_size=$(ls -al $current_update_file | awk '{print $5}') - update_md5sum=$(md5sum $current_update_file | awk '{print $1'}) - existing_md5sum=$(dd if=$device bs=1 count=$update_size status=none | md5sum | awk '{print $1}') - - if [ ! "$existing_md5sum" = "$update_md5sum" ]; then - echo 1 - else - echo 0 - fi -} - -case "$rootstr" in - *resin-rootA*) - rootl="A" - ;; - *resin-rootB*) - rootl="B" - ;; - *) - rootl="Undefined" - ;; -esac - -info "New root is resin-root${rootl}" - -dtbname=$(cat "$partspec" | grep "kernel-dtb_b" | cut -d ':' -f 2 | awk -F'_sigheader' '{print $1}') -dtbfile="${dtbname}-root${rootl}_sigheader.dtb.encrypt" -kernel="boot_sigheader.img.encrypt" -partitions=$(cat "${partspec}") - -for n in ${partitions}; do - part_name=$(echo $n | cut -d ':' -f 1) - file_name=$(echo $n | cut -d ':' -f 2) - - if [ -z "${part_name##*kernel*}" ] || [ -z "${part_name##*bootloader-dtb*}" ] || [ $file_name = "none.bin" ]; then - continue - fi - - file_path=$(get_state_path_from_label $part_name) - - if [ "x$file_path" = "x" ]; then - continue - fi - - # On the Xavier AGX, MB1 on 32.6.1 wants both slots _a and _b to have - # 32.6.1 binaries, otherwise it enters debug mode as soon as the retry - # count goes down to 0. We have tried updating only _b slots inside boot0 blob, - # marking old slot as successfull too before switching to the new one, but without - # success. The only solution is to update everything to 32.6.1 and just leave - # the old kernel and kernel dtb in place, for the fallback to take place. - # See: https://github.com/OE4T/meta-tegra/issues/879#issuecomment-1034908517 - dst="${file_path}" - src="/resin-boot/bootfiles/$file_name" - if [ -e ${dst} ]; then - if [ $(update_needed $src $dst) -eq 1 ]; then - info "Will update ${dst} ..." - dd if=${src} of="${dst}" bs=64K conv=fsync - info "Updated ${dst}" - else - info "No need to update ${dst}" - fi - else - info "Partition ${dst} not found" - fi -done - -# DTB contains root partition label, update is mandatory on the new boot slot, before switching it to active -info "Writing ${dtbfile} to specific to bootloader-dtb partition." -dd if=/resin-boot/bootfiles/${dtbfile} of=$(get_state_path_from_label "bootloader-dtb") bs=64K conv=fsync - -info "Writing ${dtbfile} to specific to bootloader-dtb_b partition." -dd if=/resin-boot/bootfiles/${dtbfile} of=$(get_state_path_from_label "bootloader-dtb_b") bs=64K conv=fsync - -dd if=/resin-boot/bootfiles/${dtbfile} of=$(get_state_path_from_label "kernel-dtb${target_label_suffix}") bs=64K conv=fsync - -info "Writing kernel ${kernel} to specific partitions..." - -dd if=/opt/tegra-binaries/${kernel} of=$(get_state_path_from_label "kernel${target_label_suffix}") bs=64K conv=fsync -info "Updating boot image on hw partition mmcblk0boot0..." - -existing_bootloader_md5sum=$(dd if=$bootloader_device bs=1M status=none | md5sum | awk '{print $1}') -update_bootloader_md5sum=$(zcat $bootloader_blob | md5sum | awk '{print $1}') - -if [ ! "$existing_bootloader_md5sum" = "$update_bootloader_md5sum" ]; then - echo 0 > /sys/block/mmcblk0boot0/force_ro - zcat $bootloader_blob | dd of=$bootloader_device bs=64K conv=fsync - echo 1 > /sys/block/mmcblk0boot0/force_ro -fi - -# Update slot selection after the qspi was updated, otherwise -# scratch register contents will be lost -info "Setting active slot to ${target_slot}" -/usr/bin/tegra-boot-control -e -/usr/bin/tegra-boot-control -a ${target_slot} - -if [ "$DURING_UPDATE" = "0" ]; then - /usr/bin/tegra-boot-control -m - info "Running in rollback-altboot, next boot will be from the same slot. Marked boot as successful." -fi - -info "Done." - -sync diff --git a/layers/meta-balena-jetson/recipes-support/hostapp-update-hooks/files/99-resin-bootfiles-xavier-nx-devkit b/layers/meta-balena-jetson/recipes-support/hostapp-update-hooks/files/99-resin-bootfiles-xavier-nx-devkit deleted file mode 100644 index d75139b5f..000000000 --- a/layers/meta-balena-jetson/recipes-support/hostapp-update-hooks/files/99-resin-bootfiles-xavier-nx-devkit +++ /dev/null @@ -1,173 +0,0 @@ -#!/bin/sh -set -o errexit - -# Script which writes the appropriate -# device tree with embedded cmdline -# and updates the kernel, as well as -# the rest of the bootloader binaries - -. /usr/libexec/os-helpers-fs -. /usr/libexec/os-helpers-logging - -DURING_UPDATE=${DURING_UPDATE:-0} -declare -a UPDATED_PARTITIONS=() -bootloader_device="/dev/mtdblock0" -bootloader_blob="/opt/tegra-binaries/boot0.img" -partspec=$(find "/opt/tegra-binaries/" | grep "partition_specification194_nx") - -# Check if old hook made use of DURING_UPDATE -# and if not, backport rollback-altboot fix -# to it if necessary. -backport_rollback_altboot_fix() -{ - inactive_hook=$(find /mnt/sysroot/active/ | grep "99-resin-bootfiles-xavier-nx-devkit") - if grep -q "DURING_UPDATE" "${inactive_hook}"; then - info "No need to backport altboot fix to old hook" - else - info "Will backport rollback-altboot fix to old hook" - sed -i 's/os-helpers-fs/os-helpers-fs \nDURING_UPDATE=${DURING_UPDATE:-0}\nif [ "$DURING_UPDATE" = "0" ]; then target_sysroot="active"; else target_sysroot="inactive"; fi; /g' ${inactive_hook} - sed -i 's|/mnt/sysroot/inactive|/mnt/sysroot/${target_sysroot}|g' ${inactive_hook} - info "Applied rollback-altboot fix to old hostapp-update hook" - fi -} - -get_label_suffix_by_slot() -{ - if [ $1 -eq 0 ]; then - echo '' - else - echo '_b' - fi -} - -if ! command -v tegra-boot-control &> /dev/null -then - info "Could not find tegra-boot-control!" - exit 1 -fi - -redundancy_state=$(/usr/bin/tegra-boot-control -s | awk -F 'Redundancy:' '{print $2}' | awk '{print $1}' | tr -d '\n') -info "Redundancy is currently ${redundancy_state}" - -# Enable boot slot redundancy if not enabled already -tegra-boot-control -e -curr_slot=$(/usr/bin/tegra-boot-control -c) -info "Current active slot is ${curr_slot}" - -if [ "$DURING_UPDATE" = "1" ]; then - backport_rollback_altboot_fix - info "Target active slot is $((target_slot = ! curr_slot))" - target_sysroot="inactive" -else - info "Target active slot stays $((target_slot = curr_slot))" - target_sysroot="active" -fi - -target_part=$(findmnt --noheadings --canonicalize --output SOURCE "/mnt/sysroot/${target_sysroot}" -t ext4) -info "New rootfs partition is ${target_part}" - -target_label_suffix=$(get_label_suffix_by_slot ${target_slot}) -rootstr=$(get_dev_label "${target_part}") -rootl="" - -update_needed() { - current_update_file=${1} - device=${2} - if [[ " ${UPDATED_PARTITIONS[*]} " =~ " ${device} " ]]; then - echo 0 - else - update_size=$(ls -al $current_update_file | awk '{print $5}') - update_md5sum=$(md5sum $current_update_file | awk '{print $1'}) - existing_md5sum=$(dd if=$device count=1 bs=$update_size status=none | md5sum | awk '{print $1}') - - if [ ! "$existing_md5sum" = "$update_md5sum" ]; then - echo 1 - else - echo 0 - fi - fi -} - -case "$rootstr" in - *resin-rootA*) - rootl="A" - ;; - *resin-rootB*) - rootl="B" - ;; - *) - rootl="Undefined" - ;; -esac - -info "New root is resin-root${rootl}" - -dtbname=$(cat "$partspec" | grep "kernel-dtb_b" | cut -d ':' -f 2 | awk -F'_sigheader' '{print $1}') -dtbfile="${dtbname}-root${rootl}_sigheader.dtb.encrypt" -kernel="boot_sigheader.img.encrypt" -partitions=$(cat ${partspec}) - -for n in ${partitions}; do - part_name=$(echo $n | cut -d ':' -f 1 | cut -d '_' -f 1) - file_name=$(echo $n | cut -d ':' -f 2) - - if [ -z "${part_name##*kernel*}" ] || [ -z "${part_name##*bootloader-dtb*}" ] || [ $file_name = "none.bin" ]; then - continue - fi - - file_path=$(get_state_path_from_label $part_name) - - if [ "x$file_path" = "x" ]; then - continue - fi - - dst="${file_path}${target_label_suffix}" - src="/opt/tegra-binaries/${file_name}" - - if [ -e ${dst} ]; then - if [ $(update_needed $src $dst) -eq 1 ]; then - info "Will update ${dst} ..." - dd if=${src} of="${dst}" bs=64K conv=fsync - UPDATED_PARTITIONS+=(${dst}) - info "Updated ${dst}" - else - info "No need to update ${dst}" - fi - else - info "Duplicate slot for target partition ${dst} not available, ignoring." - fi -done - -# DTB contains root partition, update is mandatory on the new boot slot, before switching it to active -info "Writing ${dtbfile} to specific partitions..." -dd if=/opt/tegra-binaries/${dtbfile} of=$(get_state_path_from_label "kernel-dtb${target_label_suffix}") bs=64K conv=fsync - -info "Writing kernel ${kernel} to specific partitions..." -dd if=/opt/tegra-binaries/${kernel} of=$(get_state_path_from_label "kernel${target_label_suffix}") bs=64K conv=fsync - -existing_bootloader_md5sum=$(dd if=$bootloader_device bs=1M status=none | md5sum | awk '{print $1}') -update_bootloader_md5sum=$(md5sum $bootloader_blob | awk '{print $1}') - -if [ ! "$existing_bootloader_md5sum" = "$update_bootloader_md5sum" ]; then - info "Will update bootloader device" - flash_erase /dev/mtd0 0 0 || true - dd if=$bootloader_blob of=$bootloader_device bs=1M conv=fsync -else - info "No need to update bootloader device" -fi - -# Sync internal memory -sync /dev/mmcblk0 - -# Update slot selection after the qspi was updated, otherwise -# scratch register contents will be lost -info "Setting active slot to ${target_slot}" -/usr/bin/tegra-boot-control -e -/usr/bin/tegra-boot-control -a ${target_slot} - -if [ "$DURING_UPDATE" = "0" ]; then - /usr/bin/tegra-boot-control -m - info "Running in rollback-altboot, next boot will be from the same slot. Marked boot as successful." -fi - -info "Done." diff --git a/layers/meta-balena-jetson/recipes-support/hostapp-update-hooks/hostapp-update-hooks.bbappend b/layers/meta-balena-jetson/recipes-support/hostapp-update-hooks/hostapp-update-hooks.bbappend index bd436f6ef..b6da44cb1 100644 --- a/layers/meta-balena-jetson/recipes-support/hostapp-update-hooks/hostapp-update-hooks.bbappend +++ b/layers/meta-balena-jetson/recipes-support/hostapp-update-hooks/hostapp-update-hooks.bbappend @@ -18,25 +18,6 @@ HOSTAPP_HOOKS:append:jetson-nano-2gb-devkit = " 99-resin-uboot \ 99-resin-bootfiles-nano \ " -DEPENDS:append:jetson-xavier = " tegra194-flash-dry" -DEPENDS:append:jetson-xavier-nx-devkit-emmc = " tegra194-nxde-flash-dry" -DEPENDS:append:jetson-xavier-nx-devkit = " tegra194-nxde-sdcard-flash" - -# Xaviers do not use u-boot, but for rollbacks to work -# we need to update the resinOS_uEnv.txt file -HOSTAPP_HOOKS:append:jetson-xavier = " \ - 99-resin-uboot \ - 99-resin-bootfiles-xavier \ -" - -XAVIER_NX_HOOKS = " \ - 99-resin-uboot \ - 99-resin-bootfiles-xavier-nx-devkit \ -" - -HOSTAPP_HOOKS:append:jetson-xavier-nx-devkit-emmc = " ${XAVIER_NX_HOOKS}" -HOSTAPP_HOOKS:append:jetson-xavier-nx-devkit = " ${XAVIER_NX_HOOKS}" - DEPENDS:append:jetson-tx2 = " tegra186-flash-dry" HOSTAPP_HOOKS:append:jetson-tx2 = " \