TX2i vs TX2 boot up time

I found it.

Within jetson-tx2i.conf

BPFDTB_FILE=tegra186-a02-bpmp-storm-p3489-a00-00-ta795sa-ucm1.dtb;

I will let you know the result.

Follow your instruction, I can get ttyBPMP log file.

root@tegra-ubuntu:/sys/kernel/debug/bpmp# ls
debug   mount  ping  trace          trace_enable
module  mrq    tag   trace_disable  ttyBPMP

I download both TX2i and TX2 ttyBPMP log file, but they totally same. Do you have any other suggestion?

adc initialized
chip_revision initialized
speedo initialized
dt initialized
clk_init_mrq: mrq handler registered
383 clocks registered
clock initialized
reset initialized
i2c5 controller initialized
i2c10 controller initialized
initialized i2c mrq handling
i2c initialized
thermal initialized
fuse initialized
soctherm initialized
aotag initialized
cvc initialized
regulator initialized
dvs initialized
t186_dvs initialized
pm initialized
tegra186_reset initialized
uart initialized
sku_init: not sku 00
sku initialized
tag initialized
avfs_clk_platform initialized
clock_dt initialized
powergate initialized
avfs_gpu initialized
clock_gpu initialized
debugfs_mrq initialized
emc initialized
gpmu2bpmp initialized
mc_init_mrq: mrq handler registered
mc initialized
pg_mrq initialized
pg_legacy_mrq initialized
pm_post initialized
ppm initialized
uphy_dt initialized
uphy initialized
wake initialized
mrq initialized
tag is 83385b61e34297b2f37e76e0cd1ff81e
tag_lateinit initialized
clock_debugfs initialized
thermal_test initialized
avfs_clk_platform_post initialized
avfs_debugfs initialized
clock_pto initialized
cvc_dt initialized
dvs_debugfs initialized
rm initialized
edp initialized
gboost initialized
powergate_debug initialized
regulator_post initialized
sku_debugfs initialized
speedo_debugfs initialized
soctherm_debug initialized
aotag_hsm initialized
sc7_diag initialized
starting app shell
entering main console loop
]

Hi 53216142,

If bpmp log has not error, I think now we can only try…

  1. See if update to rel-32.1 can resolve it or not.
  2. Do you have other TX2i modules or devkit to do cross comparison? I think this issue should be on only one TX2i module.

I have try different TX2i modules. The issue is same. With another devkit, I think it is unnecessary.

If I switch to rel-32.1, that means I have to jump to JetPack4.x?

Can you do the same kind of testing on you side again?

53216142,

I am investigating it. May I know if there are any extra devices connected on your board? As our previous discussion, you should be running tx2i modules on devkit and it is pure jetpack, right?

Seems able to reproduce issue now. I will update once we find the cause.

@WayneWWW Great!

Yes only run TX2i and pure JetPack3.2. Doesn’t connect any extra devices on devkit.

I am waiting for your the new update. :)

It seems rel-32.1 (jetpack 4.2) has fixed this issue. Would you mind upgrading to rel-32.1?

@WayneWWW Our release produce already use JetPack3.2 for long time.
Seems it is hard to switch JetPack4.2 at this point. Because there are too many difference between 4.2 and 3.2.

For just this issue, can you share the fix patch or just update Tboot binary file to resolve this issue for me?

I can try to find a solution for you. But could you help me verify jetpack4.2 on your module too?

Yep. I am downloading JetPack4.2 now.
I will let you the result.

53216142,

Sorry for keep you waiting.

Please follow up the steps in L4T document ->Disabling ECC.
In rel-28 + TX2i, DRAM scrubbing implementation is in MB1 and ECC would cause such delay. The only method to enhance the boot time is to disable ECC.

As for rel-32, cboot gives out higher clock frequency so DRAM delay is not visible.

@WayneWWW

After Disabling ECC, we have optimized boot up time from 17 seconds to 2 seconds. We also found there is no Tboot output message.

