mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-24 14:25:56 +00:00
Merge branch 'staging' of https://source.denx.de/u-boot/custodians/u-boot-tegra into next
Documentation updates for endeavoru, lg_x3, grouper and transformers, addition of MIPI calibration clock name for T114 (inline with T124+), conversion of TEGRA_SUPPORT_NON_SECURE into Kconfig and endeavoru stability improvements.
This commit is contained in:
commit
c2c598e87c
11 changed files with 434 additions and 209 deletions
7
README
7
README
|
@ -300,13 +300,6 @@ The following options need to be configured:
|
||||||
different from COUNTER_FREQUENCY, and can only be determined
|
different from COUNTER_FREQUENCY, and can only be determined
|
||||||
at run time.
|
at run time.
|
||||||
|
|
||||||
- Tegra SoC options:
|
|
||||||
CONFIG_TEGRA_SUPPORT_NON_SECURE
|
|
||||||
|
|
||||||
Support executing U-Boot in non-secure (NS) mode. Certain
|
|
||||||
impossible actions will be skipped if the CPU is in NS mode,
|
|
||||||
such as ARM architectural timer initialization.
|
|
||||||
|
|
||||||
- Linux Kernel Interface:
|
- Linux Kernel Interface:
|
||||||
CONFIG_OF_LIBFDT
|
CONFIG_OF_LIBFDT
|
||||||
|
|
||||||
|
|
|
@ -109,7 +109,7 @@ enum periph_id {
|
||||||
PERIPH_ID_UART3,
|
PERIPH_ID_UART3,
|
||||||
|
|
||||||
/* 56 */
|
/* 56 */
|
||||||
PERIPH_ID_RESERVED56,
|
PERIPH_ID_MIPI_CAL,
|
||||||
PERIPH_ID_EMC,
|
PERIPH_ID_EMC,
|
||||||
PERIPH_ID_USB2,
|
PERIPH_ID_USB2,
|
||||||
PERIPH_ID_USB3,
|
PERIPH_ID_USB3,
|
||||||
|
|
|
@ -25,9 +25,34 @@ struct mc_ctlr {
|
||||||
u32 mc_emem_adr_cfg; /* offset 0x54 */
|
u32 mc_emem_adr_cfg; /* offset 0x54 */
|
||||||
u32 mc_emem_adr_cfg_dev0; /* offset 0x58 */
|
u32 mc_emem_adr_cfg_dev0; /* offset 0x58 */
|
||||||
u32 mc_emem_adr_cfg_dev1; /* offset 0x5C */
|
u32 mc_emem_adr_cfg_dev1; /* offset 0x5C */
|
||||||
u32 reserved3[12]; /* offset 0x60 - 0x8C */
|
u32 reserved3[4]; /* offset 0x60 - 0x6C */
|
||||||
|
u32 mc_security_cfg0; /* offset 0x70 */
|
||||||
|
u32 mc_security_cfg1; /* offset 0x74 */
|
||||||
|
u32 reserved4[6]; /* offset 0x7C - 0x8C */
|
||||||
u32 mc_emem_arb_reserved[28]; /* offset 0x90 - 0xFC */
|
u32 mc_emem_arb_reserved[28]; /* offset 0x90 - 0xFC */
|
||||||
u32 reserved4[338]; /* offset 0x100 - 0x644 */
|
u32 reserved5[74]; /* offset 0x100 - 0x224 */
|
||||||
|
u32 mc_smmu_translation_enable_0; /* offset 0x228 */
|
||||||
|
u32 mc_smmu_translation_enable_1; /* offset 0x22C */
|
||||||
|
u32 mc_smmu_translation_enable_2; /* offset 0x230 */
|
||||||
|
u32 mc_smmu_translation_enable_3; /* offset 0x234 */
|
||||||
|
u32 mc_smmu_afi_asid; /* offset 0x238 */
|
||||||
|
u32 mc_smmu_avpc_asid; /* offset 0x23C */
|
||||||
|
u32 mc_smmu_dc_asid; /* offset 0x240 */
|
||||||
|
u32 mc_smmu_dcb_asid; /* offset 0x244 */
|
||||||
|
u32 reserved6[2]; /* offset 0x248 - 0x24C */
|
||||||
|
u32 mc_smmu_hc_asid; /* offset 0x250 */
|
||||||
|
u32 mc_smmu_hda_asid; /* offset 0x254 */
|
||||||
|
u32 mc_smmu_isp_asid; /* offset 0x258 */
|
||||||
|
u32 reserved7[2]; /* offset 0x25C - 0x260 */
|
||||||
|
u32 mc_smmu_mpe_asid; /* offset 0x264 */
|
||||||
|
u32 mc_smmu_nv_asid; /* offset 0x268 */
|
||||||
|
u32 mc_smmu_nv2_asid; /* offset 0x26C */
|
||||||
|
u32 mc_smmu_ppcs_asid; /* offset 0x270 */
|
||||||
|
u32 reserved8[1]; /* offset 0x274 */
|
||||||
|
u32 mc_smmu_sata_asid; /* offset 0x278 */
|
||||||
|
u32 mc_smmu_vde_asid; /* offset 0x27C */
|
||||||
|
u32 mc_smmu_vi_asid; /* offset 0x280 */
|
||||||
|
u32 reserved9[241]; /* offset 0x284 - 0x644 */
|
||||||
u32 mc_video_protect_bom; /* offset 0x648 */
|
u32 mc_video_protect_bom; /* offset 0x648 */
|
||||||
u32 mc_video_protect_size_mb; /* offset 0x64c */
|
u32 mc_video_protect_size_mb; /* offset 0x64c */
|
||||||
u32 mc_video_protect_reg_ctrl; /* offset 0x650 */
|
u32 mc_video_protect_reg_ctrl; /* offset 0x650 */
|
||||||
|
|
|
@ -176,6 +176,13 @@ config TEGRA_DISCONNECT_UDC_ON_BOOT
|
||||||
USB controller when U-Boot boots to avoid leaving a stale USB device
|
USB controller when U-Boot boots to avoid leaving a stale USB device
|
||||||
present.
|
present.
|
||||||
|
|
||||||
|
config TEGRA_SUPPORT_NON_SECURE
|
||||||
|
bool "Support executing U-Boot in non-secure (NS) mode"
|
||||||
|
depends on TEGRA114 || TEGRA124
|
||||||
|
help
|
||||||
|
Certain impossible actions will be skipped if the CPU is in NS mode,
|
||||||
|
such as ARM architectural timer initialization.
|
||||||
|
|
||||||
config CI_UDC_HAS_HOSTPC
|
config CI_UDC_HAS_HOSTPC
|
||||||
def_bool y
|
def_bool y
|
||||||
depends on CI_UDC && !TEGRA20
|
depends on CI_UDC && !TEGRA20
|
||||||
|
|
|
@ -77,9 +77,6 @@ bool spl_was_boot_source(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_TEGRA_SUPPORT_NON_SECURE)
|
#if defined(CONFIG_TEGRA_SUPPORT_NON_SECURE)
|
||||||
#if !defined(CONFIG_TEGRA124)
|
|
||||||
#error tegra_cpu_is_non_secure has only been validated on Tegra124
|
|
||||||
#endif
|
|
||||||
bool tegra_cpu_is_non_secure(void)
|
bool tegra_cpu_is_non_secure(void)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -299,7 +299,7 @@ static s8 periph_id_to_internal_id[PERIPH_ID_COUNT] = {
|
||||||
PERIPHC_UART3,
|
PERIPHC_UART3,
|
||||||
|
|
||||||
/* 56 */
|
/* 56 */
|
||||||
NONE(RESERVED56),
|
NONE(MIPI_CAL),
|
||||||
PERIPHC_EMC,
|
PERIPHC_EMC,
|
||||||
NONE(USB2),
|
NONE(USB2),
|
||||||
NONE(USB3),
|
NONE(USB3),
|
||||||
|
@ -635,7 +635,6 @@ enum periph_id clk_id_to_periph_id(int clk_id)
|
||||||
case PERIPH_ID_RESERVED35:
|
case PERIPH_ID_RESERVED35:
|
||||||
case PERIPH_ID_RESERVED43:
|
case PERIPH_ID_RESERVED43:
|
||||||
case PERIPH_ID_RESERVED45:
|
case PERIPH_ID_RESERVED45:
|
||||||
case PERIPH_ID_RESERVED56:
|
|
||||||
case PERIPH_ID_RESERVED76:
|
case PERIPH_ID_RESERVED76:
|
||||||
case PERIPH_ID_RESERVED77:
|
case PERIPH_ID_RESERVED77:
|
||||||
case PERIPH_ID_RESERVED78:
|
case PERIPH_ID_RESERVED78:
|
||||||
|
|
|
@ -9,7 +9,12 @@
|
||||||
* Svyatoslav Ryhel <clamor95@gmail.com>
|
* Svyatoslav Ryhel <clamor95@gmail.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <asm/io.h>
|
||||||
|
#include <asm/gpio.h>
|
||||||
|
#include <asm/arch/pinmux.h>
|
||||||
#include <asm/arch/tegra.h>
|
#include <asm/arch/tegra.h>
|
||||||
|
#include <asm/arch-tegra/board.h>
|
||||||
|
#include <asm/arch-tegra/pmc.h>
|
||||||
#include <asm/arch-tegra/tegra_i2c.h>
|
#include <asm/arch-tegra/tegra_i2c.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
|
|
||||||
|
@ -30,6 +35,8 @@
|
||||||
#define TPS80032_SMPS1_CFG_STATE_DATA (0x0100 | TPS80032_SMPS1_CFG_STATE_REG)
|
#define TPS80032_SMPS1_CFG_STATE_DATA (0x0100 | TPS80032_SMPS1_CFG_STATE_REG)
|
||||||
#define TPS80032_SMPS2_CFG_STATE_DATA (0x0100 | TPS80032_SMPS2_CFG_STATE_REG)
|
#define TPS80032_SMPS2_CFG_STATE_DATA (0x0100 | TPS80032_SMPS2_CFG_STATE_REG)
|
||||||
|
|
||||||
|
#define TEGRA_GPIO_PS0 144
|
||||||
|
|
||||||
void pmic_enable_cpu_vdd(void)
|
void pmic_enable_cpu_vdd(void)
|
||||||
{
|
{
|
||||||
/* Set VDD_CORE to 1.200V. */
|
/* Set VDD_CORE to 1.200V. */
|
||||||
|
@ -45,3 +52,52 @@ void pmic_enable_cpu_vdd(void)
|
||||||
tegra_i2c_ll_write(TPS80032_CTL1_I2C_ADDR, TPS80032_SMPS1_CFG_STATE_DATA);
|
tegra_i2c_ll_write(TPS80032_CTL1_I2C_ADDR, TPS80032_SMPS1_CFG_STATE_DATA);
|
||||||
udelay(10 * 1000);
|
udelay(10 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Unlike all other supported Tegra devices and most known Tegra devices, the
|
||||||
|
* HTC One X has no hardware way to enter APX/RCM mode, which may lead to a
|
||||||
|
* dangerous situation when, if BCT is set correctly and the bootloader is
|
||||||
|
* faulty, the device will hang in a permanent brick state. Exiting from this
|
||||||
|
* state can be done only by disassembling the device and shortening testpad
|
||||||
|
* to the ground.
|
||||||
|
*
|
||||||
|
* To prevent this or to minimize the probability of such an accident, it was
|
||||||
|
* proposed to add the RCM rebooting hook as early into SPL as possible since
|
||||||
|
* SPL is much more robust and has minimal changes that can break bootflow.
|
||||||
|
*
|
||||||
|
* gpio_early_init_uart() function was chosen as it is the earliest function
|
||||||
|
* exposed for setup by the device. Hook performs a check for volume up
|
||||||
|
* button state and triggers RCM if it is pressed.
|
||||||
|
*/
|
||||||
|
void gpio_early_init_uart(void)
|
||||||
|
{
|
||||||
|
struct gpio_ctlr *ctlr = (struct gpio_ctlr *)NV_PA_GPIO_BASE;
|
||||||
|
struct gpio_ctlr_bank *bank = &ctlr->gpio_bank[GPIO_BANK(TEGRA_GPIO_PS0)];
|
||||||
|
u32 value;
|
||||||
|
|
||||||
|
/* Configure pinmux */
|
||||||
|
pinmux_set_func(PMUX_PINGRP_KB_ROW8_PS0, PMUX_FUNC_KBC);
|
||||||
|
pinmux_set_pullupdown(PMUX_PINGRP_KB_ROW8_PS0, PMUX_PULL_UP);
|
||||||
|
pinmux_tristate_disable(PMUX_PINGRP_KB_ROW8_PS0);
|
||||||
|
pinmux_set_io(PMUX_PINGRP_KB_ROW8_PS0, PMUX_PIN_INPUT);
|
||||||
|
|
||||||
|
/* Configure GPIO direction as input. */
|
||||||
|
value = readl(&bank->gpio_dir_out[GPIO_PORT(TEGRA_GPIO_PS0)]);
|
||||||
|
value &= ~(1 << GPIO_BIT(TEGRA_GPIO_PS0));
|
||||||
|
writel(value, &bank->gpio_dir_out[GPIO_PORT(TEGRA_GPIO_PS0)]);
|
||||||
|
|
||||||
|
/* Enable the pin as a GPIO */
|
||||||
|
value = readl(&bank->gpio_config[GPIO_PORT(TEGRA_GPIO_PS0)]);
|
||||||
|
value |= 1 << GPIO_BIT(TEGRA_GPIO_PS0);
|
||||||
|
writel(value, &bank->gpio_config[GPIO_PORT(TEGRA_GPIO_PS0)]);
|
||||||
|
|
||||||
|
/* Get GPIO value */
|
||||||
|
value = readl(&bank->gpio_in[GPIO_PORT(TEGRA_GPIO_PS0)]);
|
||||||
|
value = (value >> GPIO_BIT(TEGRA_GPIO_PS0)) & 1;
|
||||||
|
|
||||||
|
/* Enter RCM if button is pressed */
|
||||||
|
if (!value) {
|
||||||
|
tegra_pmc_writel(2, PMC_SCRATCH0);
|
||||||
|
tegra_pmc_writel(PMC_CNTRL_MAIN_RST, PMC_CNTRL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -3,26 +3,25 @@
|
||||||
U-Boot for the ASUS/Google Nexus 7 (2012)
|
U-Boot for the ASUS/Google Nexus 7 (2012)
|
||||||
=========================================
|
=========================================
|
||||||
|
|
||||||
``DISCLAMER!`` Moving your ASUS/Google Nexus 7 (2012) to use
|
``DISCLAMER!`` Moving your ASUS/Google Nexus 7 (2012) to use U-Boot assumes
|
||||||
U-Boot assumes replacement of the vendor ASUS bootloader. Vendor
|
replacement of the vendor ASUS bootloader. Vendor android firmwares will no
|
||||||
android firmwares will no longer be able to run on the device.
|
longer be able to run on the device. This replacement IS reversible.
|
||||||
This replacement IS reversible.
|
|
||||||
|
|
||||||
Quick Start
|
Quick Start
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
- Build U-Boot
|
- Build U-Boot
|
||||||
- Pack U-Boot into repart-block
|
- Process U-Boot
|
||||||
- Flash repart-block into the eMMC
|
- Flashing U-Boot into the eMMC
|
||||||
- Boot
|
- Boot
|
||||||
- Self Upgrading
|
- Self Upgrading
|
||||||
|
|
||||||
Build U-Boot
|
Build U-Boot
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Device support is implemented by applying config fragment to a generic
|
Device support is implemented by applying config fragment to a generic board
|
||||||
board defconfig. Valid fragments are ``grouper_E1565.config``,
|
defconfig. Valid fragments are ``tilapia.config``, ``grouper_E1565.config``
|
||||||
``grouper_PM269.config`` and ``tilapia.config``.
|
and ``grouper_PM269.config``.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
|
@ -31,64 +30,103 @@ board defconfig. Valid fragments are ``grouper_E1565.config``,
|
||||||
$ make
|
$ make
|
||||||
|
|
||||||
After the build succeeds, you will obtain the final ``u-boot-dtb-tegra.bin``
|
After the build succeeds, you will obtain the final ``u-boot-dtb-tegra.bin``
|
||||||
image, ready for flashing (but check the next section for additional
|
image, ready for further processing.
|
||||||
adjustments).
|
|
||||||
|
|
||||||
Pack U-Boot into repar-block
|
Process U-Boot
|
||||||
----------------------------
|
--------------
|
||||||
|
|
||||||
``DISCLAMER!`` All questions related to re-crypt work should be asked
|
``DISCLAMER!`` All questions related to the re-crypt work should be asked
|
||||||
in re-crypt repo issues. NOT HERE!
|
in re-crypt repo issues. NOT HERE!
|
||||||
|
|
||||||
re-crypt is a small script which packs ``u-boot-dtb-tegra.bin`` in
|
re-crypt is a tool that processes the ``u-boot-dtb-tegra.bin`` binary into form
|
||||||
form usable by device. This process is required only on the first
|
usable by device. This process is required only on the first installation or
|
||||||
installation or to recover the device in case of a failed update.
|
to recover the device in case of a failed update. You need to know your
|
||||||
You need to know your tablet's individual SBK to continue.
|
tablet's individual SBK to continue.
|
||||||
|
|
||||||
|
Permanent installation can be performed either by using the nv3p protocol or by
|
||||||
|
pre-loading just built U-Boot into RAM.
|
||||||
|
|
||||||
|
Processing for the NV3P protocol
|
||||||
|
********************************
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ git clone https://github.com/clamor-s/re-crypt.git
|
$ git clone https://gitlab.com/grate-driver/re-crypt.git
|
||||||
$ cd re-crypt # place your u-boot-dtb-regra.bin here
|
$ cd re-crypt # place your u-boot-dtb-tegra.bin here
|
||||||
$ ./re-crypt.sh -d grouper -k deadbeefdeadc0dedeadd00dfee1dead
|
$ ./re-crypt.py --dev grouper --sbk <your sbk>
|
||||||
|
|
||||||
Script will produce you a ``repart-block.bin`` ready to flash.
|
where SBK has next form ``0xXXXXXXXX`` ``0xXXXXXXXX`` ``0xXXXXXXXX`` ``0xXXXXXXXX``
|
||||||
|
|
||||||
Flash repart-block into the eMMC
|
The script will produce a ``repart-block.bin`` ready to flash.
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
``DISCLAMER!`` All questions related to NvFlash should be asked
|
Processing for pre-loaded U-Boot
|
||||||
in the proper place. NOT HERE! Flashing repart-block will erase
|
********************************
|
||||||
all your eMMC, so make a backup before!
|
|
||||||
|
|
||||||
``repart-block.bin`` contains BCT and bootloader in encrypted state
|
The procedure is the same, but the ``--split`` argument is used with the
|
||||||
in form which can just be written RAW at the start of eMMC.
|
``re-crypt.py``. The script will produce ``bct.img`` and ``ebt.img`` ready
|
||||||
|
to flash.
|
||||||
|
|
||||||
|
Flashing U-Boot into the eMMC
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
``DISCLAMER!`` All questions related to NvFlash should be asked in the proper
|
||||||
|
place. NOT HERE! Flashing U-Boot will erase all eMMC, so make a backup before!
|
||||||
|
|
||||||
|
Permanent installation can be performed either by using the nv3p protocol or by
|
||||||
|
pre-loading just built U-Boot into RAM.
|
||||||
|
|
||||||
|
Flashing with the NV3P protocol
|
||||||
|
*******************************
|
||||||
|
|
||||||
|
Nv3p is a custom Nvidia protocol used to recover bricked devices. Devices can
|
||||||
|
enter it either by using ``wheelie`` with the correct ``blob.bin`` file or by
|
||||||
|
pre-loading vendor bootloader with the Fusée Gelée.
|
||||||
|
|
||||||
|
With nv3p, ``repart-block.bin`` is used. It contains BCT and a bootloader in
|
||||||
|
encrypted state in form, which can just be written RAW at the start of eMMC.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ wheelie --blob blob.bin
|
$ wheelie --blob blob.bin
|
||||||
$ nvflash --resume --rawdevicewrite 0 1024 repart-block.bin
|
$ nvflash --resume --rawdevicewrite 0 1024 repart-block.bin
|
||||||
|
|
||||||
|
When flashing is done, reboot the device.
|
||||||
|
|
||||||
|
Flashing with a pre-loaded U-Boot
|
||||||
|
*********************************
|
||||||
|
|
||||||
|
U-Boot pre-loaded into RAM acts the same as when it was booted "cold". Currently
|
||||||
|
U-Boot supports bootmenu entry fastboot, which allows to write a processed copy
|
||||||
|
of U-Boot permanently into eMMC.
|
||||||
|
|
||||||
|
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
|
Boot
|
||||||
----
|
----
|
||||||
|
|
||||||
After flashing ``repart-block.bin`` the device should reboot and turn
|
To boot Linux, U-Boot will look for an ``extlinux.conf`` on eMMC. Additionally,
|
||||||
itself off. This is normal behavior if no boot configuration is
|
if the Volume Down button is pressed while booting, the device will enter
|
||||||
found.
|
bootmenu. Bootmenu contains entries to mount eMMC as mass storage, fastboot,
|
||||||
|
reboot, reboot RCM, poweroff, enter U-Boot console and update bootloader (check
|
||||||
|
the next chapter).
|
||||||
|
|
||||||
To boot Linux, U-Boot will look for an ``extlinux.conf`` configuration
|
Flashing ``repart-block.bin`` eliminates vendor restrictions on eMMC and allows
|
||||||
on eMMC. Additionally if Volume Down button is pressed while booting
|
the user to use/partition it in any way the user desires.
|
||||||
device will enter bootmenu. Bootmenu contains entries to mount eMMC as
|
|
||||||
mass storage, fastboot, reboot, reboot RCM, poweroff, enter U-Boot
|
|
||||||
console and update bootloader (check next chapter).
|
|
||||||
|
|
||||||
Flashing ``repart-block.bin`` eliminates vendor restriction on eMMC
|
|
||||||
and allows the user to use/partition it in any way the user desires.
|
|
||||||
|
|
||||||
Self Upgrading
|
Self Upgrading
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
Place your ``u-boot-dtb-tegra.bin`` on the first partition of the
|
Place your ``u-boot-dtb-tegra.bin`` on the first partition of the eMMC (using
|
||||||
eMMC (using ability of u-boot to mount it). Enter bootmenu, choose
|
ability of u-boot to mount it). Enter bootmenu, choose update bootloader option
|
||||||
update bootloader option with Power button and U-Boot should update
|
with Power button and U-Boot should update itself. Once the process is
|
||||||
itself. Once the process is completed, U-Boot will ask to press any
|
completed, U-Boot will ask to press any button to reboot.
|
||||||
button to reboot.
|
|
||||||
|
|
|
@ -3,28 +3,27 @@
|
||||||
U-Boot for the ASUS Transformer device family
|
U-Boot for the ASUS Transformer device family
|
||||||
=============================================
|
=============================================
|
||||||
|
|
||||||
``DISCLAMER!`` Moving your ASUS Transformer to use U-Boot
|
``DISCLAMER!`` Moving your ASUS Transformer to use U-Boot assumes replacement
|
||||||
assumes replacement of the vendor ASUS bootloader. Vendor
|
of the vendor ASUS bootloader. Vendor Android firmwares will no longer be
|
||||||
android firmwares will no longer be able to run on the device.
|
able to run on the device. This replacement IS reversible.
|
||||||
This replacement IS reversible.
|
|
||||||
|
|
||||||
Quick Start
|
Quick Start
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
- Build U-Boot
|
- Build U-Boot
|
||||||
- Pack U-Boot into repart-block
|
- Process U-Boot
|
||||||
- Flash repart-block into the eMMC
|
- Flashing U-Boot into the eMMC
|
||||||
- Flash repart-block into TF600T SPI flash
|
- Flashing U-Boot into the SPI flash
|
||||||
- Boot
|
- Boot
|
||||||
- Self Upgrading
|
- Self Upgrading
|
||||||
|
|
||||||
Build U-Boot
|
Build U-Boot
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Device support is implemented by applying config fragment
|
Device support is implemented by applying a config fragment to a generic board
|
||||||
to a generic board defconfig. Valid fragments are ``tf201.config``,
|
defconfig. Valid fragments are ``tf201.config``, ``tf300t.config``,
|
||||||
``tf300t.config``, ``tf300tg.config``, ``tf300tl.config``,
|
``tf300tg.config``, ``tf300tl.config``, ``tf700t.config``, ``tf600t.config`` and
|
||||||
``tf700t.config``, ``tf600t.config`` and ``p1801-t.config``.
|
``p1801-t.config``.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
|
@ -33,84 +32,124 @@ to a generic board defconfig. Valid fragments are ``tf201.config``,
|
||||||
$ make
|
$ make
|
||||||
|
|
||||||
After the build succeeds, you will obtain the final ``u-boot-dtb-tegra.bin``
|
After the build succeeds, you will obtain the final ``u-boot-dtb-tegra.bin``
|
||||||
image, ready for flashing (but check the next section for additional
|
image, ready for further processing.
|
||||||
adjustments).
|
|
||||||
|
|
||||||
Pack U-Boot into repar-block
|
Process U-Boot
|
||||||
----------------------------
|
--------------
|
||||||
|
|
||||||
``DISCLAMER!`` All questions related to re-crypt work should be asked
|
``DISCLAMER!`` All questions related to the re-crypt work should be asked
|
||||||
in re-crypt repo issues. NOT HERE!
|
in re-crypt repo issues. NOT HERE!
|
||||||
|
|
||||||
re-crypt is a small script which packs ``u-boot-dtb-tegra.bin`` in
|
re-crypt is a tool that processes the ``u-boot-dtb-tegra.bin`` binary into form
|
||||||
form usable by device. This process is required only on the first
|
usable by device. This process is required only on the first installation or
|
||||||
installation or to recover the device in case of a failed update.
|
to recover the device in case of a failed update. You need to know your
|
||||||
You need to know your tablet's individual SBK to continue.
|
tablet's individual SBK to continue.
|
||||||
|
|
||||||
|
Permanent installation can be performed either by using the nv3p protocol or by
|
||||||
|
pre-loading just built U-Boot into RAM.
|
||||||
|
|
||||||
|
Processing for the NV3P protocol
|
||||||
|
********************************
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ git clone https://github.com/clamor-s/re-crypt.git
|
$ git clone https://gitlab.com/grate-driver/re-crypt.git
|
||||||
$ cd re-crypt # place your u-boot-dtb-regra.bin here
|
$ cd re-crypt # place your u-boot-dtb-tegra.bin here
|
||||||
$ ./re-crypt.sh -d tf201 -k deadbeefdeadc0dedeadd00dfee1dead
|
$ ./re-crypt.py --dev tf201 --sbk <your sbk>
|
||||||
|
|
||||||
Script will produce you a `repart-block.bin` ready to flash.
|
where SBK has next form ``0xXXXXXXXX`` ``0xXXXXXXXX`` ``0xXXXXXXXX`` ``0xXXXXXXXX``
|
||||||
|
|
||||||
Flash repart-block into the eMMC
|
The script will produce a ``repart-block.bin`` ready to flash.
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
``DISCLAMER!`` All questions related to NvFlash should be asked
|
Processing for pre-loaded U-Boot
|
||||||
in the proper place. NOT HERE! Flashing repart-block will erase
|
********************************
|
||||||
all your eMMC, so make a backup before!
|
|
||||||
|
|
||||||
``repart-block.bin`` contains BCT and bootloader in encrypted state
|
The procedure is the same, but the ``--split`` argument is used with the
|
||||||
in form which can just be written RAW at the start of eMMC.
|
``re-crypt.py``. The script will produce ``bct.img`` and ``ebt.img`` ready
|
||||||
|
to flash.
|
||||||
|
|
||||||
|
Flashing U-Boot into the eMMC
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
``DISCLAMER!`` All questions related to NvFlash should be asked in the proper
|
||||||
|
place. NOT HERE! Flashing U-Boot will erase all eMMC, so make a backup before!
|
||||||
|
|
||||||
|
Permanent installation can be performed either by using the nv3p protocol or by
|
||||||
|
pre-loading just built U-Boot into RAM.
|
||||||
|
|
||||||
|
Flashing with the NV3P protocol
|
||||||
|
*******************************
|
||||||
|
|
||||||
|
Nv3p is a custom Nvidia protocol used to recover bricked devices. Devices can
|
||||||
|
enter it either by using ``wheelie`` with the correct ``blob.bin`` file or by
|
||||||
|
pre-loading vendor bootloader with the Fusée Gelée.
|
||||||
|
|
||||||
|
With nv3p, ``repart-block.bin`` is used. It contains BCT and a bootloader in
|
||||||
|
encrypted state in form, which can just be written RAW at the start of eMMC.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ wheelie --blob blob.bin
|
$ wheelie --blob blob.bin
|
||||||
$ nvflash --resume --rawdevicewrite 0 1024 repart-block.bin
|
$ nvflash --resume --rawdevicewrite 0 1024 repart-block.bin
|
||||||
|
|
||||||
Flash repart-block into TF600T SPI flash
|
When flashing is done, reboot the device.
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Unlike other transformers TF600T uses separate 4 MB SPI flash which
|
Flashing with a pre-loaded U-Boot
|
||||||
contains all data required for boot. It is flashed from within u-boot
|
*********************************
|
||||||
itself preloaded into RAM using fusee gelee. After creating your
|
|
||||||
``repart-block.bin`` you have to place it on a 1st partition of microSD
|
|
||||||
card formated in fat. Then insert this microSD card into your tablet
|
|
||||||
and boot it using fusee gelee and u-boot which was included into
|
|
||||||
repart-block.bin, while booting you must hold volume down button.
|
|
||||||
Process should take less then a minute, if everything goes correct,
|
|
||||||
on microSD will appear ``spi-flash-backup.bin`` file, which is dump of
|
|
||||||
your spi flash content and can be used to restore UEFI, do not loose it,
|
|
||||||
tablet will power itself off.
|
|
||||||
|
|
||||||
Self-updating of u-boot is performed by placing ``u-boot-dtb-tegra.bin``
|
U-Boot pre-loaded into RAM acts the same as when it was booted "cold". Currently
|
||||||
on 1st partition of microSD, inserting it into tablet and booting with
|
U-Boot supports bootmenu entry fastboot, which allows to write a processed copy
|
||||||
pressed volume down button.
|
of U-Boot permanently into eMMC.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Flashing U-Boot into the SPI Flash
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
Some of Transformers use a separate 4 MB SPI flash, which contains all data
|
||||||
|
required for boot. It is flashed from within U-Boot itself, preloaded into RAM
|
||||||
|
using Fusée Gelée.
|
||||||
|
|
||||||
|
After creating your ``repart-block.bin`` you have to place it on a 1st partition
|
||||||
|
of microSD card formated in fat. Then insert this microSD card into your tablet
|
||||||
|
and boot it using Fusée Gelée and U-Boot, which was included into
|
||||||
|
``repart-block.bin``, while booting you must hold the ``volume down`` button.
|
||||||
|
|
||||||
|
The process should take less than a minute, if everything goes correctly,
|
||||||
|
on microSD will appear ``spi-flash-backup.bin`` file, which is the dump of your
|
||||||
|
SPI Flash content and can be used to restore UEFI, do not lose it, tablet will
|
||||||
|
power itself off.
|
||||||
|
|
||||||
|
Self-updating of U-Boot is performed by placing ``u-boot-dtb-tegra.bin`` on 1st
|
||||||
|
partition of microSD, inserting it into the tablet and booting with a pressed
|
||||||
|
``volume down`` button.
|
||||||
|
|
||||||
Boot
|
Boot
|
||||||
----
|
----
|
||||||
|
|
||||||
After flashing ``repart-block.bin`` the device should reboot and turn
|
To boot Linux, U-Boot will look for an ``extlinux.conf`` on MicroSD and then on
|
||||||
itself off. This is normal behavior if no boot configuration is
|
eMMC. Additionally, if the Volume Down button is pressed while booting, the
|
||||||
found.
|
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).
|
||||||
|
|
||||||
To boot Linux, U-Boot will look for an ``extlinux.conf`` on MicroSD
|
Flashing ``repart-block.bin`` eliminates vendor restrictions on eMMC and allows
|
||||||
and then on eMMC. Additionally if Volume Down button is pressed
|
the user to use/partition it in any way the user desires.
|
||||||
while booting 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 next
|
|
||||||
chapter).
|
|
||||||
|
|
||||||
Flashing ``repart-block.bin`` eliminates vendor restriction on eMMC
|
|
||||||
and allows the user to use/partition it in any way the user desires.
|
|
||||||
|
|
||||||
Self Upgrading
|
Self Upgrading
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
Place your ``u-boot-dtb-tegra.bin`` on the first partition of the
|
Place your ``u-boot-dtb-tegra.bin`` on the first partition of the MicroSD card
|
||||||
MicroSD card and insert it into the tablet. Enter bootmenu, choose
|
and insert it into the tablet. Enter bootmenu, choose update the bootloader
|
||||||
update bootloader option with Power button and U-Boot should update
|
option with the Power button and U-Boot should update itself. Once the process
|
||||||
itself. Once the process is completed, U-Boot will ask to press any
|
is completed, U-Boot will ask to press any button to reboot.
|
||||||
button to reboot.
|
|
||||||
|
|
|
@ -3,17 +3,16 @@
|
||||||
U-Boot for the HTC One X (endeavoru)
|
U-Boot for the HTC One X (endeavoru)
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
``DISCLAMER!`` Moving your HTC ONe X to use U-Boot assumes
|
``DISCLAMER!`` Moving your HTC ONe X to use U-Boot assumes replacement of the
|
||||||
replacement of the vendor hboot. Vendor android firmwares
|
vendor hboot. Vendor android firmwares will no longer be able to run on the
|
||||||
will no longer be able to run on the device.
|
device. This replacement IS reversible.
|
||||||
This replacement IS reversible.
|
|
||||||
|
|
||||||
Quick Start
|
Quick Start
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
- Build U-Boot
|
- Build U-Boot
|
||||||
- Pack U-Boot into repart-block
|
- Process U-Boot
|
||||||
- Flash repart-block into the eMMC
|
- Flashing U-Boot into the eMMC
|
||||||
- Boot
|
- Boot
|
||||||
- Self Upgrading
|
- Self Upgrading
|
||||||
|
|
||||||
|
@ -27,63 +26,100 @@ Build U-Boot
|
||||||
$ make
|
$ make
|
||||||
|
|
||||||
After the build succeeds, you will obtain the final ``u-boot-dtb-tegra.bin``
|
After the build succeeds, you will obtain the final ``u-boot-dtb-tegra.bin``
|
||||||
image, ready for flashing (but check the next section for additional
|
image, ready for further processing.
|
||||||
adjustments).
|
|
||||||
|
|
||||||
Pack U-Boot into repar-block
|
Process U-Boot
|
||||||
----------------------------
|
--------------
|
||||||
|
|
||||||
``DISCLAMER!`` All questions related to re-crypt work should be
|
``DISCLAMER!`` All questions related to the re-crypt work should be asked
|
||||||
asked in re-crypt repo issues. NOT HERE!
|
in re-crypt repo issues. NOT HERE!
|
||||||
|
|
||||||
re-crypt is a small script which packs ``u-boot-dtb-tegra.bin`` in
|
re-crypt is a tool that processes the ``u-boot-dtb-tegra.bin`` binary into form
|
||||||
form usable by device. This process is required only on the first
|
usable by device. This process is required only on the first installation or
|
||||||
installation or to recover the device in case of a failed update.
|
to recover the device in case of a failed update.
|
||||||
|
|
||||||
|
Permanent installation can be performed either by using the nv3p protocol or by
|
||||||
|
pre-loading just built U-Boot into RAM.
|
||||||
|
|
||||||
|
Processing for the NV3P protocol
|
||||||
|
********************************
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ git clone https://github.com/clamor-s/re-crypt.git
|
$ git clone https://gitlab.com/grate-driver/re-crypt.git
|
||||||
$ cd re-crypt # place your u-boot-dtb-regra.bin here
|
$ cd re-crypt # place your u-boot-dtb-tegra.bin here
|
||||||
$ ./re-crypt.sh -d endeavoru
|
$ ./re-crypt.py --dev endeavoru
|
||||||
|
|
||||||
Script will produce you a ``repart-block.bin`` ready to flash.
|
The script will produce a ``repart-block.bin`` ready to flash.
|
||||||
|
|
||||||
Flash repart-block into the eMMC
|
Processing for pre-loaded U-Boot
|
||||||
--------------------------------
|
********************************
|
||||||
|
|
||||||
``DISCLAMER!`` All questions related to NvFlash should be asked
|
The procedure is the same, but the ``--split`` argument is used with the
|
||||||
in the proper place. NOT HERE! Flashing repart-block will erase
|
``re-crypt.py``. The script will produce ``bct.img`` and ``ebt.img`` ready
|
||||||
all your eMMC, so make a backup before!
|
to flash.
|
||||||
|
|
||||||
``repart-block.bin`` contains BCT and bootloader in encrypted state
|
Flashing U-Boot into the eMMC
|
||||||
in form which can just be written RAW at the start of eMMC.
|
-----------------------------
|
||||||
|
|
||||||
|
``DISCLAMER!`` All questions related to NvFlash should be asked in the proper
|
||||||
|
place. NOT HERE! Flashing U-Boot will erase all eMMC, so make a backup before!
|
||||||
|
|
||||||
|
Permanent installation can be performed either by using the nv3p protocol or by
|
||||||
|
pre-loading just built U-Boot into RAM.
|
||||||
|
|
||||||
|
Flashing with the NV3P protocol
|
||||||
|
*******************************
|
||||||
|
|
||||||
|
Nv3p is a custom Nvidia protocol used to recover bricked devices. Devices can
|
||||||
|
enter it either by using ``wheelie`` with the correct ``blob.bin`` file or by
|
||||||
|
pre-loading vendor bootloader with the Fusée Gelée.
|
||||||
|
|
||||||
|
With nv3p, ``repart-block.bin`` is used. It contains BCT and a bootloader in
|
||||||
|
encrypted state in form, which can just be written RAW at the start of eMMC.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ wheelie --blob blob.bin
|
$ wheelie --blob blob.bin
|
||||||
$ nvflash --resume --rawdevicewrite 0 1024 repart-block.bin
|
$ nvflash --resume --rawdevicewrite 0 1024 repart-block.bin
|
||||||
|
|
||||||
|
When flashing is done, reboot the device.
|
||||||
|
|
||||||
|
Flashing with a pre-loaded U-Boot
|
||||||
|
*********************************
|
||||||
|
|
||||||
|
U-Boot pre-loaded into RAM acts the same as when it was booted "cold". Currently
|
||||||
|
U-Boot supports bootmenu entry fastboot, which allows to write a processed copy
|
||||||
|
of U-Boot permanently into eMMC.
|
||||||
|
|
||||||
|
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
|
Boot
|
||||||
----
|
----
|
||||||
|
|
||||||
After flashing ``repart-block.bin`` the device should reboot and turn
|
To boot Linux, U-Boot will look for an ``extlinux.conf`` on eMMC. Additionally,
|
||||||
itself off. This is normal behavior if no boot configuration is
|
if the Volume Down button is pressed while booting, the device will enter
|
||||||
found.
|
bootmenu. Bootmenu contains entries to mount eMMC as mass storage, fastboot,
|
||||||
|
reboot, reboot RCM, poweroff, enter U-Boot console and update bootloader (check
|
||||||
|
the next chapter).
|
||||||
|
|
||||||
To boot Linux, U-Boot will look for an ``extlinux.conf`` configuration
|
Flashing ``repart-block.bin`` eliminates vendor restrictions on eMMC and allows
|
||||||
on eMMC. Additionally if Volume Down button is pressed while booting
|
the user to use/partition it in any way the user desires.
|
||||||
device will enter bootmenu. Bootmenu contains entries to mount eMMC as
|
|
||||||
mass storage, fastboot, reboot, reboot RCM, poweroff, enter U-Boot
|
|
||||||
console and update bootloader (check next chapter).
|
|
||||||
|
|
||||||
Flashing ``repart-block.bin`` eliminates vendor restriction on eMMC
|
|
||||||
and allows the user to use/partition it in any way the user desires.
|
|
||||||
|
|
||||||
Self Upgrading
|
Self Upgrading
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
Place your ``u-boot-dtb-tegra.bin`` on the first partition of the
|
Place your ``u-boot-dtb-tegra.bin`` on the first partition of the eMMC (using
|
||||||
eMMC (using ability of u-boot to mount it). Enter bootmenu, choose
|
ability of u-boot to mount it). Enter bootmenu, choose update bootloader option
|
||||||
update bootloader option with Power button and U-Boot should update
|
with Power button and U-Boot should update itself. Once the process is
|
||||||
itself. Once the process is completed, U-Boot will ask to press any
|
completed, U-Boot will ask to press any button to reboot.
|
||||||
button to reboot.
|
|
||||||
|
|
|
@ -3,17 +3,16 @@
|
||||||
U-Boot for the LG X3 T30 device family
|
U-Boot for the LG X3 T30 device family
|
||||||
======================================
|
======================================
|
||||||
|
|
||||||
``DISCLAMER!`` Moving your LG P880 or P895 to use U-Boot
|
``DISCLAMER!`` Moving your LG P880 or P895 to use U-Boot assumes replacement
|
||||||
assumes replacement of the vendor LG bootloader. Vendor
|
of the vendor LG bootloader. Vendor android firmwares will no longer be able
|
||||||
android firmwares will no longer be able to run on the
|
to run on the device. This replacement IS reversible.
|
||||||
device. This replacement IS reversible.
|
|
||||||
|
|
||||||
Quick Start
|
Quick Start
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
- Build U-Boot
|
- Build U-Boot
|
||||||
- Pack U-Boot into repart-block
|
- Process U-Boot
|
||||||
- Flash repart-block into the eMMC
|
- Flashing U-Boot into the eMMC
|
||||||
- Boot
|
- Boot
|
||||||
- Self Upgrading
|
- Self Upgrading
|
||||||
|
|
||||||
|
@ -30,64 +29,100 @@ board defconfig. Valid fragments are ``p880.config`` and ``p895.config``.
|
||||||
$ make
|
$ make
|
||||||
|
|
||||||
After the build succeeds, you will obtain the final ``u-boot-dtb-tegra.bin``
|
After the build succeeds, you will obtain the final ``u-boot-dtb-tegra.bin``
|
||||||
image, ready for flashing (but check the next section for additional
|
image, ready for further processing.
|
||||||
adjustments).
|
|
||||||
|
|
||||||
Pack U-Boot into repar-block
|
Process U-Boot
|
||||||
----------------------------
|
--------------
|
||||||
|
|
||||||
``DISCLAMER!`` All questions related to re-crypt work should be
|
``DISCLAMER!`` All questions related to the re-crypt work should be asked
|
||||||
asked in re-crypt repo issues. NOT HERE!
|
in re-crypt repo issues. NOT HERE!
|
||||||
|
|
||||||
re-crypt is a small script which packs ``u-boot-dtb-tegra.bin`` in
|
re-crypt is a tool that processes the ``u-boot-dtb-tegra.bin`` binary into form
|
||||||
form usable by device. This process is required only on the first
|
usable by device. This process is required only on the first installation or
|
||||||
installation or to recover the device in case of a failed update.
|
to recover the device in case of a failed update.
|
||||||
|
|
||||||
|
Permanent installation can be performed either by using the nv3p protocol or by
|
||||||
|
pre-loading just built U-Boot into RAM.
|
||||||
|
|
||||||
|
Processing for the NV3P protocol
|
||||||
|
********************************
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ git clone https://github.com/clamor-s/re-crypt.git
|
$ git clone https://gitlab.com/grate-driver/re-crypt.git
|
||||||
$ cd re-crypt # place your u-boot-dtb-regra.bin here
|
$ cd re-crypt # place your u-boot-dtb-tegra.bin here
|
||||||
$ ./re-crypt.sh -d p895
|
$ ./re-crypt.py --dev p895
|
||||||
|
|
||||||
Script will produce you a ``repart-block.bin`` ready to flash.
|
The script will produce a ``repart-block.bin`` ready to flash.
|
||||||
|
|
||||||
Flash repart-block into the eMMC
|
Processing for pre-loaded U-Boot
|
||||||
--------------------------------
|
********************************
|
||||||
|
|
||||||
``DISCLAMER!`` All questions related to NvFlash should be asked
|
The procedure is the same, but the ``--split`` argument is used with the
|
||||||
in the proper place. NOT HERE! Flashing repart-block will erase
|
``re-crypt.py``. The script will produce ``bct.img`` and ``ebt.img`` ready
|
||||||
all your eMMC, so make a backup before!
|
to flash.
|
||||||
|
|
||||||
``repart-block.bin`` contains BCT and bootloader in encrypted state
|
Flashing U-Boot into the eMMC
|
||||||
in form which can just be written RAW at the start of eMMC.
|
-----------------------------
|
||||||
|
|
||||||
|
``DISCLAMER!`` All questions related to NvFlash should be asked in the proper
|
||||||
|
place. NOT HERE! Flashing U-Boot will erase all eMMC, so make a backup before!
|
||||||
|
|
||||||
|
Permanent installation can be performed either by using the nv3p protocol or by
|
||||||
|
pre-loading just built U-Boot into RAM.
|
||||||
|
|
||||||
|
Flashing with the NV3P protocol
|
||||||
|
*******************************
|
||||||
|
|
||||||
|
Nv3p is a custom Nvidia protocol used to recover bricked devices. Devices can
|
||||||
|
enter it either by using ``wheelie`` with the correct ``blob.bin`` file or by
|
||||||
|
pre-loading vendor bootloader with the Fusée Gelée.
|
||||||
|
|
||||||
|
With nv3p, ``repart-block.bin`` is used. It contains BCT and a bootloader in
|
||||||
|
encrypted state in form, which can just be written RAW at the start of eMMC.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ wheelie --blob blob.bin
|
$ wheelie --blob blob.bin
|
||||||
$ nvflash --resume --rawdevicewrite 0 1024 repart-block.bin
|
$ nvflash --resume --rawdevicewrite 0 1024 repart-block.bin
|
||||||
|
|
||||||
|
When flashing is done, reboot the device.
|
||||||
|
|
||||||
|
Flashing with a pre-loaded U-Boot
|
||||||
|
*********************************
|
||||||
|
|
||||||
|
U-Boot pre-loaded into RAM acts the same as when it was booted "cold". Currently
|
||||||
|
U-Boot supports bootmenu entry fastboot, which allows to write a processed copy
|
||||||
|
of U-Boot permanently into eMMC.
|
||||||
|
|
||||||
|
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
|
Boot
|
||||||
----
|
----
|
||||||
|
|
||||||
After flashing ``repart-block.bin`` the device should reboot and turn
|
To boot Linux, U-Boot will look for an ``extlinux.conf`` on eMMC. Additionally,
|
||||||
itself off. This is normal behavior if no boot configuration is
|
if the Volume Down button is pressed while booting, the device will enter
|
||||||
found.
|
bootmenu. Bootmenu contains entries to mount eMMC as mass storage, fastboot,
|
||||||
|
reboot, reboot RCM, poweroff, enter U-Boot console and update bootloader (check
|
||||||
|
the next chapter).
|
||||||
|
|
||||||
To boot Linux, U-Boot will look for an ``extlinux.conf`` on MicroSD
|
Flashing ``repart-block.bin`` eliminates vendor restrictions on eMMC and allows
|
||||||
and then on eMMC. Additionally if Volume Down button is pressed
|
the user to use/partition it in any way the user desires.
|
||||||
while booting 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 next
|
|
||||||
chapter).
|
|
||||||
|
|
||||||
Flashing ``repart-block.bin`` eliminates vendor restriction on eMMC
|
|
||||||
and allows the user to use/partition it in any way the user desires.
|
|
||||||
|
|
||||||
Self Upgrading
|
Self Upgrading
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
Place your ``u-boot-dtb-tegra.bin`` on the first partition of the
|
Place your ``u-boot-dtb-tegra.bin`` on the first partition of the eMMC (using
|
||||||
eMMC (using ability of u-boot to mount it). Enter bootmenu, choose
|
ability of u-boot to mount it). Enter bootmenu, choose update bootloader option
|
||||||
update bootloader option with Power button and U-Boot should update
|
with Power button and U-Boot should update itself. Once the process is
|
||||||
itself. Once the process is completed, U-Boot will ask to press any
|
completed, U-Boot will ask to press any button to reboot.
|
||||||
button to reboot.
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue