Jetson FastBoot using Driver Asynchronous Probe

Welcome to minicom 2.7.1

OPTIONS: I18n 
Compiled on Aug 13 2017, 15:25:34.
Port /dev/ttyTHS1, 10:17:16

Press CTRL-A Z for help on special keys

[0000.125] [L4T TegraBoot] (version 00.00.2018.01-l4t-8728f3cb)
[0000.130] Processing in cold boot mode Bootloader 2
[0000.135] A02 Bootrom Patch rev = 1023
[0000.138] Power-up reason: pmc por
[0000.141] No Battery Present
[0000.144] pmic max77620 reset reason
[0000.147] pmic max77620 NVERC : 0x40
[0000.151] RamCode = 1
[0000.153] Platform has DDR4 type RAM
[0000.156] max77620 disabling SD1 Remote Sense
[0000.161] Setting DDR voltage to 1125mv
[0000.165] Serial Number of Pmic Max77663: 0x20ac1
[0000.172] Entering ramdump check
[0000.175] Get RamDumpCarveOut = 0x0
[0000.178] RamDumpCarveOut=0x0,  RamDumperFlag=0xe59ff3f8                       
[0000.184] Last reboot was clean, booting normally!                             
[0000.188] Sdram initialization is successful                                   
[0000.192] SecureOs Carveout Base=0x00000000ff800000 Size=0x00800000            
[0000.198] Lp0 Carveout Base=0x00000000ff800000 Size=0x00000000                 
[0000.204] BpmpFw Carveout Base=0x00000000ff800000 Size=0x00000000              
[0000.210] GSC1 Carveout Base=0x00000000ff800000 Size=0x00000000                
[0000.216] Resize the SecureOs Carveout to 0x00100000                           
[0000.221] GSC2 Carveout Base=0x00000000ff900000 Size=0x00100000                
[0000.226] GSC4 Carveout Base=0x00000000ff800000 Size=0x00000000                
[0000.232] GSC5 Carveout Base=0x00000000ff800000 Size=0x00000000                
[0000.238] GSC3 Carveout Base=0x00000000bf800000 Size=0x00200000                
[0000.244] RamDump Carveout Base=0x0000000000000000 Size=0x00000000             
[0000.250] Platform-DebugCarveout: 0                                            
[0000.253] Nck Carveout Base=0x00000000ff800000 Size=0x00000000                 
[0000.259] Non secure mode, and RB not enabled.                                 
[0000.263] BoardID = 3448, SKU = 0x3                                            
[0000.266] QSPI-ONLY: SkipQspiOnlyFlag = 0                                      
[0000.270] Nano-SD: checking PT table on QSPI ...                               
[0000.274] Initialize FailControl                                               
[0000.277] Read PT from (2:0)                                                   
[0000.308] PT crc32 and magic check passed.                                     
[0000.312] Using BFS PT to query partitions                                     
[0000.317] Loading Tboot-CPU binary                                             
[0000.346] Verifying TBC in OdmNonSecureSBK mode                                
[0000.356] Bootloader load address is 0xa0000000, entry address is 0xa0000258   
[0000.363] Bootloader downloaded successfully.                                  
[0000.367] Downloaded Tboot-CPU binary to 0xa0000258                            
[0000.372] MAX77620_GPIO5 configured                                            
[0000.375] CPU power rail is up                                                 
[0000.378] CPU clock enabled                                                    
[0000.382] Performing RAM repair                                                
[0000.385] Updating A64 Warmreset Address to 0xa00002e9                         
[0000.390] BoardID = 3448, SKU = 0x3                                            
[0000.393] QSPI-ONLY: SkipQspiOnlyFlag = 0                                      
[0000.397] Nano-SD: checking PT table on QSPI ...                               
[0000.401] NvTbootFailControlDoFailover: No failover; Continuing ...            
[0000.407] Loading NvTbootBootloaderDTB                                         
[0000.474] Verifying NvTbootBootloaderDTB in OdmNonSecureSBK mode               
[0000.543] Bootloader DTB Load Address: 0x83000000                              
[0000.547] BoardID = 3448, SKU = 0x3                                            
[0000.551] QSPI-ONLY: SkipQspiOnlyFlag = 0                                      
[0000.555] Nano-SD: checking PT table on QSPI ...                               
[0000.559] NvTbootFailControlDoFailover: No failover; Continuing ...            
[0000.565] Loading NvTbootKernelDTB                                             
[0000.631] Verifying NvTbootKernelDTB in OdmNonSecureSBK mode                   
[0000.700] Kernel DTB Load Address: 0x83100000                                  
[0000.704] BoardID = 3448, SKU = 0x3                                            
[0000.708] QSPI-ONLY: SkipQspiOnlyFlag = 0                                      
[0000.711] Nano-SD: checking PT table on QSPI ...                               
[0000.716] NvTbootFailControlDoFailover: No failover; Continuing ...            
[0000.723] Loading cboot binary                                                 
[0000.839] Verifying EBT in OdmNonSecureSBK mode                                
[0000.881] Bootloader load address is 0x92c00000, entry address is 0x92c00258   
[0000.888] Bootloader downloaded successfully.                                  
[0000.892] BoardID = 3448, SKU = 0x3                                            
[0000.895] QSPI-ONLY: SkipQspiOnlyFlag = 0                                      
[0000.899] Nano-SD: checking PT table on QSPI ...                               
[0000.903] NvTbootFailControlDoFailover: No failover; Continuing ...            
[0000.910] PT: Partition NCT NOT found !                                        
[0000.913] Warning: Find Partition via PT Failed                                
[0000.918] Next binary entry address: 0x92c00258                                
[0000.922] BoardId: 3448                                                        
[0000.927] Overriding pmu board id with proc board id                           
[0000.932] Display board id is not available                                    
[0000.936] No Bpmp FW loaded                                                    
[0000.938] Not loading WB0 as no bpmp/sc7entry fw                               
[0000.943] Set NvDecSticky Bits                                                 
[0000.946] GSC2 address ff93fffc value c0edbbcc                                 
[0000.953] GSC MC Settings done                                                 
[0000.955] BoardID = 3448, SKU = 0x3                                            
[0000.959] QSPI-ONLY: SkipQspiOnlyFlag = 0                                      
[0000.963] Nano-SD: checking PT table on QSPI ...                               
[0000.967] NvTbootFailControlDoFailover: No failover; Continuing ...            
[0000.974] TOS Image length 53680                                               
[0000.977]  Monitor size 53680                                                  
[0000.980]  OS size 0                                                           
[0000.995] Secure Os AES-CMAC Verification Success!                             
[0001.000] TOS image cipher info: plaintext                                     
[0001.003] Loading and Validation of Secure OS Successful                       
[0001.019] NvTbootPackSdramParams: start.                                       
[0001.024] NvTbootPackSdramParams: done.                                        
[0001.028] Tegraboot started after 51856 us                                     
[0001.032] Basic modules init took 953958 us                                    
[0001.036] Sec Bootdevice Read Time = 12 ms, Read Size = 61 KB                  
[0001.042] Sec Bootdevice Write Time = 0 ms, Write Size = 0 KB                  
[0001.047] Next stage binary read took 11287 us                                 
[0001.051] Carveout took -69914 us                                              
[0001.054] CPU initialization took 106077 us                                    
[0001.058] Total time taken by TegraBoot 1001408 us                             
                                                                                
