TK1 Not booting

I have gotten 2 tk1 boards. I have a problem with them booting. I have connected them to monitor and keyboard and mouse, and have a serial connection to monitor the boot process.

When I press the power button on, basically not much happens the there are a few lines that appear on the serial terminal, it gets to showing there is 2gb of memory, and then nothing afterwards, and no indication on monitor or usb (i.e. mouse lights don’t light up). Same happens when I remove everything except power and serial cable.

After I perform a reflash it will boot normally, but I suspect that is a soft reset, anything harder, push reset button, unplug power, yields the same issue, stuck in uboot. Note entering recovery mode works each and every time.

I have found that if I push the reset button, bunch of times, over and over, and watch the lights on the serial cable indicating that boot process is starting or not, I can get it to boot, but sometimes I have push 20 or more times. Overall this is unreliable as you have to monitor the serial cable lights to determine when boot is starting, or wait longer if there is no serial cable to see if anything shows up on the external monitor.

Here is the serial console output

U-Boot SPL 2014.10-rc2-00002-g105d2f3 (Jun 25 2015 - 15:19:50)

U-Boot 2014.10-rc2-00002-g105d2f3 (Jun 25 2015 - 15:19:50)

TEGRA124
Board: NVIDIA Jetson TK1
I2C: ready
DRAM: 2 GiB

and nothing else appears, ie the rest of the boot sequence. Note when it does boot I get the

*** Warning - bad CRC, using default environment

At first i thought it was bad board, but then I got another one last week, that is having same issues and bought serial cable to help diagnose it further.

Further more I have tried the 2 different uboot images

bootloader/u-boot.bin
bootloader/ardbeg/u-boot.bin

Both seem to exhibit identical behavior.

A few questions (and some information) to narrow it down…

What L4T version is used on these? How did they work prior to flash?

Info: bootloader/u-boot.bin is generated during flash, and is based upon padding bootloader/ardbeg/u-boot.bin. This is normal and expected.

How do you shut the Jetsons down? They are full computer systems, and unless there is no other choice, directly powering them off tempts the file system to corrupt.

Info: Serial port should work, this sounds like a real problem. Often a monitor won’t work because of cable or connector issues. What is the exact cable setup, including types and adapters? If there is a 15-pin VGA component anywhere, this guarantees failure of a monitor.

Info: USB draws power from whatever HUB is used…in the case of direct connect to a Jetson, then Jetson’s root HUB does this. In theory it shouldn’t be necessary for a keyboard and mouse, but often power issues for USB cause mysterious USB failures, and a powered USB HUB fixes those mysterious failures. How is your USB wired, e.g., including HUBs, and if they are powered or not?

Hi

It might be an issue with the instruction cache. Sometimes U-boot can lock up due to a problem with the icache.

In u-boot/include/configs/jetson-tk1.h

add the following :

/* Disable instruction cache for boot up, workaround for lockup */
#define CONFIG_SYS_ICACHE_OFF

If u-boot is a problem on two units, I suspect the flash itself is using a bad u-boot image. Are you using just the L4T flash without JetPack? Or with JetPack? I’d re-download and install, at least the bootloader/ directory of the L4T flash setup. Be sure to note any options used during install or flash.

What L4T version is used on these? How did they work prior to flash?

They didn’t work prior to flash, as when I connect everything and powered on there was no indication of life, no monitor output, optical mouse led is off.

I have flashed them with 21.4.0

Info: bootloader/u-boot.bin is generated during flash, and is based upon padding bootloader/ardbeg/u-boot.bin. This is normal and expected.

I suspect that as that is what is shown in the log when using the jetpack launcher, 12 bytes are padded.

How do you shut the Jetsons down? They are full computer systems, and unless there is no other choice, directly powering them off tempts the file system to corrupt.

Right, but it should still move beyond uboot showing the 2GiB, i.e show the presence of the emmc and sd card info.

I have used gui shutdown tool and command line shutdown. Then rebooting by pressing power and nothing happens, stuck in uboot.

