How to check ODMDATA

Dear Guys,

Can any one help me? How can I check the ODMDATA setting is right or not ?

TX2:
I modify the p2771-0000.conf.common, but when I check flash.sh log or dmesg log, can’t see anything about the ODMDATA, so I don’t know the setting of ODMDATA is right or not?

# Copyright (c) 2015-2017, NVIDIA CORPORATION. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#  * Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#  * Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
#  * Neither the name of NVIDIA CORPORATION nor the names of its
#    contributors may be used to endorse or promote products derived
#    from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

sub_var_token()
{
	local var="$1";
	local from="$2";
	local to="$3";
	if [ "${var}" != "" -a "${!var}" != "" ]; then
		if [[ "${!var}" =~ "${from}" ]]; then
			local val=`echo "${!var}" | sed -e s/${from}/${to}/`;
			eval "${var}=${val}";
		fi;
	fi;
}

# Process fuse version:
#
# Production Fused BD vs non-fused BD::::::
#
# preboot_d15_dev_cr.bin vs. preboot_d15_prod_cr.bin
# mce_mts_d15_dev_cr.bin vs. mce_mts_d15_prod_cr.bin
# mb1_dev.bin            vs. mb1_prod.bin
# mb1_recovery_dev.bin   vs. mb1_recovery_prod.bin
#
process_fuse_level()
{
	local fuselevel="${1}";
	local srctoken="_dev";
	local trgtoken="_prod";

	# fuselevel:
	#	"fuselevel_unknown"
	#	"fuselevel_nofuse"
	#	"fuselevel_production"
	#
	if [ "${fuselevel}" = "fuselevel_unknown" ]; then
		return;
	fi;
	if [ "${fuselevel}" = "fuselevel_nofuse" ]; then
		srctoken="_prod";
		trgtoken="_dev";
		sub_var_token "WB0BOOT" "warmboot.bin" "warmboot_dev.bin";
	else
		sub_var_token "WB0BOOT" "warmboot_dev.bin" "warmboot.bin";
	fi;
	sub_var_token "MTSPREBOOT" "${srctoken}" "${trgtoken}";
	sub_var_token "MTS"        "${srctoken}" "${trgtoken}";
	sub_var_token "MB1FILE"    "${srctoken}" "${trgtoken}";
	sub_var_token "SOSFILE"    "${srctoken}" "${trgtoken}";
}

process_board_version()
{
	local board_id="${1}";
	local board_version="${2}";
	local bdv=${board_version^^};
	local bid=${board_id^^};
	local uboot_build=500;
	local fromfab="-a00";
	local tofab="-c03";		# default = C03
	local pmicfab="-c00";		# default = C00
	local bpfdtbfab="-c00";		# default = C00
	local tbcdtbfab="-c03";		# default = C03
	local kerndtbfab="-c03";	# default = C03
	ODMDATA=0x6090000;   #0x1090000;		# default = C0X

	#
	# Board version is Alpah-Numeric value.
	#
	echo "Board ID(${board_id}) version(${board_version}) " >/dev/stderr;
	if ! [[ "${bdv}" =~ ^[A-Z0-9][0-9][0-9]$ ]]; then
		bdv="${DEFAULT_FAB:-Z99}";
	fi;

	if [ "${bid}" \= "3313" ]; then
		if [ "${bdv}" \= "000" ]; then
			# FAB - A00
			pmicfab="-c04";
			bpfdtbfab="-c04";
		else
			if [ "${USE_UBOOT}" -eq 1 ]; then
				echo "not supported by U-Boot" >/dev/stderr;
				exit 1;
			fi;
			echo -n "Invalid board version(${board_version})." >/dev/stderr;
			echo " Using default ODMDATA(${ODMDATA})" >/dev/stderr;
		fi;
	elif [ "${bid}" \= "3301" ]; then
		ODMDATA=0x90000;
		uboot_build=000;
		tofab="-a00";
		pmicfab="-a00";
		bpfdtbfab="-a00";
		tbcdtbfab="-a00";
		kerndtbfab="-a00";
	elif [ "${bid}" \= "3489" ]; then
		ODMDATA=0x1090000;
		tofab="-a00";
		pmicfab="-a00";
		bpfdtbfab="-a00";
		tbcdtbfab="-a00";
		kerndtbfab="-a00";
		if [ "${bdv}" \< "300" ]; then
			bpfdtbfab="-evt";
		fi
	else
		if [ "${bdv}" \< "300" ]; then
			# FAB - A02
			ODMDATA=0x2090000;
			uboot_build=000;
			tofab="-a00";
			pmicfab="-a00";
			bpfdtbfab="-a00";
			tbcdtbfab="-a00";
			kerndtbfab="-a00";
		elif [ "${bdv}" \< "500" ]; then
			# FAB - A03..
			if [ "${USE_UBOOT}" -eq 1 ]; then
				echo "not supported by U-Boot" >/dev/stderr;
				exit 1;
			fi;
			ODMDATA=0x2090000;
			uboot_build=000;
			tofab="-a00";
			pmicfab="-a00";
			bpfdtbfab="-a00";
			tbcdtbfab="-a00";
			kerndtbfab="-a00";
		elif [ "${bdv}" \< "800" ]; then
			# FAB = b0x
			ODMDATA=0x1090000;
			tofab="-a00";
			pmicfab="-a00";
			bpfdtbfab="-a00";
			tbcdtbfab="-a00";
			kerndtbfab="-a00";
		elif [ "${bdv}" \< "900" ]; then
			# FAB = c00
			tofab="-c00";
			pmicfab="-c00";
			bpfdtbfab="-c00";
			tbcdtbfab="-a00";
			kerndtbfab="-a00";
		elif [ "${bdv}" \< "A00" ]; then
			# FAB = c01
			pmicfab="-c01";
			bpfdtbfab="-c01";
		elif [ "${bdv}" \< "B00" ]; then
			# FAB = c02
			pmicfab="-c02";
			bpfdtbfab="-c01";
		elif [ "${bdv}" \< "B01" ]; then
			# FAB = c03
			pmicfab="-c03";
			bpfdtbfab="-c01";
		elif [ "${bdv}" \= "B01" -o "${bdv}" \> "B01" ]; then
			# FAB = c04
			# Treat later VERSIONs as software-compatible.
			# Incompatible VERSIONs will require a new entry below.
			pmicfab="-c04";
			bpfdtbfab="-c04";
		else
			if [ "${USE_UBOOT}" -eq 1 ]; then
				echo "not supported by U-Boot" >/dev/stderr;
				exit 1;
			fi;
			echo -n "Invalid board version(${board_version})." >/dev/stderr;
			echo " Using default ODMDATA(${ODMDATA})" >/dev/stderr;
		fi;
	fi;

	sub_var_token "BPFDTB_FILE"    "${fromfab}" "${bpfdtbfab}";
	sub_var_token "PINMUX_CONFIG"  "${fromfab}" "${tofab}";
	sub_var_token "PMIC_CONFIG"    "${fromfab}" "${pmicfab}";
	sub_var_token "PMC_CONFIG"     "${fromfab}" "${tofab}";
	sub_var_token "PROD_CONFIG"    "${fromfab}" "${tofab}";
	sub_var_token "BOOTROM_CONFIG" "${fromfab}" "${tofab}";
	sub_var_token "TBCDTB_FILE"    "${fromfab}" "${tbcdtbfab}";
	sub_var_token "DTB_FILE"       "${fromfab}" "${kerndtbfab}";

	if [ "${USE_UBOOT}" -eq 1 ]; then
		DFLT_KERNEL_IMAGE="bootloader/t186ref/p2771-0000/";
		DFLT_KERNEL_IMAGE+="${uboot_build}/u-boot.bin";
	fi;
}