[0001.063] Starting CPU & Halting co-processor                                  
                                                                                
64NOTICE:  BL31: v1.3(release):9892ce1                                          
NOTICE:  BL31: Built : 09:21:33, Nov 22 2022                                    
ERROR:   Error initializing runtime service trusty_fast                         
[0001.185] RamCode = 1                                                          
[0001.189] LPDDR4 Training: Read DT: Number of tables = 2                       
[0001.194] EMC Training (SRC-freq: 204000; DST-freq: 1600000)                   
[0001.207] EMC Training Successful                                              
[0001.210] 408000 not found in DVFS table                                       
[0001.217] RamCode = 1                                                          
[0001.220] DT Write: emc-table@204000 succeeded                                 
[0001.225] DT Write: emc-table@1600000 succeeded                                
[0001.230] LPDDR4 Training: Write DT: Number of tables = 2                      
[0001.268]                                                                      
[0001.269] Debug Init done                                                      
[0001.272] Marked DTB cacheable                                                 
[0001.275] Bootloader DTB loaded at 0x83000000                                  
[0001.279] Marked DTB cacheable                                                 
[0001.282] Kernel DTB loaded at 0x83100000                                      
[0001.286] DeviceTree Init done                                                 
[0001.299] Pinmux applied successfully                                          
[0001.304] gicd_base: 0x50041000                                                
[0001.307] gicc_base: 0x50042000                                                
[0001.310] Interrupts Init done                                                 
[0001.314] Using base:0x60005090 & irq:208 for tick-timer                       
[0001.320] Using base:0x60005098 for delay-timer                                
[0001.324] platform_init_timer: DONE                                            
[0001.327] Timer(tick) Init done                                                
[0001.331] osc freq = 38400 khz                                                 
[0001.335]                                                                      
[0001.336] Welcome to L4T Cboot                                                 
[0001.339]                                                                      
[0001.340] Cboot Version: 00.00.2018.01-t210-a2f2e4b8                           
[0001.345] calling constructors                                                 
[0001.348] initializing heap                                                    
[0001.351] initializing threads                                                 
[0001.354] initializing timers                                                  
[0001.357] creating bootstrap completion thread                                 
[0001.361] top of bootstrap2()                                                  
[0001.364] CPU: ARM Cortex A57                                                  
[0001.367] CPU: MIDR: 0x411FD071, MPIDR: 0x80000000                             
[0001.372] initializing platform                                                
[0001.379] Manufacturer: MF = 0xc2, ID MSB = 0x25                               
[0001.384] ID LSB = 0x36, ID-CFI len = 194 bytes                                
[0001.388] Macronix QSPI chip present                                           
[0001.392] SPI device register                                                  
[0001.394] init boot device                                                     
[0001.397] allocating memory for boot device(SPI)                               
[0001.402] registering boot device                                              
[0001.410] QSPI bdev is already initialized                                     
[0001.414] Enable APE clock                                                     
[0001.417] Un-powergate APE partition                                           
[0001.420] of_register: registering tegra_udc to of_hal                         
[0001.425] of_register: registering inv20628-driver to of_hal                   
[0001.431] of_register: registering ads1015-driver to of_hal                    
[0001.436] of_register: registering lp8557-bl-driver to of_hal                  
[0001.442] of_register: registering bq2419x_charger to of_hal                   
[0001.448] of_register: registering bq27441_fuel_gauge to of_hal                
[0001.459] gpio framework initialized                                           
[0001.463] of_register: registering tca9539_gpio to of_hal                      
[0001.468] of_register: registering tca9539_gpio to of_hal                      
[0001.474] of_register: registering i2c_bus_driver to of_hal                    
[0001.479] of_register: registering i2c_bus_driver to of_hal                    
[0001.485] of_register: registering i2c_bus_driver to of_hal                    
[0001.490] pmic framework initialized                                           
[0001.494] of_register: registering max77620_pmic to of_hal                     
[0001.499] regulator framework initialized                                      
[0001.503] of_register: registering tps65132_bl_driver to of_hal                
[0001.509] initializing target                                                  
[0001.515] gpio_driver_register: register 'tegra_gpio_driver' driver            
[0001.523] board ID = D78, board SKU = 3                                        
[0001.527] Skipping Z3!                                                         
[0001.532] fixed regulator driver initialized                                   
[0001.551] initializing OF layer                                                
[0001.554] NCK carveout not present                                             
[0001.557] Skipping dts_overrides                                               
[0001.561] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.578] I2C Bus Init done                                                    
[0001.580] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.591] I2C Bus Init done                                                    
[0001.593] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.604] I2C Bus Init done                                                    
[0001.606] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.617] I2C Bus Init done                                                    
[0001.619] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.630] I2C Bus Init done                                                    
[0001.632] of_children_init: Ops found for compatible string maxim,max77620     
[0001.643] max77620_init using irq 118                                          
[0001.648] register 'maxim,max77620' pmic                                       
[0001.652] gpio_driver_register: register 'max77620-gpio' driver                
[0001.658] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.669] I2C Bus Init done                                                    
[0001.672] NCK carveout not present                                             
[0001.682] Find /i2c@7000c000's alias i2c0                                      
[0001.686] get eeprom at 1-a0, size 256, type 0                                 
[0001.695] Find /i2c@7000c500's alias i2c2                                      
[0001.699] get eeprom at 3-a0, size 256, type 0                                 
[0001.703] get eeprom at 3-ae, size 256, type 0                                 
[0001.708] pm_ids_update: Updating 1,a0, size 256, type 0                       
[0001.713] I2C slave not started                                                
[0001.716] I2C write failed                                                     
[0001.719] Writing offset failed                                                
[0001.722] eeprom_init: EEPROM read failed                                      
[0001.726] pm_ids_update: eeprom init failed                                    
[0001.730] pm_ids_update: Updating 3,a0, size 256, type 0                       
[0001.760] pm_ids_update: The pm board id is 3448-0003-400                      
[0001.767] Adding plugin-manager/ids/3448-0003-400=/i2c@7000c500:module@0x50    
[0001.775] pm_ids_update: pm id update successful                               
[0001.779] pm_ids_update: Updating 3,ae, size 256, type 0                       
[0001.809] pm_ids_update: The pm board id is 3542-0000-201                      
[0001.816] Adding plugin-manager/ids/3542-0000-201=/i2c@7000c500:module@0x57    
[0001.824] pm_ids_update: pm id update successful                               
[0001.854] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)                
[0001.860] shim_eeprom_update_mac:267: Failed to update 0 MAC address in DTB    
[0001.868] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)                
[0001.874] shim_eeprom_update_mac:267: Failed to update 1 MAC address in DTB    
[0001.882] updating /chosen/nvidia,ethernet-mac node 48:b0:2d:2e:1f:f3          
[0001.888] Plugin Manager: Parse ODM data 0x000a4000                            
[0001.900] shim_cmdline_install: /chosen/bootargs: earlycon=uart8250,mmio32,0x7 
[0001.915] Find /i2c@7000c000's alias i2c0                                      
[0001.919] get eeprom at 1-a0, size 256, type 0                                 
[0001.928] Find /i2c@7000c500's alias i2c2                                      
[0001.932] get eeprom at 3-a0, size 256, type 0                                 
[0001.936] get eeprom at 3-ae, size 256, type 0                                 
[0001.941] pm_ids_update: Updating 1,a0, size 256, type 0                       
[0001.946] I2C slave not started                                                
[0001.949] I2C write failed                                                     
[0001.951] Writing offset failed                                                
[0001.954] eeprom_init: EEPROM read failed                                      
[0001.958] pm_ids_update: eeprom init failed                                    
[0001.963] pm_ids_update: Updating 3,a0, size 256, type 0                       
[0001.993] pm_ids_update: The pm board id is 3448-0003-400                      
[0001.999] Adding plugin-manager/ids/3448-0003-400=/i2c@7000c500:module@0x50    
[0002.006] pm_ids_update: pm id update successful                               
[0002.010] pm_ids_update: Updating 3,ae, size 256, type 0                       
[0002.041] pm_ids_update: The pm board id is 3542-0000-201                      
[0002.047] Adding plugin-manager/ids/3542-0000-201=/i2c@7000c500:module@0x57    
[0002.054] pm_ids_update: pm id update successful                               
[0002.084] Add serial number:1424920086108 as DT property                       
[0002.092] Applying platform configs                                            
[0002.098] platform-init is not present. Skipping                               
[0002.103] calling apps_init()                                                  
[0002.108] Couldn't find GPT header                                             
[0002.113] Proceeding to Cold Boot                                              
[0002.116] starting app android_boot_app                                        
[0002.120] Device state: unlocked                                               
[0002.123] display console init                                                 
[0002.131] could not find regulator                                             
[0002.155] hdmi cable not connected                                             
[0002.158] is_hdmi_needed: HDMI not connected, returning false                  
[0002.170] DT entry for leds-pwm not found                                      
                                                                                
