TK1 tegrarcm refusing to work

Hi all,

This is my first post here, and I’m new to the Tegra K1 platform though I’ve done a lot of other embedded Linux work on SA1110/PXA270/Marvell/OMAP devices so I feel like I ought to be familiar with the field!

I have just inherited a somewhat undocumented project from another engineer. It uses a Tegra K1 board (an Avionics Meerkat) on a custom motherboard. I’m trying to get the NVidia tools to talk to it. I have the recovery USB port connected up, and it does work. If I do ‘ums 0 mmc 0’ in u-boot, the board appears as a USB mass storage device, so the port is definitely working. When I bring the board up in recovery mode, the NVidia device appears on my PC as it should, so I’m confident that the hardware is OK.

However, trying to use tegrarcm doesn’t work at all. Here’s what I get:

sudo tegrarcm --soc=124 --bct=foo.bct readbct

results in successful download of miniloader but then:

reading BCT from system, writing to foo.bct..../tegrarcm: error reading bct: Resource temporarily unavailable

I’ve tried nvflash, too, and that works but only once, then I have to reboot the Tegra. It will then work again. I have successfully downloaded bootloaders and run them using this method.

My PC is an actual physical machine, not a VM, and it’s running Debian 8 (Jessie).

Can anyone explain what I’m doing wrong with tegrarcm?

Thank you
Chris Jones
Martin-Jones Technology Ltd
Cambridge, UK and Warsaw, Poland

hello cmjones01,

sorry for late reply, tegrarcm readbct does not works on TK1.

OK, thank you for the reply. So I guess I have to use nvflash, is that right?

Chris

hi Chris,

yes, please use nvflash for TK1.
besides reading BCT, what’s the specific function you would like tegrarcm to achieve?
thanks

I’m dealing with a TK1 system in which I’d like to update the boot loader, but I’m terrified of overwriting the BCT and existing bootloader with something that doesn’t work and bricking the board. There’s no JTAG connection provided on this board. Therefore I thought I’d read the existing boot loader and BCT first so I have a back up of them.

At the moment I’m just working with the old boot loader, but would like to be able to update it with confidence!

Chris

So long as you can use recovery mode on your board know that before you do anything risky you can clone. See:
http://elinux.org/Jetson/Cloning

A clone can copy a section of eMMC, most people would only clone the root file system (“APP” partition). You can also clone the partition table (which can be viewed since it is human readable text). If you want you can even clone the entire image, which is basically all partitions in a single binary blob. I’d recommend cloning the root partition (about 14GB which can be loopback mounted and inspected/edited), and if you want, even the entire image (you could actually use dd to extract individual partitions from a complete image).