| .. 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). |