.. SPDX-License-Identifier: GPL-2.0+:

ebtupdate command
=============

Synopsis
--------

::

    ebtupdate [<bct> [<ebt>] [<size>]]

Description
-----------

The "ebtupdate" command is used to self-update bootloader on Tegra 2 and Tegra 3
production devices which were processed using re-cryption.

The "ebtupdate" performs encryption of new bootloader and decryption, patching
and re-encryption of BCT "in situ". After BCT and bootloader can be written in
their respective places.

bct
    address of BCT block pre-loaded into RAM.

ebt
    address of the bootloader pre-loaded into RAM.

size
    size of the pre-loaded bootloader.

Example
-------

This is the boot log of a LG Optimus Vu:

::

    => mmc dev 0 1
    switch to partitions #1, OK
    mmc0(part 1) is current device
    => mmc read $kernel_addr_r 0 $boot_block_size
    MMC read: dev # 0, block # 0, count 4096 ... 4096 blocks read: OK
    => load mmc 0:1 $ramdisk_addr_r $bootloader_file
    684783 bytes read in 44 ms (14.8 MiB/s)
    => size mmc 0:1 $bootloader_file
    => ebtupdate $kernel_addr_r $ramdisk_addr_r $filesize
    => mmc dev 0 1
    switch to partitions #1, OK
    mmc0(part 1) is current device
    => mmc write $kernel_addr_r 0 $boot_block_size
    MMC write: dev # 0, block # 0, count 4096 ... 4096 blocks written: OK
    => mmc dev 0 2
    switch to partitions #2, OK
    mmc0(part 2) is current device
    => mmc write $ramdisk_addr_r 0 $boot_block_size
    MMC write: dev # 0, block # 0, count 4096 ... 4096 blocks written: OK

Configuration
-------------

The ebtupdate command is only available if CONFIG_CMD_EBTUPDATE=y and
only on Tegra 2 and Tegra 3 configurations.

Return value
------------

The return value $? is set to 0 (true) if everything went successfully. If an
error occurs, the return value $? is set to 1 (false).