Info: Serial port should work, this sounds like a real problem. Often a monitor won't work because of cable or connector issues. What is the exact cable setup, including types and adapters? If there is a 15-pin VGA component anywhere, this guarantees failure of a monitor.

I have tried with no cables except serial to rule out cables, ethernet, usb, hdmi, and anything else besides power and serial cable. Same symptoms.

Info: USB draws power from whatever HUB is used...in the case of direct connect to a Jetson, then Jetson's root HUB does this. In theory it shouldn't be necessary for a keyboard and mouse, but often power issues for USB cause mysterious USB failures, and a powered USB HUB fixes those mysterious failures. How is your USB wired, e.g., including HUBs, and if they are powered or not?

I know about powered usb hubs and incompatibilities they can provide, but with no usb devices or hubs, it should boot.

If u-boot is a problem on two units, I suspect the flash itself is using a bad u-boot image. Are you using just the L4T flash without JetPack? Or with JetPack? I'd re-download and install, at least the bootloader/ directory of the L4T flash setup. Be sure to note any options used during install or flash.

I have deleted the install and download directories for jetpack, and have them redownloaded to ensure that nothing is corrupt.

It might be an issue with the instruction cache. Sometimes U-boot can lock up due to a problem with the icache.

In u-boot/include/configs/jetson-tk1.h

add the following :

/* Disable instruction cache for boot up, workaround for lockup */
#define CONFIG_SYS_ICACHE_OFF

This sounds interesting, now I have to figure out how to build this.

Download the instructions :
[url]https://developer.nvidia.com/embedded/linux-tegra[/url]
You want the “Documentation” link.

un-tar the file and load “index.html” in a web browser
Goto the section “U-Boot Guide”

Everything should be explained in there.

BTW - You said it did not work out of the box - this is not a good sign. They should work out of the box.

I agree with @GE_Chen on the “not a good sign” for not working out of the box. Some additional information may help you though on this specific part of the topic.

The monitors will not work even on a working system if there is an issue with the EDID channel on the monitor cable. This will be 100% the case if a 15-pin VGA is used anywhere at all. Sometimes the cable itself causes this to fail, possibly because of the version of a standard somewhere being incorrect. There are additional cases where the specific monitor is working but the EDID extensions were parsed wrong (which would need an update).

The serial console should always work, and have no issue even if the monitor/mouse/keyboard fail. The boot loader itself should trigger output to a serial console even before the Linux kernel takes over.

A TK1 (but not TX1) which has been unplugged and unpowered for significant time would normally just power up when the power adapter is plugged in. You would still need to hit the power button if it doesn’t start. If you have a volt meter handy you can check the power brick and see if it is the expected 12V (TX1 is 19V…very dangerous to plug a TX1 adapter into a TK1). The TK1 itself has no LED to indicate “power connected but not booted”…boot is required for the LED to show (same with the fan).

I would not expect a mouse LED to run unless the system has power, so this is a good indicator that the system is truly unpowered. There is still an issue though with how the HUB deals with power…try plugging the optical mouse directly into the USB connector with nothing else, and it makes a very good indicator of power.

Followed these instructions

In u-boot/include/configs/jetson-tk1.h

add the following :

/* Disable instruction cache for boot up, workaround for lockup */
#define CONFIG_SYS_ICACHE_OFF

And rebuilt u-boot-dtb-tegra.bin and copied that over as u-boot.bin and reflashed the board.

I happy to report that this issue is solved, as now after shutdown, I can press the power button and have the system come up immediately.

Reflashed the other board and it too worked.

I don’t recall exactly but now when shutdown the power led even goes off. It seems before I could only get it turn off was to unplug and wait 10 or more minutes before reconnecting power cable, as simply unplugging and immediately replugging power didn’t turn off the power led.

I am using a Jetson TK1. When I put the power cable into the board, the green LED and fan always come on. Sometimes the TK1 boots. Other times nothing further happens until I press the Reset button. Why is there differential behavior?

