summaryrefslogtreecommitdiff
path: root/doc/usage/cmd/ebtupdate.rst
blob: d90474ccec3d8a4d30dfe7c97ed227f36fe417b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
.. 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).