Introduction ============ This program is used to send code to a Tegra device in recovery mode. It does not supported locked devices with an encrypted boot key, only open devices such as the ventana, cardhu, or dalmore reference boards. It is not capable of flashing firmware to a device, but can be used to download firmware that is then capable of flashing. For example in ChromeOS tegrarcm is used to download a special build of u-boot to the target Tegra device with a payload that it then flashes to the boot device. Platforms supported: -Tegra20 -Tegra30 -Tegra114 Usage ===== - Connect a USB cable from your development system to your Tegra device. You will either need a USB A to A cable or A to micro B depending on the target board. - Find the appropriate BCT file for your board. For reference boards, BCT files can be found in the L4T distribution from NVIDIA. - Build some firmware for your device (such as u-boot) - Run tegrarcm to download the firmware Example to download u-boot firmware to a Tegra20 seaboard: $ sudo tegrarcm --bct seaboard.bct --bootloader u-boot.bin --loadaddr 0x108000 bct file: seaboard.bct booloader file: u-boot.bin load addr 0x108000 entry addr 0x108000 device id: 0x7820 uid: 0x33c20c0413fb217 RCM version: 2.1 downloading miniloader to target... miniloader downloaded successfully Chip UID: 0x33c20c0413fb217 Chip ID: 0x20 Chip ID Major Version: 0x1 Chip ID Minor Version: 0x4 Chip SKU: 0x18 (t25) Boot ROM Version: 0x1 Boot Device: 0x3 (SPI) Operating Mode: 0x3 (developer mode) Device Config Strap: 0x0 Device Config Fuse: 0x0 SDRAM Config Strap: 0x0 sending file: seaboard.bct - 4080/4080 bytes sent seaboard.bct sent successfully sending file: u-boot.bin - 268314/268314 bytes sent u-boot.bin sent successfully Submitting Changes ================== To submit patches to this project, please use the following commands: * git format-patch --subject-prefix="tegrarcm PATCH" Creates a patch file from your git commit. * git send-email --to linux-tegra@vger.kernel.org *.patch Sends the patch by email to the Tegra mailing list. Even though the primary upstream repository for this project is hosted on github, contributions aren't accepted via github pull requests. Github pull requests would bypass public code review on the project mailing list. Patches should be signed off (include a signed-off-by line) to indicate your acceptance of the code's license (see COPYING and the license header in each file). See http://developercertificate.org/ for details of what signed-off-by implies. Changelog ========= See git logs for complete list. V1.8 - Support for production devices with PKC - Support for --gen-signed-msgs, --signed-msgs, and --download-signed-msgs options. - Support for --usb-timeout option. - Various man page and code cleanups. - Compilation fix when cryptopp isn't installed system-wide. V1.7 - Documented patch submission process in this file - Added better USB debugging message - Require a specific minimum version of libusb - Added --usb-port-path cmdline option V1.6 - Added support for ODM secure mode V1.5 - Added support for RCM protocol version 40 - Added Tegra124 support - Added support for readbct command - Added support for passing in miniloader from a file V1.4 - Added --version command - Updated T114 miniloader to fix SPI boot problem - Added --help command to man page V1.3 - Added some better error checking on return values - Fixed configure problem related to libcrypto++ and libpthread interaction V1.2 - Added support for T114 - Added man page - Removed autogenerated files from source code control V1.1 - Added this README file and automake fixes from Mike Frysinger V1.0 - Initial release