[0002.174] sor0 is not supported                                                
[0002.177] display_console_init: no valid display out_type                      
[0002.185] subnode volume_up is not found !                                     
[0002.189] subnode back is not found !                                          
[0002.192] subnode volume_down is not found !                                   
[0002.196] subnode menu is not found !                                          
[0002.200] Gpio keyboard init success                                           
[0002.280] found decompressor handler: lz4-legacy                               
[0002.295] decompressing blob (type 1)...                                       
[0002.360] display_resolution: No display init                                  
[0002.364] Failed to retrieve display resolution                                
[0002.369] Could not load/initialize BMP blob...ignoring                        
[0002.374] -------> se_aes_verify_sbk_clear: 747                                
[0002.378] se_aes_verify_sbk_clear: Error                                       
[0002.382] SE operation failed                                                  
[0002.385] bl_battery_charging: connected to external power supply              
[0002.394] display_console_ioctl: No display init                               
[0002.399] switch_backlight failed                                              
[0002.405] device_query_partition_size: failed to open partition spiflash0:MSC !
[0002.412] MSC Partition not found                                              
[0002.419] device_query_partition_size: failed to open partition spiflash0:USP !
[0002.426] USP partition read failed!                                           
[0002.429] blob_init: blob-partition USP header read failed                     
[0002.435] android_boot Unable to update recovery partition                     
[0002.440] kfs_getpartname: name = LNX                                          
[0002.444] Loading kernel from LNX                                              
[0002.453] Found 19 BFS partitions in "spiflash0"                               
[0002.778] load kernel from storage                                             
[0002.783] decompressor handler not found                                       
[0003.052] Successfully loaded kernel and ramdisk images                        
[0003.057] board ID = D78, board SKU = 3                                        
[0003.062] sdmmc node status = okay                                             
[0003.065] sdcard instance = 0                                                  
[0003.068] sdmmc cd-inverted                                                    
[0003.071] sdcard gpio handle 0x5a                                              
[0003.074] sdcard gpio pin 0xc9                                                 
[0003.077] sdcard gpio flags 0x0                                                
[0003.080] vmmc-supply 0x9a                                                     
[0003.083] cd_gpio_pin = 201                                                    
[0003.085] pin_state = 0                                                        
[0003.088] Found sdcard                                                         
[0003.090] SD-card IS present ...                                               
[0003.093] load_and_boot_kernel: SD card detected OK                            
[0003.099] display_resolution: No display init                                  
[0003.103] Failed to retrieve display resolution                                
[0003.108] bmp blob is not loaded and initialized                               
[0003.112] Failed to display boot-logo                                          
[0003.116] NCK carveout not present                                             
[0003.119] Skipping dts_overrides                                               
[0003.122] NCK carveout not present                                             
[0003.132] Find /i2c@7000c000's alias i2c0                                      
[0003.136] get eeprom at 1-a0, size 256, type 0                                 
[0003.145] Find /i2c@7000c500's alias i2c2                                      
[0003.149] get eeprom at 3-a0, size 256, type 0                                 
[0003.153] get eeprom at 3-ae, size 256, type 0                                 
[0003.158] pm_ids_update: Updating 1,a0, size 256, type 0                       
[0003.163] I2C slave not started                                                
[0003.166] I2C write failed                                                     
[0003.168] Writing offset failed                                                
[0003.172] eeprom_init: EEPROM read failed                                      
[0003.175] pm_ids_update: eeprom init failed                                    
[0003.180] pm_ids_update: Updating 3,a0, size 256, type 0                       
[0003.210] pm_ids_update: The pm board id is 3448-0003-400                      
[0003.216] Adding plugin-manager/ids/3448-0003-400=/i2c@7000c500:module@0x50    
[0003.225] pm_ids_update: pm id update successful                               
[0003.229] pm_ids_update: Updating 3,ae, size 256, type 0                       
[0003.259] pm_ids_update: The pm board id is 3542-0000-201                      
[0003.266] Adding plugin-manager/ids/3542-0000-201=/i2c@7000c500:module@0x57    
[0003.274] pm_ids_update: pm id update successful                               
[0003.304] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)                
[0003.310] shim_eeprom_update_mac:267: Failed to update 0 MAC address in DTB    
[0003.318] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)                
[0003.323] shim_eeprom_update_mac:267: Failed to update 1 MAC address in DTB    
[0003.332] updating /chosen/nvidia,ethernet-mac node 48:b0:2d:2e:1f:f3          
[0003.338] Plugin Manager: Parse ODM data 0x000a4000                            
[0003.350] shim_cmdline_install: /chosen/bootargs: earlycon=uart8250,mmio32,0x7 
[0003.358] Add serial number:1424920086108 as DT property                       
[0003.366] Updated bpmp info to DTB                                             
[0003.371] Updated initrd info to DTB                                           
[0003.374] "proc-board" doesn't exist, creating                                 
[0003.380] Updated board info to DTB                                            
[0003.384] "pmu-board" doesn't exist, creating                                  
[0003.390] Updated board info to DTB                                            
[0003.393] "display-board" doesn't exist, creating                              
[0003.399] Updated board info to DTB                                            
[0003.402] "reset" doesn't exist, creating                                      
[0003.407] Updated reset info to DTB                                            
[0003.410] display_console_ioctl: No display init                               
[0003.415] display_console_ioctl: No display init                               
[0003.419] display_console_ioctl: No display init                               
[0003.424] Cmdline: tegraid=21.1.2.0.0 ddr_die=2048M@2048M section=256M memtype 
[0003.456] DTB cmdline: earlycon=uart8250,mmio32,0x70006000                     
[0003.462] boot image cmdline: root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4  
[0003.474] Updated bootarg info to DTB                                          
[0003.478] Adding uuid 000000016450f7090400000019050280 to DT                   
[0003.484] Adding eks info 0 to DT                                              
[0003.490] WARNING: Failed to pass NS DRAM ranges to TOS, err: -7               
[0003.495] Updated memory info to DTB                                           
[0003.503] set vdd_core voltage to 1125 mv                                      
[0003.507] setting 'vdd-core' regulator to 1125000 micro volts                  
[0003.513] Found secure-pmc; disable BPMP                                       
                                                                                
                                                                                
U-Boot 2020.04-g4335beb (Nov 22 2022 - 09:21:36 -0800)                          
                                                                                
