forked from OERV-BSP/u-boot
Switch boards that use CFG_PRAM to TEGRA_PRAM. Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
113 lines
3.4 KiB
ReStructuredText
113 lines
3.4 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0+
|
|
|
|
U-Boot for the Xiaomi Mi Pad tablet
|
|
===================================
|
|
|
|
``DISCLAMER!`` Moving your Xiaomi Mi Pad to use U-Boot assumes replacement
|
|
of the vendor bootloader. Vendor Android firmwares will no longer be able
|
|
to run on the device. This replacement IS reversible.
|
|
|
|
Quick Start
|
|
-----------
|
|
|
|
- Build U-Boot
|
|
- Boot U-Boot
|
|
- Process and flash U-Boot
|
|
- Boot Linux
|
|
- Self Upgrading
|
|
- Chainload configuration
|
|
|
|
Build U-Boot
|
|
------------
|
|
|
|
.. code-block:: bash
|
|
|
|
$ export CROSS_COMPILE=arm-none-eabi-
|
|
$ make mocha_defconfig
|
|
$ make
|
|
|
|
After the build succeeds, you will obtain the final ``u-boot-dtb-tegra.bin``
|
|
image, ready for booting or further processing.
|
|
|
|
Boot U-Boot
|
|
-----------
|
|
Existing tegrarcm loader can be used to pre-load U-Boot you have build
|
|
into RAM and basically perform a tethered cold-boot.
|
|
|
|
.. code-block:: bash
|
|
|
|
$ tegrarcm --bct mocha.bct --bootloader u-boot-dtb-tegra.bin --loadaddr 0x80108000
|
|
|
|
U-Boot will try to load Linux kernel and if fails, it will turn the
|
|
tablet off. While pre-loading U-Boot, hold the ``volume down`` button
|
|
which will trigger the bootmenu.
|
|
|
|
Process and flash U-Boot
|
|
------------------------
|
|
|
|
``DISCLAMER!`` All questions related to the re-crypt work should be asked
|
|
in re-crypt repo issues. NOT HERE!
|
|
|
|
re-crypt is a tool that processes the ``u-boot-dtb-tegra.bin`` binary into
|
|
form usable by device. This process is required only on the first
|
|
installation or to recover the device in case of a failed update.
|
|
|
|
.. code-block:: bash
|
|
|
|
$ git clone https://gitlab.com/grate-driver/re-crypt.git
|
|
$ cd re-crypt # place your u-boot-dtb-tegra.bin here
|
|
$ ./re-crypt.py --dev mocha
|
|
|
|
The script will produce ``bct.img`` and ``ebt.img`` ready to flash.
|
|
|
|
Permanent installation can be performed by pre-loading just built U-Boot
|
|
into RAM via tegrarcm. While pre-loading U-Boot, hold the ``volume down``
|
|
button which will trigger the bootmenu. There, select ``fastboot`` using
|
|
the volume and power buttons.
|
|
|
|
After, on host PC, do:
|
|
|
|
.. code-block:: bash
|
|
|
|
$ fastboot flash 0.1 bct.img
|
|
$ fastboot flash 0.2 ebt.img
|
|
$ fastboot reboot
|
|
|
|
Device will reboot.
|
|
|
|
Boot Linux
|
|
----------
|
|
|
|
To boot Linux, U-Boot will look for an ``extlinux.conf`` on MicroSD and then on
|
|
eMMC. Additionally, if the ``volume down`` button is pressed while booting, the
|
|
device will enter bootmenu. Bootmenu contains entries to mount MicroSD and eMMC
|
|
as mass storage, fastboot, reboot, reboot RCM, poweroff, enter U-Boot console
|
|
and update bootloader (check the next chapter).
|
|
|
|
Flashing ``bct.img`` and ``ebt.img`` eliminates vendor restrictions on eMMC and
|
|
allows the user to use/partition it in any way the user desires.
|
|
|
|
Self Upgrading
|
|
--------------
|
|
|
|
Place your ``u-boot-dtb-tegra.bin`` on the first partition of the MicroSD card
|
|
and insert it into the tablet. Enter bootmenu, choose update the bootloader
|
|
option with the Power button and U-Boot should update itself. Once the process
|
|
is completed, U-Boot will ask to press any button to reboot.
|
|
|
|
Chainload configuration
|
|
-----------------------
|
|
|
|
To build U-Boot without SPL suitable for chainloading adjust mocha_defconfig:
|
|
|
|
.. code-block::
|
|
|
|
CONFIG_TEXT_BASE=0x80A00000
|
|
CONFIG_SKIP_LOWLEVEL_INIT=y
|
|
# CONFIG_OF_BOARD_SETUP is not set
|
|
CONFIG_TEGRA_PRAM=y
|
|
|
|
After the build succeeds, you will obtain the final ``u-boot-dtb.bin``
|
|
file, ready for booting using vendor bootloader's fastboot or which can be
|
|
further processed into a flashable image.
|