# Common values and/or defaults across p2771-0000*.conf:

CHIPID=0x18;
EMMC_CFG=flash_l4t_t186.xml;
BOOTPARTSIZE=8388608;
EMMCSIZE=31276924928;
ITS_FILE=;
SYSBOOTFILE=p2771-0000/extlinux.conf;
EMMC_BCT=P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg
DTB_FILE=tegra186-quill-p3310-1000-a00-00-base.dtb;
TBCDTB_FILE=tegra186-quill-p3310-1000-a00-00-base.dtb;
# To configure whether to use U-Boot,
# do either of the following before running flash.sh:
# 1) Set environment variable USE_UBOOT to 0 or 1.
# 2) Edit the line below to set USE_UBOOT to 0 or 1.
if [ -z "${USE_UBOOT}" ]; then
	USE_UBOOT=1;
fi;
ROOTFSSIZE=28GiB;
CMDLINE_ADD="console=ttyS0,115200n8 console=tty0 OS=l4t fbcon=map:0 net.ifnames=0";
target_board="t186ref";
ROOT_DEV="mmcblk0p12 ------------ internal eMMC.
        sda1 ----------------- external USB devices. (USB memory stick, HDD)
        eth0 ----------------- nfsroot via RJ45 Ethernet port.
        eth1 ----------------- nfsroot via USB Ethernet interface.";
TEGRABOOT="bootloader/t186ref/nvtboot.bin";
WB0BOOT="bootloader/t186ref/warmboot.bin";
FLASHAPP="bootloader/tegraflash.py";
FLASHER="bootloader/nvtboot_recovery_cpu.bin";
BOOTLOADER="bootloader/nvtboot_cpu.bin";
INITRD="bootloader/l4t_initrd.img";
TBCFILE="bootloader/cboot.bin";
BPFFILE="bootloader/bpmp.bin";
TOSFILE="bootloader/tos.img";
EKSFILE="bootloader/eks.img";
MTSPREBOOT="bootloader/preboot_d15_prod_cr.bin";
MTS="bootloader/mce_mts_d15_prod_cr.bin";
MB1FILE="bootloader/mb1_prod.bin";
SOSFILE="bootloader/mb1_recovery_prod.bin";
MB2BLFILE="bootloader/nvtboot_recovery.bin";

# BCT args:
#
BCT="--sdram_config";
BINSARGS="--bins \"";
DEV_PARAMS="emmc.cfg";
SCR_CONFIG="minimal_scr.cfg";
SCR_COLD_BOOT_CONFIG="mobile_scr.cfg";
MISC_CONFIG="tegra186-mb1-bct-misc-si-l4t.cfg";
PINMUX_CONFIG="tegra186-mb1-bct-pinmux-quill-p3310-1000-a00.cfg";
PMIC_CONFIG="tegra186-mb1-bct-pmic-quill-p3310-1000-a00.cfg";
PMC_CONFIG="tegra186-mb1-bct-pad-quill-p3310-1000-a00.cfg";
PROD_CONFIG="tegra186-mb1-bct-prod-quill-p3310-1000-a00.cfg";
BOOTROM_CONFIG="tegra186-mb1-bct-bootrom-quill-p3310-1000-a00.cfg";

# Default FAB: Force Quill boards without properly programmed EEPROM.
# Values: C01->800, C02->900, C02->A00, C03->B00
#
DEFAULT_FAB="B01";

Please check the content of below path on your device.

/sys/firmware/devicetree/base/chosen/plugin-manager/odm-data

Dear WayneWWW,

Thanks so much.