NOTICE:  BL31: v1.2(release):e1e4477
NOTICE:  BL31: Built : 00:08:30, May 17 2018
NOTICE:  Trusty image missing.
ERROR:   Error initializing runtime service trusty_fast
[0000.848] I> Welcome to Cboot
[0000.851] I> Cboot Version: 00.00.2014.50-t186-0c600f85
[0000.856] I> CPU-BL Params @ 0x277000000
[0000.859] I>  0) Base:0x00000000 Size:0x00000000
[0000.864] I>  1) Base:0x277f00000 Size:0x00100000
[0000.868] I>  2) Base:0x277e00000 Size:0x00100000
[0000.873] I>  3) Base:0x277d00000 Size:0x00100000
[0000.877] I>  4) Base:0x277c00000 Size:0x00100000
[0000.882] I>  5) Base:0x277b00000 Size:0x00100000
[0000.886] I>  6) Base:0x277800000 Size:0x00200000
[0000.891] I>  7) Base:0x277400000 Size:0x00400000
[0000.895] I>  8) Base:0x277a00000 Size:0x00100000
[0000.900] I>  9) Base:0x277300000 Size:0x00100000
[0000.904] I> 10) Base:0x276800000 Size:0x00800000
[0000.909] I> 11) Base:0x30000000 Size:0x00040000
[0000.913] I> 12) Base:0xf0000000 Size:0x00100000
[0000.918] I> 13) Base:0x30040000 Size:0x00001000
[0000.922] I> 14) Base:0x30048000 Size:0x00001000
[0000.927] I> 15) Base:0x30049000 Size:0x00001000
[0000.931] I> 16) Base:0x3004a000 Size:0x00001000
[0000.935] I> 17) Base:0x3004b000 Size:0x00001000
[0000.940] I> 18) Base:0x3004c000 Size:0x00001000
[0000.944] I> 19) Base:0x3004d000 Size:0x00001000
[0000.949] I> 20) Base:0x3004e000 Size:0x00001000
[0000.953] I> 21) Base:0x3004f000 Size:0x00001000
[0000.958] I> 22) Base:0x00000000 Size:0x00000000
[0000.962] I> 23) Base:0xf0100000 Size:0x00010000
[0000.967] I> 24) Base:0x00000000 Size:0x00000000
[0000.971] I> 25) Base:0x00000000 Size:0x00000000
[0000.975] I> 26) Base:0x00000000 Size:0x00000000
[0000.980] I> 27) Base:0x00000000 Size:0x00000000
[0000.984] I> 28) Base:0x84400000 Size:0x00400000
[0000.989] I> 29) Base:0x30000000 Size:0x00010000
[0000.993] I> 30) Base:0x278000000 Size:0x08000000
[0000.998] I> 31) Base:0x00000000 Size:0x00000000
[0001.002] I> 32) Base:0x276000000 Size:0x00600000
[0001.007] I> 33) Base:0x80000000 Size:0x70000000
[0001.011] I> 34) Base:0xf0110000 Size:0x185ef0000
[0001.015] I> 35) Base:0x00000000 Size:0x00000000
[0001.020] I> 36) Base:0x00000000 Size:0x00000000
[0001.024] I> 37) Base:0x2772e0000 Size:0x00020000
[0001.029] I> 38) Base:0x84000000 Size:0x00400000
[0001.033] I> 39) Base:0x96000000 Size:0x02400000
[0001.038] I> 40) Base:0x85000000 Size:0x01200000
[0001.042] I> 41) Base:0x277000000 Size:0x00280000
[0001.047] I> 42) Base:0x00000000 Size:0x00000000
[0001.051] I> 43) Base:0x00000000 Size:0x00000000
[0001.056] GIC-SPI Target CPU: 4
[0001.059] Interrupts Init done
[0001.062] calling constructors
[0001.065] initializing heap
[0001.068] initializing threads
[0001.071] initializing timers
[0001.074] creating bootstrap completion thread
[0001.079] top of bootstrap2()
[0001.082] CPU: ARM Cortex A57
[0001.085] CPU: MIDR: 0x411FD073, MPIDR: 0x80000100
[0001.090] initializing platform
[0001.093] I> Boot-device: eMMC
[0001.097] I> sdmmc bdev is already initialized
[0001.101] I> Reading GPT from 512 for device 00000003
[0001.107] I> Reading GPT from 16776704 for device 00000003
[0001.114] I> Found 13 partitions in 00000003 device
[0001.118] I> Reading GPT from 512 for device 00010003
[0001.124] I> Found 29 partitions in 00010003 device
[0001.129] W> opt-in fuse is not set, skip fuse_burning
[0001.134] I> Bl_dtb @0x8520f400
[0001.137] I> gpio framework initialized
[0001.141] I> tegrabl_gpio_driver_register: register 'tegra_gpio_main_driver' driver
[0001.148] I> tegrabl_gpio_driver_register: register 'tegra_gpio_aon_driver' driver
[0001.155] I> tegrabl_tca9539_init: i2c bus: 0, slave addr: 0xee
[0001.164] I> tegrabl_gpio_driver_register: register 'tca9539_gpio_driver' driver
[0001.172] I> tegrabl_tca9539_init: i2c bus: 0, slave addr: 0xe8
[0001.180] I> tegrabl_gpio_driver_register: register 'tca9539_gpio_driver' driver
[0001.187] I> tegrabl_tca9539_init: i2c bus: 0, slave addr: 0xec
[0001.193] E> i2c dev write failed
[0001.196] E> tca9539_device_init: failed to write polar reg
[0001.202] E> tegrabl_tca9539_init: failed to init device!
[0001.207] E> GPIO TCA9539 driver init failed
[0001.324] I> decompressor handler not found
[0001.330] I> fixed regulator driver initialized
[0001.361] I> register 'maxim' power off handle
[0001.367] I> virtual i2c enabled
[0001.370] I> registered 'maxim,max77620' pmic
[0001.374] I> tegrabl_gpio_driver_register: register 'max77620-gpio' driver
[0001.383] I> Find /i2c@c250000's alias i2c7
[0001.387] I> Reading eeprom i2c=7 address=0x50
[0001.418] I> Device at /i2c@c250000:0x50
[0001.421] I> Reading eeprom i2c=7 address=0x57
[0001.451] I> Device at /i2c@c250000:0x57
[0001.455] I> Find /i2c@c240000's alias i2c1
[0001.459] I> Reading eeprom i2c=1 address=0x51
[0001.465] E> i2c dev read failed
[0001.468] E> eeprom: Retry to read I2C slave device.
[0001.473] E> i2c dev read failed
[0001.476] E> eeprom: Failed to read I2C slave device
[0001.481] I> Eeprom read failed 0x1a89800d
[0001.485] I> Find /i2c@3160000's alias i2c0
[0001.489] I> Reading eeprom i2c=0 address=0x50
[0001.494] E> i2c dev read failed
[0001.497] E> eeprom: Failed to read I2C slave device
[0001.502] I> Eeprom read failed 0x1a89800d
[0001.507] I> Find /i2c@3180000's alias i2c2
[0001.511] I> Reading eeprom i2c=2 address=0x54
[0001.515] I> Enabling gpio chip_id = 2, gpio pin = 9
[0001.522] E> i2c dev read failed
[0001.525] E> eeprom: Failed to read I2C slave device
[0001.530] I> Disabling gpio chip_id = 2, gpio pin = 9
[0001.535] I> Eeprom read failed 0x00000000
[0001.539] I> create_pm_ids: id: 3489-0000-300-K, len: 15
[0001.544] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0001.555] I> create_pm_ids: id: 2597-0000-302-D, len: 15
[0001.560] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0001.573] I> found one nvdisp nodes at offset = 75908
[0001.578] I> found one nvdisp nodes at offset = 76716
[0001.583] I> found one nvdisp nodes at offset = 77624
[0001.588] I> no valid display unit config found in dtb
[0001.593] W> display init failed
[0001.596] initializing target
[0001.599] calling apps_init()
[0001.602] starting app android_boot_app
[0001.606] I> Gpio keyboard init success
[0001.610] I> Kernel type = Normal
[0001.613] I> Loading kernel/boot.img from storage ...
[0001.618] W> No valid slot number is found in scratch register
[0001.624] W> Return default slot: _a
[0001.627] I> A/B: bin_type (0) slot 0
[0001.630] I> Loading partition kernel at 0xa8000000
[0002.391] I> tegrabl_auth_payload: partition kernel (bin_type 0)
[0002.430] W> No valid slot number is found in scratch register
[0002.436] W> Return default slot: _a
[0002.439] I> A/B: bin_type (1) slot 0
[0002.443] I> Loading partition kernel-dtb at 0x92000000
[0002.454] I> tegrabl_auth_payload: partition kernel-dtb (bin_type 1)
[0002.461] I> Kernel DTB @ 0x92000000
[0002.464] I> Checking boot.img header magic ... [0002.469] I> [OK]
[0002.470] I> Valid boot.img @ 0xa8000000
[0002.474] I> decompressor handler not found
[0002.478] I> Copying kernel image (20665984 bytes) from 0xa8000800 to 0x80080000 ... [0002.491] I> Done
[0002.493] I> Move ramdisk (len: 0) from 0xa93b6000 to 0x9d000000
[0002.500] I> Updated bpmp info to DTB
[0002.505] I> Ramdisk: Base: 0x9d000000; Size: 0x0
[0002.510] I> Updated initrd info to DTB
[0002.513] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0002.521] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0002.528] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0002.535] I> disabled_core_mask: 0xffffff0c
[0002.539] W> No valid slot number is found in scratch register
[0002.545] W> Return default slot: _a
[0002.548] I> Active slot suffix: 
[0002.551] I> add_boot_slot_suffix: slot_suffix = 
[0002.556] I> add_serialno: Serial Num = 0420518009437
[0002.561] I> Linux Cmdline: root=/dev/mmcblk0p1 rw rootwait console=ttyS0,115200n8 console=tty0 OS=l4t fbcon=map:0 net.ifnames=0 memtype=0 video=tegrafb no_console_suspend=1 earlycon=uart8250,mmio32,0x03100000 nvdumper_reserved=0x2772e0000 gpt tegraid=18.1.2.0.0 tegra_keep_boot_clocks maxcpus=6 boot.slot_suffix= boot.ratchetvalues=0.2.1 androidboot.serialno=0420518009437 bl_prof_dataptr=0x10000@0x277040000 sdhci_tegra.en_boot_part_access=1 
[0002.599] I> Updated bootarg info to DTB
[0002.603] E> "plugin-manager" doesn't exist, creating
[0002.608] E> "odm-data" doesn't exist, creating
[0002.614] I> eeprom_get_mac_addr: MAC (type: 0): 00:ff:ff:ff:ff:ff
[0002.620] I> eeprom_get_mac_addr: MAC (type: 1): 00:ff:ff:ff:ff:ff
[0002.626] I> eeprom_get_mac_addr: MAC (type: 2): 00:04:4b:a9:28:16
[0002.632] E> "ids" doesn't exist, creating
[0002.636] E> "connection" doesn't exist, creating
[0002.641] E> "configs" doesn't exist, creating
[0002.645] I> create_pm_ids: id: 3489-0000-300-K, len: 15
[0002.650] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0002.661] I> create_pm_ids: id: 2597-0000-302-D, len: 15
[0002.666] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0002.677] I> Adding plugin-manager/ids/3489-0000-300=/i2c@c250000:module@0x50
[0002.684] E> "i2c@c250000" doesn't exist, creating
[0002.689] E> "module@0x50" doesn't exist, creating
[0002.694] I> Adding plugin-manager/ids/2597-0000-302=/i2c@c250000:module@0x57
[0002.701] E> "module@0x57" doesn't exist, creating
[0002.707] I> Adding plugin-manager/ids/3489-0000-300-K
[0002.713] I> Adding plugin-manager/configs/3489-mem-type 00
[0002.719] I> Adding plugin-manager/configs/3489-power-config 00
[0002.724] I> Adding plugin-manager/configs/3489-misc-config 00
[0002.730] I> Adding plugin-manager/configs/3489-modem-config 00
[0002.736] I> Adding plugin-manager/configs/3489-touch-config 00
[0002.742] I> Adding plugin-manager/configs/3489-display-config 00
[0002.748] E> "chip-id" doesn't exist, creating
[0002.752] I> Adding plugin-manager/chip-id/A02P
[0002.758] I> added [base:0x80000000, size:0x70000000] to /memory
[0002.764] I> added [base:0xf0200000, size:0x185e00000] to /memory
[0002.770] I> added [base:0x276600000, size:0x200000] to /memory
[0002.775] E> WARNING: Failed to pass NS DRAM ranges to TOS
[0002.781] I> Updated memory info to DTB
[0002.786] E> "reset" doesn't exist, creating
[0002.790] E> "pmc-reset-reason" doesn't exist, creating
[0002.795] E> "pmic-reset-reason" doesn't exist, creating
[0002.800] I> disabled_core_mask: 0xffffff0c
[0002.810] I> Add serial number as DT property
[0002.815] I> tegrabl_load_kernel_and_dtb: Done
[0002.819] E> tegrabl_display_clear: display is not initialized
[0002.824] W> Boot logo display failed...