SoC: tegra210                                                                   
Model: NVIDIA Jetson Nano 2GB Developer Kit                                     
Board: NVIDIA P3541-0000                                                        
DRAM:  2 GiB                                                                    
MMC:   sdhci@700b0000: 1, sdhci@700b0600: 0                                     
Loading Environment from SPI Flash... SF: Detected mx25u3235f with page size 25B
*** Warning - bad CRC, using default environment                                
                                                                                
In:    serial                                                                   
Out:   serial                                                                   
Err:   serial                                                                   
Net:   No ethernet found.                                                       
Hit any key to stop autoboot:  0                                                
switch to partitions #0, OK                                                     
mmc1 is current device                                                          
Scanning mmc 1:1...                                                             
Found /boot/extlinux/extlinux.conf                                              
Retrieving file: /boot/extlinux/extlinux.conf                                   
789 bytes read in 21 ms (36.1 KiB/s)                                            
1:      primary kernel                                                          
Retrieving file: /boot/initrd                                                   
7159624 bytes read in 340 ms (20.1 MiB/s)                                       
Retrieving file: /boot/Image                                                    
31957000 bytes read in 1410 ms (21.6 MiB/s)                                     
append: tegraid=21.1.2.0.0 ddr_die=2048M@2048M section=256M memtype=0 vpr_resiz 
## Flattened Device Tree blob at 83100000                                       
   Booting using the fdt blob at 0x83100000                                     
