tegra-bootfiles: updates for L4T R35.4.1

* Add badpage file creation for Orin industrial modules,
  and add the new firmware for it to the list of boot files
* Remove the resizing of kernel/kernel-dtb partitions in
  external flash layouts; the layouts in R35.4.1 have been
  updated
* Add support for using the generic flash_l4t_external layout
  on t23x platforms by renaming the kernel/kernel-dtb partitions

Signed-off-by: Matt Madison <matt@madison.systems>
This commit is contained in:
Matt Madison
2023-08-06 09:51:19 -07:00
committed by Matt Madison
parent 8ae10e65bd
commit 2d3936fd8e

View File

@@ -62,6 +62,7 @@ BOOTBINS:tegra234 = "\
tegra234-gpio.h \ tegra234-gpio.h \
readinfo_t234_min_prod.xml \ readinfo_t234_min_prod.xml \
camera-rtcpu-sce.img \ camera-rtcpu-sce.img \
fsi-fw-ecc.bin \
" "
BOOTBINS_MACHINE_SPECIFIC:tegra194 = "" BOOTBINS_MACHINE_SPECIFIC:tegra194 = ""
@@ -99,6 +100,34 @@ do_compile:append:tegra194() {
printf 'BINF' | dd of="${BL_DIR}/badpage.bin" bs=1 seek=2992 count=4 conv=notrunc &> /dev/null printf 'BINF' | dd of="${BL_DIR}/badpage.bin" bs=1 seek=2992 count=4 conv=notrunc &> /dev/null
} }
do_compile:append:tegra234() {
BL_DIR="${S}/bootloader"
# Create badpage.bin if it doesn't exist
if [ ! -f "${BL_DIR}/badpage.bin" ]; then
echo "creating dummy ${BL_DIR}/badpage.bin"
dd if=/dev/zero of="${BL_DIR}/badpage.bin" bs=4096 count=1;
else
echo "reusing existing ${BL_DIR}/badpage.bin"
# Clear BCH Header
dd if=/dev/zero of="${BL_DIR}/badpage.bin" bs=4096 seek=0 count=1;
fi;
printf 'NVDA' | dd of="${BL_DIR}/badpage.bin" bs=1 seek=0 count=4 conv=notrunc &> /dev/null
printf 'BINF' | dd of="${BL_DIR}/badpage.bin" bs=1 seek=5120 count=4 conv=notrunc &> /dev/null
}
install_external_layout() {
bberror "No method for installing external partition layout file"
}
install_external_layout:tegra194() {
install -m 0644 ${PARTITION_FILE_EXTERNAL} ${D}${datadir}/tegraflash/${PARTITION_LAYOUT_EXTERNAL}
}
install_external_layout:tegra234() {
nvflashxmlparse -v --switch-to-prefixed-kernel-partitions --output=${D}${datadir}/tegraflash/${PARTITION_LAYOUT_EXTERNAL} ${PARTITION_FILE_EXTERNAL}
chmod 0644 ${D}${datadir}/tegraflash/${PARTITION_LAYOUT_EXTERNAL}
}
do_install() { do_install() {
PATH="${STAGING_BINDIR_NATIVE}/tegra-flash:${PATH}" PATH="${STAGING_BINDIR_NATIVE}/tegra-flash:${PATH}"
install -d ${D}${datadir}/tegraflash install -d ${D}${datadir}/tegraflash
@@ -125,10 +154,7 @@ do_install() {
# referenced during early boot match the split layout above. # referenced during early boot match the split layout above.
nvflashxmlparse -v --remove --partitions-to-remove=APP --output=${D}${datadir}/tegraflash/bupgen-${PARTITION_LAYOUT_TEMPLATE} ${PARTITION_FILE} nvflashxmlparse -v --remove --partitions-to-remove=APP --output=${D}${datadir}/tegraflash/bupgen-${PARTITION_LAYOUT_TEMPLATE} ${PARTITION_FILE}
chmod 0644 ${D}${datadir}/tegraflash/bupgen-${PARTITION_LAYOUT_TEMPLATE} chmod 0644 ${D}${datadir}/tegraflash/bupgen-${PARTITION_LAYOUT_TEMPLATE}
# Work around too-small partition sizes for kernel and install -m 0644 ${PARTITION_FILE_EXTERNAL} ${D}${datadir}/tegraflash/${PARTITION_LAYOUT_EXTERNAL}
# kernel_dtb partitions in NVMe layouts (specifically t234)
nvflashxmlparse -v --update-parttype-sizes-from=${PARTITION_FILE}:kernel,kernel_dtb --output=${D}${datadir}/tegraflash/${PARTITION_LAYOUT_EXTERNAL} ${PARTITION_FILE_EXTERNAL}
chmod 0644 ${D}${datadir}/tegraflash/${PARTITION_LAYOUT_EXTERNAL}
else else
if [ "${TEGRAFLASH_NO_INTERNAL_STORAGE}" = "1" ]; then if [ "${TEGRAFLASH_NO_INTERNAL_STORAGE}" = "1" ]; then
install -m 0644 ${PARTITION_FILE} ${D}${datadir}/tegraflash/bupgen-${PARTITION_LAYOUT_TEMPLATE} install -m 0644 ${PARTITION_FILE} ${D}${datadir}/tegraflash/bupgen-${PARTITION_LAYOUT_TEMPLATE}
@@ -137,10 +163,7 @@ do_install() {
else else
install -m 0644 ${PARTITION_FILE} ${D}${datadir}/tegraflash/${PARTITION_LAYOUT_TEMPLATE} install -m 0644 ${PARTITION_FILE} ${D}${datadir}/tegraflash/${PARTITION_LAYOUT_TEMPLATE}
fi fi
# Work around too-small partition sizes for kernel and install_external_layout
# kernel_dtb partitions in NVMe layouts (specifically t234)
nvflashxmlparse -v --update-parttype-sizes-from=${PARTITION_FILE}:kernel,kernel_dtb --output=${D}${datadir}/tegraflash/${PARTITION_LAYOUT_EXTERNAL} ${PARTITION_FILE_EXTERNAL}
chmod 0644 ${D}${datadir}/tegraflash/${PARTITION_LAYOUT_EXTERNAL}
fi fi
[ -z "${ODMFUSE_FILE}" ] || install -m 0644 ${ODMFUSE_FILE} ${D}${datadir}/tegraflash/odmfuse_pkc_${MACHINE}.xml [ -z "${ODMFUSE_FILE}" ] || install -m 0644 ${ODMFUSE_FILE} ${D}${datadir}/tegraflash/odmfuse_pkc_${MACHINE}.xml
install -m 0644 ${BCT_TEMPLATE} ${D}${datadir}/tegraflash/${EMMC_BCT} install -m 0644 ${BCT_TEMPLATE} ${D}${datadir}/tegraflash/${EMMC_BCT}