how to determine if fuse is used or other secure boot options?

Hi all, i have a board with tegra k1 chip.
how to determine if fuse or other secure boot options is used?
I work on u-boot, and i can’t start this.

I have a full firmware for flash board from Nvflash(bootloader.bin, nvtboot.bin, tos.img, eks.dat, xusb_firmware, bct and e.t.c).

is there any way to run u-boot on my board?

PMIC: TPS65913
CHARGER: bq27520
this is board.bct.cfg, i get this board.bin from nvlash and i use bct_dump for make this board.bct.cfg.

Version       = 0x00400001;
BlockSize     = 0x00004000;
PageSize      = 0x00000200;
PartitionSize = 0x08000000;
OdmData       = 0x0049c000;
JtagCtrl      = 0x00000000;
RsaKeyModulus:
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
RsaPssSigBct:
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ChipUid       = 0x00000000000000000000000000000000;
# Bootloader used       = 2;
# Bootloaders max       = 4;
# BCT size              = 8192;
# Hash size             = 16;
# Crypto offset         = 1712;
# Crypto length         = 6480;
# Max BCT search blocks = 64;
#
# These values are set by cbootimage using the
# bootloader provided by the Bootloader=...
# configuration option.
#
# Bootloader[0].Version      = 0x00000001;
# Bootloader[0].Start block  = 640;
# Bootloader[0].Start page   = 0;
# Bootloader[0].Length       = 100320;
# Bootloader[0].Load address = 0x4000e000;
# Bootloader[0].Entry point  = 0x4000e000;
# Bootloader[0].Attributes   = 0x00000006;
# Bootloader[0].Bl AES Hash  = c7004faafe16bbbd7f64c33e83de5e48;
# Bootloader[0].RsaPssSigBl:
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
# Bootloader[1].Version      = 0x00000001;
# Bootloader[1].Start block  = 768;
# Bootloader[1].Start page   = 0;
# Bootloader[1].Length       = 4194304;
# Bootloader[1].Load address = 0x80108000;
# Bootloader[1].Entry point  = 0x80108000;
# Bootloader[1].Attributes   = 0x00000007;
# Bootloader[1].Bl AES Hash  = 2e097b5550ebf2b8d54be84000b6908e;
# Bootloader[1].RsaPssSigBl:
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

DevType[0] = NvBootDevType_Sdmmc;
DeviceParam[0].SdmmcParams.ClockDivider           = 0x00000009;
DeviceParam[0].SdmmcParams.DataWidth              = NvBootSdmmcDataWidth_8Bit;
DeviceParam[0].SdmmcParams.MaxPowerClassSupported = 0x00000000;
DeviceParam[0].SdmmcParams.MultiPageSupport       = 0x00000000;

P.S. I successfuly port 3.10.40 l4t 21.5 kernel, all works.

hello Insei,

please refer to [Release 28.1 development guide]->[Security]->[Secureboot]
you’re able to read odm_production_mode to know the board is fused or not.
thanks

sudo cat /sys/devices/platform/tegra-fuse/odm_production_mode

Many thanks. this returned 0x0000000

Okay, next, i try to flash with nvflash my board, in l4t 19.3 log:

sudo ./nvflash --bct bct.cfg --setbct --configfile flash.cfg --create --bl bootloader.bin --odmdata 0x0049C000 --go
[sudo] password for insei: 
Nvflash 4.13.0000 started
chip uid from BR is: 0x34001001740db0c0200000000d038140
rcm version 0X400001
Skipping BoardID read at miniloader level
System Information:
   chip name: unknown
   chip id: 0x40 major: 1 minor: 1
   chip sku: 0x27
   chip uid: 0x00000001740db0c0200000000d038140
   macrovision: disabled
   hdcp: enabled
   jtag: enabled
   sbk burned: false
   board id: 0
   warranty fuse: 0
   dk burned: true
   boot device: emmc
   operating mode: 3
   device config strap: 0
   device config fuse: 0
   sdram config strap: 0

RCM communication completed
BCT sent successfully
odm data: 0x49c000
downloading bootloader -- load address: 0x80108000 entry point: 0x80108000
sending file: bootloader.bin
/ 4194304/4194304 bytes sent
bootloader.bin sent successfully
waiting for bootloader to initialize

no more output, but board emits an electronic squeak
in L4T 21.5

sudo ./nvflash --bct mocha_bct.cfg --setbct --configfile flash.cfg  --create --bl u-boot.bin --odmdata 0x0049C000 --go
Nvflash 4.13.0000 started
BR_CID: 0x34001001740db0c0200000000d038140
rcm version 0X400001
Skipping BoardID read at miniloader level
System Information:
   chip name: unknown
   chip id: 0x40 major: 1 minor: 1
   chip sku: 0x0
   chip uid: 0x00000001740db0c0200000000d038140
   macrovision: disabled
   hdcp: disabled
   jtag: disabled
   sbk burned: false
   board id: 0
   warranty fuse: 0
   dk burned: false
   boot device: emmc
   operating mode: 3
   device config strap: 0
   device config fuse: 0
   sdram config strap: 0

RCM communication completed
BCT sent successfully
sending file: tegra124-mocha.dtb
- 94588/94588 bytes sent
tegra124-mocha.dtb sent successfully
odm data: 0x49c000
downloading bootloader -- load address: 0x83d88000 entry point: 0x83d88000
download command failed NvError 0x120002
command failure/warning: bootloader download failed (bad data)

but my board not have a debug port, and i can’t get u-boot logs.

bootloder.bin and u-boot.bin from L4T this is different loader? If yes, Nvidia can get source for bootloader.bin? I try to write init for my board if yes. My board have a different configuration tps65913 pmic.

hello Insei,

sorry, we only public u-boot sources.
please also refer to [Release 21.5 Development Guide]-> [Downloads]-> [PDF Documentation]-> [Platform Adaptation and Bring-Up Guide] for more details.
thanks