I have also confirmed JetPack4.2 doesn’t have this issue, see bootup message below.

> [0000.270] I> Welcome to MB2(TBoot-BPMP)(version: 01.00.160913-t186-M-00.00-mobile-1b47d5d9)
[0000.278] I> bit @ 0xd480000
[0000.281] I> Boot-device: eMMC
[0000.285] I> sdmmc bdev is already initialized
[0000.290] I> pmic: reset reason (nverc)	: 0x80
[0000.297] I> Found 16 partitions in SDMMC_BOOT (instance 3)
[0000.304] I> Found 31 partitions in SDMMC_USER (instance 3)
[0000.310] I> MB2 check ECC error: EMC_INTSTATUS_0: 0x10
[0000.315] I> MB2 check ECC error: EMC_INTSTATUS_0: 0x0
[0000.320] I> MB2 check ECC error: EMC_INTSTATUS_0: 0x10
[0000.325] I> MB2 check ECC error: EMC_INTSTATUS_0: 0x0
[0000.330] I> OEM carveouts init scrub in progress...
[0000.406] I> MB2 check ECC error: EMC_INTSTATUS_0: 0x10
[0000.412] I> MB2 check ECC error: EMC_INTSTATUS_0: 0x0
[0000.416] I> MB2 check ECC error: EMC_INTSTATUS_0: 0x10
[0000.422] I> MB2 check ECC error: EMC_INTSTATUS_0: 0x0
[0000.427] I> Mb2 SDRAM scrub successful
[0000.430] I> A/B: bin_type (16) slot 0
[0000.434] I> Loading partition bpmp-fw at 0xd7800000
[0000.439] I> Reading two headers - addr:0xd7800000 blocks:1
[0000.444] I> Addr: 0xd7800000, start-block: 58777608, num_blocks: 1
[0000.459] I> Binary(16) of size 532656 is loaded @ 0xd7800000
[0000.465] I> A/B: bin_type (17) slot 0
[0000.469] I> Loading partition bpmp-fw-dtb at 0xd79f0000
[0000.474] I> Reading two headers - addr:0xd79f0000 blocks:1
[0000.479] I> Addr: 0xd79f0000, start-block: 58780024, num_blocks: 1
[0000.488] I> Binary(17) of size 75600 is loaded @ 0xd79ed600
[0000.523] I> Loading SCE-FW ...
[0000.526] I> A/B: bin_type (12) slot 0
[0000.530] I> Loading partition sce-fw at 0xd7300000
[0000.535] I> Reading two headers - addr:0xd7300000 blocks:1
[0000.540] I> Addr: 0xd7300000, start-block: 58782024, num_blocks: 1
[0000.550] I> Binary(12) of size 125168 is loaded @ 0xd7300000
[0000.555] I> Init SCE
[0000.558] I> Loading APE-FW ...
[0000.561] I> A/B: bin_type (11) slot 0
[0000.564] I> Loading partition adsp-fw at 0xd7400000
[0000.569] I> Reading two headers - addr:0xd7400000 blocks:1
[0000.574] I> Addr: 0xd7400000, start-block: 58761224, num_blocks: 1
[0000.584] I> Binary(11) of size 106240 is loaded @ 0xd7400000
[0000.590] I> Copy BTCM section
[0000.593] I> A/B: bin_type (13) slot 0
[0000.596] I> Loading partition cpu-bootloader at 0x96000000
[0000.602] I> Reading two headers - addr:0x96000000 blocks:1
[0000.607] I> Addr: 0x96000000, start-block: 58740744, num_blocks: 1
[0000.618] I> Binary(13) of size 275920 is loaded @ 0x96000000
[0000.624] I> A/B: bin_type (20) slot 0
[0000.628] I> Loading partition bootloader-dtb at 0x8520f400
[0000.633] I> Reading two headers - addr:0x8520f400 blocks:1
[0000.639] I> Addr: 0x8520f400, start-block: 58742792, num_blocks: 1
[0000.651] I> Binary(20) of size 337392 is loaded @ 0x8520f400
[0000.657] I> A/B: bin_type (14) slot 0
[0000.660] I> Loading partition secure-os at 0x8530f600
[0000.665] I> Reading two headers - addr:0x8530f600 blocks:1
[0000.671] I> Addr: 0x8530f600, start-block: 58744840, num_blocks: 1
[0000.679] I> Binary(14) of size 83360 is loaded @ 0x8530f600
[0000.687] I> boot profiler @ 0x235844000
[0000.691] I> Unhalting SCE
[0000.694] I> Primary Memory Start:80000000 Size:70000000
[0000.699] I> Extended Memory Start:f0110000 Size:1456f0000
[0000.706] I> MB2(TBoot-BPMP) done