There is a “supercap” which may or may not require actually pushing the power button after connecting power (versus a more elaborate button battery and active power sensing). Since a JTK1 is really a developer board some of the more common features of a desktop are not included…yet it is really a full power computer, so some of the features of a truly embedded solution are exceeded. For some people this is bad, for others it is good, and for most it won’t matter. There is a front panel header which could be used with power sensing, or some of the people have modified the JTK1 supercap in order to always boot upon plugging in the cable.

I counter the same question now, and I can flash the L4T21.4 every time, but when I reboot the board, it doesn’t boot up, and serial no output, Ethernet led on and power led on. I try to create the uboot.bin but failed many times and don’t know what to do,can someone provide the uboot.bin or give a instruction?

Can you post the tail of a log of the flash? Basically where it says it succeeds, along with the flash command.

FYI, you shouldn’t be trying to create a uboot.bin, the defaults should do this correctly. If you are just flashing here’s the recommended command line:

sudo flash.sh 14580MiB jetson-tk1 mmcblk0p1

You can log something like that via:

sudo flash.sh 14580MiB jetson-tk1 mmcblk0p1 2>&1 | tee log_flash.txt

FYI, no serial console output would imply either a very early failure in boot or serial console settings being incorrect (should be 115200 8N1).

Hi Guys,

We are facing with very strange problem on bootloader. We created custom board based on TK1 CD575M - A1 with SDIN8DE4 - 16G Taiwan made one and SKYHYNIX CFR-PBA 4 rams. We did full SHMOO test successfully and created necessary files. Successfully flashed IMG files in to the system. However, system stops on very early stage of the booting.

It is very strange because when we flash android os on this exact same system it works. Last month, we made 10pcs of exact same sample boards which were working fine. When we flash L4T in to this system, it shows following error. Please help us to sort out this issue guys. Thanks!

Here I attached my log and i have no clue with this problem at all.

U-Boot SPL 2014.10-rc2-g3127911 (Jun 07 2016 - 21:00:01)                        
                                                                                
                                                                                
U-Boot 2014.10-rc2-g3127911 (Jun 07 2016 - 21:00:01)                            
                                                                                
TEGRA124                                                                        
Board: NVIDIA Jetson TK1                                                        
I2C:   ready                                                                    
DRAM:  2 GiB                                                                    
MMC:   Tegra SD/MMC: 0, Tegra SD/MMC: 1                                         
*** Warning - bad CRC, using default environment                                
                                                                                
tegra-pcie: PCI regions:                                                        
tegra-pcie:   I/O: 0x12000000-0x12010000                                        
tegra-pcie:   non-prefetchable memory: 0x13000000-0x20000000                    
tegra-pcie:   prefetchable memory: 0x20000000-0x40000000                        
tegra-pcie: 2x1, 1x1 configuration                                              
ERROR: tegra-pcie: failed to power on PHY: -110                                 
                                                   
