Added support for the Jetson AGX Xavier Industrial variant

Signed-off-by: Joost Baars <joost.baars@prodrive-technologies.com>
This commit is contained in:
Joost Baars
2023-05-22 19:16:07 +02:00
committed by Matt Madison
parent 23b28202eb
commit c2a3481a4d
10 changed files with 91 additions and 16 deletions

View File

@@ -15,6 +15,7 @@ Boards supported:
Community supported:
* Clara AGX development kit
* Jetson AGX Xavier Industrial
This layer depends on:
URI: git://git.openembedded.org/openembedded-core

View File

@@ -203,11 +203,13 @@ tegraflash_create_flash_config:tegra194() {
-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,SCEFILE,sce_t194.bin," \
-e"s,MB1FILE,mb1_t194_prod.bin," \
-e"s,BPFFILE,bpmp-2_t194.bin," \
-e"s,TBCFILE,uefi_jetson.bin," \
-e"s,CAMERAFW,camera-rtcpu-t194-rce.img," \
-e"s,DRAMECCTYPE,dram_ecc," -e"s,DRAMECCFILE,dram-ecc-t194.bin," -e"s,DRAMECCNAME,dram-ecc-fw," \
-e"s,BADPAGETYPE,black_list_info," -e"s,BADPAGEFILE,badpage.bin," -e"s,BADPAGENAME,badpage-fw," \
-e"s,SPEFILE,spe_t194.bin," \
-e"s,WB0BOOT,warmboot_t194_prod.bin," \
-e"s,TOSFILE,${TOSIMGFILENAME}," \
@@ -277,6 +279,9 @@ BOOTFILES:tegra194 = "\
spe_t194.bin \
warmboot_t194_prod.bin \
xusb_sil_rel_fw \
sce_t194.bin \
dram-ecc-t194.bin \
badpage.bin \
"
BOOTFILES:tegra234 = "\

View File

@@ -0,0 +1,15 @@
require conf/machine/include/tegra194.inc
KERNEL_ARGS ?= "mminit_loglevel=4 console=tty0 console=ttyTCU0,115200 fbcon=map:0 video=efifb:off"
EMMC_SIZE ?= "31276924928"
EMMC_DEVSECT_SIZE ?= "512"
BOOTPART_SIZE ?= "8388608"
BOOTPART_LIMIT ?= "10485760"
ROOTFSPART_SIZE ?= "30064771072"
ODMDATA ?= "0x9190000"
EMMC_BCT_OVERRIDE ?= "tegra194-memcfg-sw-override.cfg"
NVIDIA_BOARD ?= "t186ref"
TEGRA_AUDIO_DEVICE ?= "tegra-hda-jetson-agx"

View File

@@ -2,7 +2,7 @@
#@NAME: Nvidia Jetson Xavier
#@DESCRIPTION: Nvidia Jetson Xavier dev board
require conf/machine/include/tegra194.inc
require conf/machine/include/agx-xavier.inc
# Extracted from jetson_board_spec.cfg for BOARDID=2888 and board=jetson-agx-xavier-devkit
TEGRA_BUPGEN_SPECS ?= "fab=400;boardsku=0001;boardrev=D.0 \
@@ -11,20 +11,9 @@ TEGRA_BUPGEN_SPECS ?= "fab=400;boardsku=0001;boardrev=D.0 \
fab=402;boardsku=0005;boardrev="
KERNEL_DEVICETREE ?= "tegra194-p2888-0001-p2822-0000.dtb"
KERNEL_ARGS ?= "mminit_loglevel=4 console=tty0 console=ttyTCU0,115200 fbcon=map:0 video=efifb:off"
EMMC_SIZE ?= "31276924928"
EMMC_DEVSECT_SIZE ?= "512"
BOOTPART_SIZE ?= "8388608"
BOOTPART_LIMIT ?= "10485760"
ROOTFSPART_SIZE ?= "30064771072"
ODMDATA ?= "0x9190000"
EMMC_BCT ?= "tegra194-mb1-bct-memcfg-p2888.cfg"
EMMC_BCT_OVERRIDE ?= "tegra194-memcfg-sw-override.cfg"
NVIDIA_BOARD ?= "t186ref"
PARTITION_LAYOUT_TEMPLATE ?= "flash_t194_sdmmc.xml"
BOOT_PARTITIONS_ON_EMMC = "1"
TEGRA_PLUGIN_MANAGER_OVERLAYS ?= "tegra194-p2822-camera-dual-imx274-overlay.dtbo tegra194-p2822-camera-e3326-overlay.dtbo tegra194-p2822-camera-e3331-overlay.dtbo tegra194-p2822-camera-e3333-overlay.dtbo tegra194-p2822-camera-imx185-overlay.dtbo tegra194-p2822-camera-imx390-overlay.dtbo tegra194-p2888-0005-overlay.dtbo tegra194-p2888-0001-p2822-0000-overlay.dtbo"
TEGRA_AUDIO_DEVICE ?= "tegra-hda-jetson-agx"

View File

@@ -0,0 +1,15 @@
#@TYPE: Machine
#@NAME: Nvidia Jetson Xavier Industrial
#@DESCRIPTION: Nvidia Jetson Xavier Industrial module on devkit board
require conf/machine/include/agx-xavier.inc
KERNEL_DEVICETREE ?= "tegra194-p2888-0008-p2822-0000.dtb"
EMMC_BCT ?= "tegra194-mb1-bct-memcfg-4x-derated-ecc-p2888.cfg"
PARTITION_LAYOUT_TEMPLATE ?= "flash_l4t_t194_spi_emmc_jaxi.xml"
TEGRA_PLUGIN_MANAGER_OVERLAYS ?= "${TEGRA_BOOTCONTROL_OVERLAYS} tegra194-p2822-camera-dual-imx274-overlay.dtbo tegra194-p2822-camera-e3326-overlay.dtbo tegra194-p2822-camera-e3331-overlay.dtbo tegra194-p2822-camera-e3333-overlay.dtbo tegra194-p2822-camera-imx185-overlay.dtbo tegra194-p2822-camera-imx390-overlay.dtbo tegra194-p2888-0005-overlay.dtbo tegra194-p2888-0001-p2822-0000-overlay.dtbo"
OTA_BOOT_DEVICE ?= "/dev/mtdblock0"
OTA_GPT_DEVICE ?= "/dev/mtdblock0"

View File

@@ -31,6 +31,9 @@ BOOTBINS:tegra194 = "\
spe_t194.bin \
xusb_sil_rel_fw \
warmboot_t194_prod.bin \
sce_t194.bin \
dram-ecc-t194.bin \
badpage.bin \
"
BOOTBINS:tegra234 = "\
@@ -77,6 +80,25 @@ do_compile:append:tegra194() {
truncate --size=393216 ${B}/nvdisp-init.bin
}
do_compile:append:tegra194() {
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
# Originally, the statement below used "printf '\x01'" to write 0x01 to the shell. But because of bitbake, \x01 won't be interpreted correctly
# Therefore, python is used to write 0x01 to the shell
python3 -c 'import sys; sys.stdout.buffer.write(bytes([0x01]))' | dd of="${BL_DIR}/badpage.bin" bs=1 seek=2976 count=1 conv=notrunc &> /dev/null
printf 'BINF' | dd of="${BL_DIR}/badpage.bin" bs=1 seek=2992 count=4 conv=notrunc &> /dev/null
}
do_install() {
PATH="${STAGING_BINDIR_NATIVE}/tegra-flash:${PATH}"
install -d ${D}${datadir}/tegraflash

View File

@@ -1,7 +1,8 @@
FLASHVARS="BPFDTB_FILE PMIC_CONFIG SCR_COLD_BOOT_CONFIG MISC_COLD_BOOT_CONFIG PINMUX_CONFIG PMC_CONFIG UPHY_CONFIG DEVICE_CONFIG GPIOINT_CONFIG PROD_CONFIG SCR_CONFIG BR_CMD_CONFIG DEV_PARAMS DEV_PARAMS_B MINRATCHET_CONFIG OVERLAY_DTB_FILE"
FLASHVARS="BPFDTB_FILE PMIC_CONFIG SCR_COLD_BOOT_CONFIG MISC_CONFIG MISC_COLD_BOOT_CONFIG PINMUX_CONFIG PMC_CONFIG UPHY_CONFIG DEVICE_CONFIG GPIOINT_CONFIG PROD_CONFIG SCR_CONFIG BR_CMD_CONFIG DEV_PARAMS DEV_PARAMS_B MINRATCHET_CONFIG OVERLAY_DTB_FILE"
BPFDTB_FILE="tegra194-a0@CHIPREV@-bpmp-p2888-0004-@BPFDTBREV@-mccoy.dtb"
PMIC_CONFIG="tegra194-mb1-bct-pmic-p2888-0001-@PMICREV@-p2822-0000.cfg"
SCR_COLD_BOOT_CONFIG="tegra194-mb1-bct-scr-cbb-mini.cfg"
MISC_CONFIG="tegra194-mb1-bct-misc-flash.cfg"
MISC_COLD_BOOT_CONFIG="tegra194-mb1-bct-misc-l4t.cfg"
PINMUX_CONFIG="tegra19x-mb1-pinmux-p2888-0004-e3900-0000.cfg"
PMC_CONFIG="tegra19x-mb1-padvoltage-p2888-0004-e3900-0000.cfg"

View File

@@ -1,7 +1,8 @@
FLASHVARS="BPFDTB_FILE PMIC_CONFIG SCR_COLD_BOOT_CONFIG MISC_COLD_BOOT_CONFIG PINMUX_CONFIG PMC_CONFIG UPHY_CONFIG DEVICE_CONFIG GPIOINT_CONFIG PROD_CONFIG SCR_CONFIG BR_CMD_CONFIG DEV_PARAMS DEV_PARAMS_B MINRATCHET_CONFIG OVERLAY_DTB_FILE"
FLASHVARS="BPFDTB_FILE PMIC_CONFIG SCR_COLD_BOOT_CONFIG MISC_CONFIG MISC_COLD_BOOT_CONFIG PINMUX_CONFIG PMC_CONFIG UPHY_CONFIG DEVICE_CONFIG GPIOINT_CONFIG PROD_CONFIG SCR_CONFIG BR_CMD_CONFIG DEV_PARAMS DEV_PARAMS_B MINRATCHET_CONFIG OVERLAY_DTB_FILE"
BPFDTB_FILE="tegra194-a0@CHIPREV@-bpmp-p2888-@BPFDTBREV@.dtb"
PMIC_CONFIG="tegra194-mb1-bct-pmic-p2888-0001-@PMICREV@-p2822-0000.cfg"
SCR_COLD_BOOT_CONFIG="tegra194-mb1-bct-scr-cbb-mini.cfg"
MISC_CONFIG="tegra194-mb1-bct-misc-flash.cfg"
MISC_COLD_BOOT_CONFIG="tegra194-mb1-bct-misc-l4t.cfg"
PINMUX_CONFIG="tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg"
PMC_CONFIG="tegra19x-mb1-padvoltage-p2888-0000-a00-p2822-0000-a00.cfg"

View File

@@ -0,0 +1,24 @@
FLASHVARS="BPFDTB_FILE PMIC_CONFIG SCR_COLD_BOOT_CONFIG MISC_COLD_BOOT_CONFIG PINMUX_CONFIG PMC_CONFIG UPHY_CONFIG DEVICE_CONFIG GPIOINT_CONFIG PROD_CONFIG SCR_CONFIG BR_CMD_CONFIG DEV_PARAMS DEV_PARAMS_B MINRATCHET_CONFIG OVERLAY_DTB_FILE EMMC_CFG DTB_FILE TBCDTB_FILE DRAMECCFILE BADPAGEFILE BADPAGENAME SCEFILE MISC_CONFIG DEFAULT_FAB VERFILENAME "
BPFDTB_FILE="tegra194-a02-bpmp-p2888-0008-b01-jaxi_lz4.dtb"
PMIC_CONFIG="tegra194-mb1-bct-pmic-p2888-0008-b01-p2822-0000.cfg"
SCR_COLD_BOOT_CONFIG="tegra194-mb1-bct-scr-cbb-mini.cfg"
MISC_CONFIG="tegra194-mb1-bct-misc-flash-jaxi.cfg"
MISC_COLD_BOOT_CONFIG="tegra194-mb1-bct-misc-l4t-jaxi.cfg"
PINMUX_CONFIG="tegra19x-mb1-pinmux-p2888-0008-b01-p2822-0000-jaxi.cfg"
PMC_CONFIG="tegra19x-mb1-padvoltage-p2888-0000-a00-p2822-0000-a00.cfg"
UPHY_CONFIG="--uphy_config tegra194-mb1-uphy-lane-p2888-0000-p2822-0000.cfg"
DEVICE_CONFIG="tegra19x-mb1-bct-device-qspi-jaxi.cfg"
GPIOINT_CONFIG="tegra194-mb1-bct-gpioint-p2888-0000-p2822-0000.cfg"
PROD_CONFIG="tegra19x-mb1-prod-p2888-0000-p2822-0000.cfg"
SCR_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-qspi-l4t.cfg"
DEV_PARAMS_B="tegra194-br-bct_b-qspi-l4t.cfg"
MINRATCHET_CONFIG="--minratchet_config tegra194-mb1-bct-ratchet-p2888-0000-p2822-0000.cfg"
OVERLAY_DTB_FILE="@OVERLAY_DTB_FILE@"
# Default FAB:
DEFAULT_FAB="A00";
VERFILENAME="qspi_bootblob_ver.txt";
RAMCODE=1

View File

@@ -303,6 +303,8 @@ case "$boardid" in
BPFDTBREV="a04"
fi
;;
[06][0-9][0-9]) # 600 range is the board version of the Jetson AGX Xavier Industrial
;;
*)
echo "ERR: unrecognized board version $board_version" >&2
exit 1
@@ -445,7 +447,7 @@ fi
bctargs="$UPHY_CONFIG $MINRATCHET_CONFIG \
--device_config $DEVICE_CONFIG \
--misc_config tegra194-mb1-bct-misc-flash.cfg \
--misc_config $MISC_CONFIG \
--misc_cold_boot_config $MISC_COLD_BOOT_CONFIG \
--pinmux_config $PINMUX_CONFIG \
--gpioint_config $GPIOINT_CONFIG \