NOTICE:  BL31: v1.3(release):eca0c5e
NOTICE:  BL31: Built : 00:20:29, Mar 13 2019
ERROR:   Error initializing runtime service trusty_fast
[0000.909] I> Welcome to Cboot
[0000.912] I> Cboot Version: t186-13ef9e7a
[0000.915] I> CPU-BL Params @ 0x235800000
[0000.919] I> Dram Scrub in progress
[0001.563] I> DRAM Scrub Successful
[0001.566] I>  0) Base:0x00000000 Size:0x00000000
[0001.570] I>  1) Base:0x237f00000 Size:0x00100000
[0001.575] I>  2) Base:0x237e00000 Size:0x00100000
[0001.579] I>  3) Base:0x237d00000 Size:0x00100000
[0001.584] I>  4) Base:0x237c00000 Size:0x00100000
[0001.588] I>  5) Base:0x237b00000 Size:0x00100000
[0001.593] I>  6) Base:0x237800000 Size:0x00200000
[0001.597] I>  7) Base:0x237400000 Size:0x00400000
[0001.602] I>  8) Base:0x237a00000 Size:0x00100000
[0001.606] I>  9) Base:0x237300000 Size:0x00100000
[0001.611] I> 10) Base:0x236800000 Size:0x00800000
[0001.615] I> 11) Base:0x30000000 Size:0x00040000
[0001.620] I> 12) Base:0xf0000000 Size:0x00100000
[0001.624] I> 13) Base:0x30040000 Size:0x00001000
[0001.629] I> 14) Base:0x30048000 Size:0x00001000
[0001.633] I> 15) Base:0x30049000 Size:0x00001000
[0001.638] I> 16) Base:0x3004a000 Size:0x00001000
[0001.642] I> 17) Base:0x3004b000 Size:0x00001000
[0001.646] I> 18) Base:0x3004c000 Size:0x00001000
[0001.651] I> 19) Base:0x3004d000 Size:0x00001000
[0001.655] I> 20) Base:0x3004e000 Size:0x00001000
[0001.660] I> 21) Base:0x3004f000 Size:0x00001000
[0001.664] I> 22) Base:0x00000000 Size:0x00000000
[0001.669] I> 23) Base:0xf0100000 Size:0x00010000
[0001.673] I> 24) Base:0x00000000 Size:0x00000000
[0001.677] I> 25) Base:0x00000000 Size:0x00000000
[0001.682] I> 26) Base:0x00000000 Size:0x00000000
[0001.686] I> 27) Base:0x00000000 Size:0x00000000
[0001.691] I> 28) Base:0x84400000 Size:0x00400000
[0001.695] I> 29) Base:0x30000000 Size:0x00010000
[0001.700] I> 30) Base:0x238000000 Size:0x08000000
[0001.704] I> 31) Base:0x00000000 Size:0x00000000
[0001.709] I> 32) Base:0x236000000 Size:0x00600000
[0001.713] I> 33) Base:0x80000000 Size:0x70000000
[0001.717] I> 34) Base:0xf0110000 Size:0x1456f0000
[0001.722] I> 35) Base:0x00000000 Size:0x00000000
[0001.726] I> 36) Base:0x00000000 Size:0x00000000
[0001.731] I> 37) Base:0x2372e0000 Size:0x00020000
[0001.735] I> 38) Base:0x84000000 Size:0x00400000
[0001.740] I> 39) Base:0x96000000 Size:0x02000000
[0001.744] I> 40) Base:0x85000000 Size:0x01200000
[0001.749] I> 41) Base:0x235800000 Size:0x00500000
[0001.753] I> 42) Base:0x00000000 Size:0x00000000
[0001.758] I> 43) Base:0x00000000 Size:0x00000000
[0001.762] GIC-SPI Target CPU: 4
[0001.765] Interrupts Init done
[0001.769] calling constructors
[0001.772] initializing heap
[0001.774] initializing threads
[0001.778] initializing timers
[0001.781] creating bootstrap completion thread
[0001.785] top of bootstrap2()
[0001.788] CPU: ARM Cortex A57
[0001.792] CPU: MIDR: 0x411FD073, MPIDR: 0x80000100
[0001.797] initializing platform
[0001.800] I> Boot-device: eMMC
[0001.804] I> sdmmc bdev is already initialized
[0001.809] I> Found 16 partitions in SDMMC_BOOT (instance 3)
[0001.816] I> Found 31 partitions in SDMMC_USER (instance 3)
[0001.821] W> opt-in fuse is not set, skip fuse_burning
[0001.826] I> Reserved memory at 0xfbe00000 for U-Boot relocation
[0001.832] W> No valid slot number is found in scratch register
[0001.838] W> Return default slot: _a
[0001.841] I> A/B: bin_type (21) slot 0
[0001.845] I> Loading partition kernel-dtb at 0x80000000 from device(0x1)
[0001.858] I> Kernel_dtb @0x80000000
[0001.861] I> Bl_dtb @0x8520f400
[0001.864] I> gpio framework initialized
[0001.870] I> tegrabl_gpio_driver_register: register 'nvidia,tegra186-gpio' driver
[0001.880] I> tegrabl_gpio_driver_register: register 'nvidia,tegra186-gpio-aon' driver
[0001.888] I> tegrabl_tca9539_init: i2c bus: 0, slave addr: 0xee
[0001.898] I> tegrabl_gpio_driver_register: register 'tca9539_gpio_driver' driver
[0001.906] I> tegrabl_tca9539_init: i2c bus: 0, slave addr: 0xe8
[0001.915] I> tegrabl_gpio_driver_register: register 'tca9539_gpio_driver' driver
[0001.925] I> fixed regulator driver initialized
[0001.957] I> register 'maxim' power off handle
[0001.963] I> virtual i2c enabled
[0001.966] I> registered 'maxim,max77620' pmic
[0001.970] I> tegrabl_gpio_driver_register: register 'max77620-gpio' driver
[0001.983] I> Find /i2c@c250000's alias i2c7
[0001.987] I> Reading eeprom i2c=7 address=0x50
[0002.017] I> Device at /i2c@c250000:0x50
[0002.021] I> Reading eeprom i2c=7 address=0x57
[0002.050] I> Device at /i2c@c250000:0x57
[0002.055] I> Find /i2c@c240000's alias i2c1
[0002.059] I> Reading eeprom i2c=1 address=0x51
[0002.064] E> I2C: slave not found in slaves.
[0002.068] E> I2C: Could not write 0 bytes to slave: 0x00a2 with repeat start true.
[0002.076] E> I2C_DEV: Failed to send register address 0x00000000.
[0002.082] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa2 at 0x00000000 via instance 1.
[0002.091] E> eeprom: Retry to read I2C slave device.
[0002.096] E> I2C: slave not found in slaves.
[0002.100] E> I2C: Could not write 0 bytes to slave: 0x00a2 with repeat start true.
[0002.108] E> I2C_DEV: Failed to send register address 0x00000000.
[0002.114] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa2 at 0x00000000 via instance 1.
[0002.123] E> eeprom: Failed to read I2C slave device
[0002.128] I> Eeprom read failed 0x3526070d
[0002.133] I> Find /i2c@3160000's alias i2c0
[0002.137] I> Reading eeprom i2c=0 address=0x50
[0002.141] E> I2C: slave not found in slaves.
[0002.145] E> I2C: Could not write 0 bytes to slave: 0x00a0 with repeat start true.
[0002.153] E> I2C_DEV: Failed to send register address 0x00000000.
[0002.159] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa0 at 0x00000000 via instance 0.
[0002.168] E> eeprom: Failed to read I2C slave device
[0002.173] I> Eeprom read failed 0x3526070d
[0002.178] I> Find /i2c@3180000's alias i2c2
[0002.182] I> Reading eeprom i2c=2 address=0x54
[0002.186] I> Enabling gpio chip_id = 2, gpio pin = 9
[0002.192] E> I2C: slave not found in slaves.
[0002.197] E> I2C: Could not write 0 bytes to slave: 0x00a8 with repeat start true.
[0002.204] E> I2C_DEV: Failed to send register address 0x00000000.
[0002.210] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa8 at 0x00000000 via instance 2.
[0002.220] E> eeprom: Failed to read I2C slave device
[0002.224] I> Disabling gpio chip_id = 2, gpio pin = 9
[0002.230] I> Eeprom read failed 0x00000000
[0002.233] I> Reading eeprom i2c=2 address=0x57
[0002.238] I> Enabling gpio chip_id = 2, gpio pin = 9
[0002.243] E> I2C: slave not found in slaves.
[0002.247] E> I2C: Could not write 0 bytes to slave: 0x00ae with repeat start true.
[0002.255] E> I2C_DEV: Failed to send register address 0x00000000.
[0002.261] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xae at 0x00000000 via instance 2.
[0002.271] E> eeprom: Failed to read I2C slave device
[0002.275] I> Disabling gpio chip_id = 2, gpio pin = 9
[0002.281] I> Eeprom read failed 0x00000000
[0002.284] I> create_pm_ids: id: 3489-0000-300-K, len: 15
[0002.290] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0002.301] I> create_pm_ids: id: 2597-0000-302-D, len: 15
[0002.306] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0002.338] I> enabling 'vdd-hdmi' regulator
[0002.353] I> regulator 'vdd-hdmi' already enabled
[0002.357] E> tegrabl_display_init_regulator: hdmi cable is not connected
[0002.364] E> tegrabl_display_get_pdata, failed to parse dtb settings
[0002.372] E> cannot find any other nvdisp nodes
[0002.377] E> no valid display unit config found in dtb
[0002.382] W> display init failed
[0002.385] initializing target
[0002.389] calling apps_init()
[0002.392] starting app kernel_boot_app
[0002.398] I> found decompressor handler: lz4-legacy
[0002.402] I> decompressing BMP blob ...
[0002.412] I> Kernel type = Normal
[0002.415] I> Loading kernel/boot.img from built-in storage ...
[0002.421] W> No valid slot number is found in scratch register
[0002.427] W> Return default slot: _a
[0002.430] I> A/B: bin_type (24) slot 0
[0003.190] I> Boot image size read from image header: f20d0
[0003.195] I> Boot image load address: 0x0x80400000
[0003.200] I> Loading partition kernel at 0x80400000 from device(0x1)
[0003.962] I> Kernel hdr @0x80400000
[0003.965] I> Kernel dtb @0x80000000
[0003.969] I> T18x: Authenticate boot.img (bin_type 24), max size 0x4000000
[0003.976] I> T18x: Authenticate tegra194-p2888-0001-p2822-0000.dtb (bin_type 21), max size 0x100000
[0003.986] I> Checking boot.img header magic ... [0003.990] I> [OK]
[0003.992] I> Valid boot.img @ 0x80400000
[0003.995] I> decompressor handler not found
[0003.999] I> Copying kernel image (474242 bytes) from 0x80400800 to 0x84600000 ... [0004.007] I> Done
[0004.009] I> Move ramdisk (len: 0) from 0x80474800 to 0x98730000
[0004.016] I> Updated bpmp info to DTB
[0004.022] I> Ramdisk: Base: 0x98730000; Size: 0x0
[0004.026] I> Updated initrd info to DTB
[0004.030] W> WARN: Fail to override "console=none" in commandline
[0004.036] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0004.043] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0004.050] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0004.057] I> disabled_core_mask: 0xffffff0c
[0004.061] W> No valid slot number is found in scratch register
[0004.067] W> Return default slot: _a
[0004.070] I> Active slot suffix: 
[0004.073] I> add_boot_slot_suffix: slot_suffix = 
[0004.078] I> Linux Cmdline: root=/dev/mmcblk0p1 rw rootwait console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 video=tegrafb no_console_suspend=1 earlycon=uart8250,mmio32,0x3100000 nvdumper_reserved=0x2372e0000 gpt usbcore.old_scheme_first=1 tegraid=18.1.2.0.0 maxcpus=6 boot.slot_suffix= boot.ratchetvalues=0.983055.1 bl_prof_dataptr=0x10000@0x235840000 sdhci_tegra.en_boot_part_access=1 
[0004.113] I> Updated bootarg info to DTB
[0004.117] I> eeprom_get_mac_addr: MAC (type: 0): 00:ff:ff:ff:ff:ff
[0004.123] I> eeprom_get_mac_addr: MAC (type: 1): 00:ff:ff:ff:ff:ff
[0004.129] I> eeprom_get_mac_addr: MAC (type: 2): 00:04:4b:a9:28:16
[0004.137] E> Found no plugin manager ids in source DT
[0004.142] W> Add plugin manager ids from board info
[0004.147] E> "plugin-manager" doesn't exist, creating
[0004.152] E> "ids" doesn't exist, creating
[0004.156] E> "connection" doesn't exist, creating
[0004.160] E> "configs" doesn't exist, creating
[0004.165] I> create_pm_ids: id: 3489-0000-300-K, len: 15
[0004.170] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0004.181] I> create_pm_ids: id: 2597-0000-302-D, len: 15
[0004.186] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0004.197] I> Adding plugin-manager/ids/3489-0000-300=/i2c@c250000:module@0x50
[0004.204] E> "i2c@c250000" doesn't exist, creating
[0004.209] E> "module@0x50" doesn't exist, creating
[0004.214] I> Adding plugin-manager/ids/2597-0000-302=/i2c@c250000:module@0x57
[0004.221] E> "module@0x57" doesn't exist, creating
[0004.228] I> Adding plugin-manager/ids/3489-0000-300-K
[0004.234] I> Adding plugin-manager/configs/3489-mem-type 00
[0004.240] I> Adding plugin-manager/configs/3489-power-config 00
[0004.246] I> Adding plugin-manager/configs/3489-misc-config 00
[0004.252] I> Adding plugin-manager/configs/3489-modem-config 00
[0004.258] I> Adding plugin-manager/configs/3489-touch-config 00
[0004.264] I> Adding plugin-manager/configs/3489-display-config 00
[0004.270] I> Adding plugin-manager/cvm
[0004.274] E> "chip-id" doesn't exist, creating
[0004.278] I> Adding plugin-manager/chip-id/A02P
[0004.283] E> "odm-data" doesn't exist, creating
[0004.287] I> Adding /chosen/plugin-manager/odm-data
[0004.297] I> added [base:0x80000000, size:0x70000000] to /memory
[0004.303] I> added [base:0xf0200000, size:0x145600000] to /memory
[0004.309] I> added [base:0x235e00000, size:0x200000] to /memory
[0004.314] I> added [base:0x236600000, size:0x200000] to /memory
[0004.320] I> added [base:0x237000000, size:0x200000] to /memory
[0004.326] I> Updated memory info to DTB
[0004.330] E> add_disp_param: failed to get display params for du=0
[0004.338] E> "reset" doesn't exist, creating
[0004.342] E> "pmc-reset-reason" doesn't exist, creating
[0004.348] E> "pmic-reset-reason" doesn't exist, creating
[0004.354] I> Adding ecid(00000001643d45850000000019fe02c0) to DT
[0004.360] I> disabled_core_mask: 0xffffff0c
[0004.371] I> Add serial number:0420518009437 as DT property
[0004.380] I> Plugin-manager override starting
[0004.386] I> node /plugin-manager/fragement@0 matches
[0004.395] I> node /plugin-manager/fragement@4 matches
[0004.436] I> node /plugin-manager/fragment-p3310-c00-camera matches
[0004.461] I> Disable plugin-manager status in FDT
[0004.466] I> Plugin-manager override finished successfully
[0004.471] I> tegrabl_load_kernel_and_dtb: Done
[0004.475] I> Sending TOS params
[0004.478] I> Sending NS DRAM Ranges to TOS
[0004.482] W> Failed to send NS DRAM Ranges to TOS
[0004.487] W> Failed to lock interface between BL and TOS
[0004.492] E> tegrabl_display_clear: display is not initialized
[0004.498] W> Boot logo display failed...
[0004.501] I> Kernel EP: 0x84600000, DTB: 0x80000000