ERROR: reserving fdt memory region failed (addr=0 size=0)                       
ERROR: reserving fdt memory region failed (addr=0 size=0)                       
   Using Device Tree in place at 0000000083100000, end 000000008317af22         
copying carveout for /host1x@50000000/dc@54200000...                            
copying carveout for /host1x@50000000/dc@54240000...                            
                                                                                
Starting kernel ...                                                             
                                                                                
[    0.000000] Booting Linux on physical CPU 0x0                                
[    0.000000] Linux version 4.9.253-tegra (root@haoun-900X3L) (gcc version 7.33
[    0.000000] Boot CPU: AArch64 Processor [411fd071]                           
[    0.000000] OF: fdt:memory scan node memory@80000000, reg size 48,           
[    0.000000] OF: fdt: - 80000000 ,  3f800000                                  
[    0.000000] OF: fdt: - bfa00000 ,  3fe00000                                  
[    0.000000] OF: fdt: - ffa00000 ,  600000                                    
[    0.000000] earlycon: uart8250 at MMIO32 0x0000000070006000 (options '')     
[    0.000000] bootconsole [uart8250] enabled                                   
[    1.142021] imx219 6-0010: imx219_board_setup: error during i2c read probe ()
[    1.149704] imx219 6-0010: board setup failed                                
[    1.939992] cgroup: cgroup2: unknown option "nsdelegate"                     
[    3.114886] using random self ethernet address                               
[    3.120732] using random host ethernet address                               
[    3.616630] random: crng init done                                           
[    3.620035] random: 7 urandom warning(s) missed due to ratelimiting          
[    4.306588] using random self ethernet address                               
[    4.312880] using random host ethernet address                               
[    7.147180] Bridge firewalling registered     
Ubuntu 18.04.6 LTS ati-desktop ttyS0                                            
                                                                                
ati-desktop login: 

still wait on Hit any key to stop autoboot 2 Seconds.
If the 2-second delay can’t be eliminated, it would be better to introduce other methods to reduce boot time,
such as using Asynchronous driver probe or omitting unnecessary driver loading.

I changed it from CONFIG_BOOTDELAY=2 to CONFIG_BOOTDELAY=-2
in Linux_For_Tegra/sources/u-boot/configs/p3541-0000_defconfig and Linux_For_Tegra/sources/u-boot/config/auto.conf
also, I build it make clean → make p3541-0000_defconfig → make
after i copy u-boot.bin, u-boot.dtb, u-boot-dtb.bin to Linux_For_Tegra/bootloader/t210ref/p3541-0000 Folder

I also want to know how to use asynchronous driver probe.

I have no answer for you, but what you are basically asking for is to do either of these:

  • Introduce multitasking on a single core.
  • Introduce multiple cores with independent processes.

Note that during boot only CPU 0 is active until it reaches some point, usually under Linux. It is worth noting that during boot stages hardware is being configured, which implies a hardware interrupt (IRQ). This, in turn, requires actual wiring of the hardware to notify a CPU of the need to service that hardware. Much of the hardware has wiring only going to CPU 0. So a second core may not be useful to speed up much of the hardware setup.

If we add a scheduler to CPU 0 such that it can multitask, then you have to add time to install the scheduler, and overhead as it switches tasks. This is the illusion of running asynchronously, and won’t actually speed boot unless there is a process which blocks and in which other processes could benefit during that time (e.g., a network waiting for data). Mostly though you won’t find any benefit to multitasking when there is only one core.

There is a somewhat “in-between” solution which is not real multitasking, and which is very efficient. This is the concept of “microthreads”. These are very efficient, and are often used in particle engines, but has limitations. In theory this could be implemented in boot, but I doubt it would help since this is just multitasking on a single core under special circumstances.

Most multitasking requires saving context and security information before swapping out a process for a different process; then the information can later be swapped back in. Microthreads imply you know of certain break points in the code when there are matching copies of that same code, such that there is no context to save. If you were to swap from one place in that code to another, then swap back, there would not be any need to save context. So you literally use goto type statements (though usually in assembler), but to trigger this you would note a point where context switching is allowed (which is done via a sleep(0); this says to sleep, but to not spend any time…which seems like it does nothing, but the scheduling understands that if the code had been atomic, it is now ok to switch). What you get is the ability to run multiple data back and forth rather than completing one set of data and then switching to the next; the computation appears smooth and with almost no overhead. Thus, in something like a game where you are simulating a flame or a jet or rocket thrust, you could run 10000 tiny glowing particles which move in some defined way, and it wouldn’t load the system down. Unfortunately, this too is an illusion, and won’t help because (A) the code being switched among requires context, and (B) it is still one CPU core and only smooths out computation…it doesn’t run faster. It just runs so slightly slower that you don’t notice the overhead.

On the other hand, I have a recommendation for a future generation Jetson. This seems trivial, and it will probably not be taken seriously, but this is what I think is by far the biggest show-stopper to Jetson performance and I/O. This could change things dramatically: Use the equivalent of the programmable IO-APIC.

In some desktop architectures the hardware IRQ can route to any core, and the routing can be dynamically altered. One could have the disk controlled on one core, the ethernet on another core, part of the USB on a third core, the rest of USB on a fourth core. Or it could all go to the first core during boot, and then get distributed differently at a later time. There are many many hardware IRQs on Jetsons which all fight for the first CPU core. There is no possibility of another core sharing that load in those cases because there is no wiring. One can attempt to send a hardware IRQ process to a wrong core, and it might appear to show that it is moved, but the scheduler will then move this to CPU 0. It has to be a software IRQ, or a hardware IRQ touching all cores, before it can be moved independently and dynamically.

This is why Jetson IO suffers under load. If all cores could handle all hardware IRQs, and if the scheduling could change cores, then more cores would truly mean that much more processing power. Boot would still normally start on a single core, but regardless of whether this is boot or any other stage, a programmable IO-APIC would enable magnitudes better IO throughput. The part which really stands out though is the standard deviation of IO throughput, not just averages; IO could become very very solid.

I hope someone from NVIDIA can actually send this suggestion to the hardware developers for future silicon design. IMHO, the current platform depends too much on CPU 0, and variations under load would virtually disappear with a programmable IO-APIC. People interested in enabling more than one core during boot could also do this, although it is questionable how much benefit there would be since you’d have to essentially build a scheduler and multicore support into the boot software.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.