at /dvs/git/dirty/git-master_linux/3rdparty/u-boot/drivers/pci/pci_tegra.c:740/)
ERROR: tegra-pcie: failed to enable controller                                  
at /dvs/git/dirty/git-master_linux/3rdparty/u-boot/drivers/pci/pci_tegra.c:1055)
In:    serial                                                                   
Out:   serial                                                                   
Err:   serial                                                                   
Net:   No ethernet found.                                                       
Hit any key to stop autoboot:  0                                                
MMC: no card present                                                            
switch to partitions #0, OK                                                     
mmc0(part 0) is current device                                                  
Scanning mmc 0...                                                               
GPT: last_usable_lba incorrect: 1D58FFF > 1D52000                               
get_partition_info_efi: *** ERROR: Invalid GPT ***                              
GPT: my_lba incorrect: 1D59FFF != 1D51FFF                                       
get_partition_info_efi: *** ERROR: Invalid Backup GPT ***                       
** Invalid partition 1 **                                                       
GPT: last_usable_lba incorrect: 1D58FFF > 1D52000                               
get_partition_info_efi: *** ERROR: Invalid GPT ***                              
GPT: my_lba incorrect: 1D59FFF != 1D51FFF                                       
get_partition_info_efi: *** ERROR: Invalid Backup GPT ***                       
** Invalid partition 1 **                                                       
GPT: last_usable_lba incorrect: 1D58FFF > 1D52000                               
get_partition_info_efi: *** ERROR: Invalid GPT ***                              
GPT: my_lba incorrect: 1D59FFF != 1D51FFF                                       
get_partition_info_efi: *** ERROR: Invalid Backup GPT ***                       
** Invalid partition 1 **                                                       
GPT: last_usable_lba incorrect: 1D58FFF > 1D52000                               
get_partition_info_efi: *** ERROR: Invalid GPT ***                              
GPT: my_lba incorrect: 1D59FFF != 1D51FFF                                       
get_partition_info_efi: *** ERROR: Invalid Backup GPT ***                       
** Invalid partition 1 **                                                       
GPT: last_usable_lba incorrect: 1D58FFF > 1D52000                               
get_partition_info_efi: *** ERROR: Invalid GPT ***                              
GPT: my_lba incorrect: 1D59FFF != 1D51FFF                                       
get_partition_info_efi: *** ERROR: Invalid Backup GPT ***                       
** Invalid partition 1 **                                                       
GPT: last_usable_lba incorrect: 1D58FFF > 1D52000                               
get_partition_info_efi: *** ERROR: Invalid GPT ***                              
GPT: my_lba incorrect: 1D59FFF != 1D51FFF                                       
get_partition_info_efi: *** ERROR: Invalid Backup GPT ***                       
** Invalid partition 1 **                                                       
(Re)start USB...                                                                
USB0:   USB EHCI 1.10                                                           
scanning bus 0 for devices... 1 USB Device(s) found                             
USB1:   USB EHCI 1.10                                                           
scanning bus 1 for devices... 1 USB Device(s) found                             
       scanning usb for storage devices... 0 Storage Device(s) found            
       scanning usb for ethernet devices... 0 Ethernet Device(s) found          
                                                                                
USB device 0: unknown device                                                    
No ethernet found.                                                              
missing environment variable: pxeuuid                                           
missing environment variable: bootfile                                          
Retrieving file: pxelinux.cfg/00000000                                          
No ethernet found.                                                              
missing environment variable: bootfile                                          
Retrieving file: pxelinux.cfg/0000000                                           
No ethernet found.                                                              
missing environment variable: bootfile                                          
Retrieving file: pxelinux.cfg/000000                                            
No ethernet found.                                                              
missing environment variable: bootfile                                          
Retrieving file: pxelinux.cfg/00000                                             
No ethernet found.                                                              
missing environment variable: bootfile                                          
Retrieving file: pxelinux.cfg/0000                                              
No ethernet found.                                                              
missing environment variable: bootfile                                          
Retrieving file: pxelinux.cfg/000                                               
No ethernet found.                                                              
missing environment variable: bootfile                                          
Retrieving file: pxelinux.cfg/00                                                
No ethernet found.                                                              
missing environment variable: bootfile                                          
Retrieving file: pxelinux.cfg/0                                                 
No ethernet found.                                                              
missing environment variable: bootfile                                          
Retrieving file: pxelinux.cfg/default-arm-tegra124                              
No ethernet found.                                                              
missing..

I had the same exact issue and got it resolved by disable SYS_ICACHE in uboot:

u-boot/include/configs/jetson-tk1.h`#define CONFIG_SYS_ICACHE_OFF

I need to understand what it actually got fixed( hardware/software). I have two jetson tk1 boards, only 1 board seemed to give this issue. The other board was fine.

Can someone throw more light on it?

Hi Kartik,

I am having the same problem (no HDMI or Ethernet) after flashing with R21.6.However, I wanna try your method but cannot find the file ‘jetson-tk1.h’ on such directory. Could you please tell where did you find the file?