I still have some questions below:

  1. For JetPack3.2, whether there are some side-effect after disabling ECC?
  2. For JetPack4.2, I assume it is enable ECC, why it doesn’t have this issue that boot up time cost 17econds?
  3. Can we apply JetPack4.2 DRAM ECC feature to JetPack3.2, if we have to enable DRAM ECC and also doesn’t want 17 seconds boot up time? If yes, can you give me more detail instruction here?
  4. After compare flash.xml JetPack4.2 vs JetPack3.2, the new partition called dram-ecc-fw and new firmware dram-ecc.bin have been added. Is that the main reason cause boot up time optimization?
<partition name="dram-ecc-fw" type="dram_ecc" oem_sign="true">
            <allocation_policy> sequential </allocation_policy>
            <filesystem_type> basic </filesystem_type>
            <size> 55296 </size>
            <file_system_attribute> 0 </file_system_attribute>
            <allocation_attribute> 8 </allocation_attribute>
            <percent_reserved> 0 </percent_reserved>
            <filename> dram-ecc.bin </filename>
        </partition>
  1. The side effect is no full DRAM scrubbing. Please note that TX1/TX2 both have no ECC.

  2. jetpack4.2 has included lots of changes and cboot runs dram in higher clock. That is why you would not see the delay.

  3. No, as per checked with our internal developer, the changes are quite large and MB1/MB2 are involved. The kernel base is also different between Jetpack3.2(k4.4) and Jetpack4.2 (k4.9).

  4. This firmware is just an implementation based on my point in #3.