Information on booting process on TX1

Hello all,

I’m currently investigating the boot process of the TX1 in order to implement a low-level feature for a client. My question is about the following console prints:

[0004.763] LPDDR4 Training: Number of tables = 10
[0004.767] EMC Training (SRC-freq: 204000; DST-freq: 408000)
[0004.774] EMC Training Successful
[0004.777] EMC Training (SRC-freq: 204000; DST-freq: 665600)
[0004.783] EMC Training Successful
[0004.786] EMC Training (SRC-freq: 204000; DST-freq: 800000)
[0004.797] EMC Training Successful
[0004.800] EMC Training (SRC-freq: 204000; DST-freq: 1065600)
[0004.823] EMC Training Successful
[0004.826] EMC Training (SRC-freq: 204000; DST-freq: 1331200)
[0004.849] EMC Training Successful
[0004.852] EMC Training (SRC-freq: 204000; DST-freq: 1600000)
[0004.872] EMC Training Successful
[0004.875] Switching to 800000 KHz Success
[0004.918] LPDDR4 Training: Number of tables = 10

From my understanding these traces are not from u-boot.bin (which is executed just after) but from the nvtboot_cpu.bin binary. I found nothing in the NVIDIA documentation except that this is a “CPU part of Tegraboot for TLK hand over transition.”

I assumed it is related to the External Memory Controller (EMC) configuration, but could it be possible to have more details about the execution performed here?

It is one time boot training for various freq states; during booting, go through each dram clk and perform required training. save the optimal.

I’ve got issues with booting Tegra TX1.
Boot stops on the following line:


[0001.398] Sec Bootdevice Read Time = 193 ms, Read Size = 8464 KB
[0001.404] Sec Bootdevice Write Time = -1940251278 ms, Write Size = -738734375 B
[0001.411] Next stage binary read took 12206 us
[0001.415] Carveout took 252266 us
[0001.419] CPU initialization took 143307 us
[0001.423] Total time taken by TegraBoot 1307011 us

[0001.427] Starting CPU & Halting co-processor

64b[0001.565] LPDDR4 Training: Number of tables = 10
[0001.569] EMC Training (SRC-freq: 204000; DST-freq: 408000)

STOPS HERE ^^^^. As far as I understand the problem might be with the internal flash.
Is there any way to skip EMC training and try to boot with some specified EMC frequency?

Is there any workaround like booting from sd-card? To skip working with internal flash?