Difference between revisions of "U-Boot"

From Rockchip open source Document
Jump to: navigation, search
 
(30 intermediate revisions by 4 users not shown)
Line 1: Line 1:
  
U-Boot Guide
+
= Download U-Boot =
  
= Download U-Boot =
 
  
 
== Upstream U-Boot ==
 
== Upstream U-Boot ==
  
 
You can clone the u-boot repository by running:
 
You can clone the u-boot repository by running:
<pre>git clone git://git.denx.de/u-boot.git</pre>
+
<pre>git clone https://gitlab.denx.de/u-boot/u-boot.git</pre>
  
 
Alternatively you can use u-boot-rockchip instead which may with some patches not get in mainline:
 
Alternatively you can use u-boot-rockchip instead which may with some patches not get in mainline:
<pre>git clone git://git.denx.de/u-boot-rockchip.git</pre>
+
<pre>git clone https://gitlab.denx.de/u-boot/custodians/u-boot-rockchip.git</pre>
  
 +
&nbsp;
  
 
== Rockchip U-Boot ==
 
== Rockchip U-Boot ==
Line 18: Line 18:
 
<pre>git clone https://github.com/rockchip-linux/u-boot.git
 
<pre>git clone https://github.com/rockchip-linux/u-boot.git
 
</pre>
 
</pre>
 +
  
 
= Supported Devices =
 
= Supported Devices =
Line 23: Line 24:
 
Upstream U-Boot support Rockchip SoCs:
 
Upstream U-Boot support Rockchip SoCs:
  
RK3036, RK3188, [[RK3288|RK3288]], [[RK3328|RK3328]], [[RK3399|RK3399]]
+
RK3036, RK3188,&nbsp;[http://opensource.rock-chips.com/wiki_RK3288 RK3288],&nbsp;[http://opensource.rock-chips.com/wiki_RK3328 RK3328],&nbsp;[http://opensource.rock-chips.com/wiki_RK3399 RK3399]
  
&nbsp;
+
*RK3036 boards supported:
  
*RK3036 boards supported:
+
#EVB RK3036 - use evb-rk3036 configuration  
<ol style="margin-left: 40px;">
+
#Kylin - use kylin_rk3036 configuration  
<li>EVB RK3036 - use evb-rk3036 configuration</li>
 
<li>Kylin - use kylin_rk3036 configuration</li>
 
</ol>
 
  
 
*RK3288 boards supported:  
 
*RK3288 boards supported:  
<ol style="margin-left: 40px;">
+
 
<li>EVB RK3288 - use evb-rk3288 configuration</li>
+
#EVB RK3288 - use evb-rk3288 configuration  
<li>Fennec RK3288 - use fennec-rk3288 configuration</li>
+
#Firefly RK3288 - use firefly-rk3288 configuration  
<li>Firefly RK3288 - use firefly-rk3288 configuration</li>
+
#Hisense Chromebook - use chromebook_jerry configuration  
<li>Hisense Chromebook - use chromebook_jerry configuration</li>
+
#Miniarm RK3288 - use miniarm-rk3288 configuration  
<li>Miniarm RK3288 - use miniarm-rk3288 configuration</li>
+
#PopMetal RK3288 - use popmetal-rk3288 configuration  
<li>PopMetal RK3288 - use popmetal-rk3288 configuration</li>
+
#Radxa Rock 2 - use rock2 configuration  
<li>Radxa Rock 2 - use rock2 configuration</li>
+
#ASUS Tinker  
<li>ASUS Tinker</li>
 
</ol>
 
  
 
*RK3188 boards&nbsp;supported:  
 
*RK3188 boards&nbsp;supported:  
<ol style="margin-left: 40px;">
+
 
<li>Radxa Rock - use rock&nbsp;configuration</li>
+
#Radxa Rock - use rock&nbsp;configuration  
</ol>
 
  
 
*RK3328 boards&nbsp;supported:  
 
*RK3328 boards&nbsp;supported:  
<ol style="margin-left: 40px;">
+
 
<li>EVB RK3328 - use evb-rk3328 configuration</li>
+
#EVB RK3328 - use evb-rk3328 configuration  
</ol>
 
  
 
*RK3399 boards&nbsp;supported:  
 
*RK3399 boards&nbsp;supported:  
<ol style="margin-left: 40px;">
 
<li>EVB RK3399 - use evb-rk3399 configuration</li>
 
</ol>
 
 
&nbsp;
 
 
 
= Configure U-Boot =
 
 
First you need to choose a correct defconfig for your board;
 
 
When you have determined what <board_name> you want to build, configure:
 
<pre>make CROSS_COMPILE=arm-linux-gnueabi-&nbsp;<board_name>_defconfig</pre>
 
 
You may need to change the U-Boot function/feature support by modify the defconfig file or,
 
 
there is also menuconfig to play with settings if you feel like it:
 
<pre>make CROSS_COMPILE=arm-linux-gnueabi- menuconfig</pre>
 
 
&nbsp;
 
 
&nbsp;
 
 
= Build U-Boot =
 
  
 +
#EVB RK3399 - use evb-rk3399 configuration
  
== Get a toolchain ==
+
= Get a toolchain =
  
 
If you haven't done so before, get a suitable&nbsp;toolchain&nbsp;installed and add it&nbsp;to your PATH.
 
If you haven't done so before, get a suitable&nbsp;toolchain&nbsp;installed and add it&nbsp;to your PATH.
Line 93: Line 64:
 
</pre>
 
</pre>
  
&nbsp;
+
Note that the latest U-Boot require version gcc-5.0 and later, we recommand to use linaro 6.3.1.
 +
<pre>https://github.com/rockchip-linux/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.git</pre>
 +
<pre>https://github.com/rockchip-linux/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.git</pre>
  
== Build ==
+
= Build U-Boot =
  
For armv7:
+
== Configure U-Boot ==
<pre>make CROSS_COMPILE=arm-linux-gnueabi-</pre>
 
  
or for ARM64:
+
First you need to choose a correct defconfig for your board;
<pre>make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-</pre>
 
  
In order to support debug in ARM DS-5, you may need add ctags in make command:
+
When you have determined what <board_name> you want to build, configure:
<pre>CFLAGS='-gdwarf-3'</pre>
+
<pre>make CROSS_COMPILE=arm-linux-gnueabi- <board_name>_defconfig</pre>
  
 +
You may need to change the U-Boot function/feature support by modify the defconfig file or,
  
 
+
there is also menuconfig to play with settings if you feel like it:
= Istall U-Boot =
+
<pre>make CROSS_COMPILE=arm-linux-gnueabi- menuconfig
 
+
</pre>
Rockchip SoCs's bootrom need special format named IDBlock at special offset 0x64 block for boot, so we need to package&nbsp;SPL(or Rockchip miniloader) &nbsp;in IDB format.
 
 
 
Rockchip bootrom supports SPL back to bootrom and bootrom load the U-Boot, so the SPL for Rockchip SoCs can option to back to bootrom, usually decided by if the IRAM is enough&nbsp;for driver to load U-Boot.
 
  
 
&nbsp;
 
&nbsp;
  
 +
== Buid Rockchip U-Boot ==
  
== Using U-Boot SPL ==
+
For&nbsp;convenience, Rockchip provide a &nbsp;script 'make.sh' to make it easy to get everything before kernel, this script need toolchain and [https://github.com/rockchip-linux/rkbin rkbin] support.
 +
<pre>├── prebuilts
 +
│  └── gcc
 +
│      └── linux-x86
 +
│          ├── aarch64
 +
│          └── arm
 +
├── rkbin
 +
├── u-boot</pre>
  
After build&nbsp;complete, U-Boot with SPL support will generate a spl folder with <var>u-boot-spl.bin</var>&nbsp;inside
+
expample for build rk3399:
<pre>tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl.bin  rk3288_idb.img</pre>
+
<pre>./make.sh rk3399</pre>
  
'''This image is supposed to flash to offset 0x64.'''
+
and&nbsp;use './make.sh -h' for more option.
  
For&nbsp;<var>u-boot.bin</var>, it's different for SPL back to bootrom or not, if enable&nbsp;CONFIG_ROCKCHIP_SPL_BACK_TO_BROM, we can append the U-Boot to IDB data:
+
The output will including pre-loader, trust and u-boot image which is ready to use with rockchip upgrade tool,&nbsp;
<pre>cat u-boot.bin >> rk3288_idb.img</pre>
+
<pre>u-boot/
 +
├── rk3399_loader_v1.09.112.bin
 +
├── trust.img
 +
└── uboot.img</pre>
  
<code>If&nbsp;</code>CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&nbsp;not enabled, no more package operation is need for u-boot-dtb.bin, and it need to flalsh to 0x200 which is decide by&nbsp;CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR.
+
&nbsp;
  
== Support ATF with SPL FIT image ==
+
== Build Upstream U-Boot ==
  
== Using Rockchip miniloader ==
+
This is common and available for both Upstream U-Boot and Rockchip U-Boot.
  
Alternatively, you can use Rockchip miniloader and U-Boot instead which do not need SPL.
+
For armv7:
 +
<pre>make CROSS_COMPILE=arm-linux-gnueabi-</pre>
  
The miniloader is package as IDBlock, and the u-boot.bin need to package with rockchip tool:
+
or for ARM64:
<pre>loaderimage --pack --uboot u-boot.bin rk3288_uboot.img</pre>
+
<pre>make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-</pre>
  
According to the [[Partitions|partitions]] definition, this output should write to offset 0x4000.
+
In order to support debug symbol in ARM DS-5, you may need add ctags in make command:
 
+
<pre>CFLAGS='-gdwarf-3'</pre>
= Boot =
 
 
 
 
 
== Boot from eMMC ==
 
 
 
=== Get Tool and Firmware ===
 
 
 
[http://rockchip.wikidot.com/tools tools]
 
 
 
 
 
=== Flash&nbsp;to the board by USB ===
 
 
 
In order to&nbsp;flash&nbsp;by USB,you must get your board into ROM boot mode, either by erasing<br/> your MMC or holding the maskrom button when you boot the board.
 
 
 
 
 
 
 
==== RK3288(upgrade_tool) ====
 
 
 
To create a suitable image and flash&nbsp;it to the board:<br/> default&nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM
 
 
 
<pre>tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out<br/> cat u-boot-dtb.bin >> out<br/> sudo upgrade_tool db&nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin<br/> sudo upgrade_tool wl 64 out<br/> sudo upgrade_tool rd</pre>
 
 
 
<br/> others&nbsp;: firefly(Recommend using sd card)
 
 
 
==== rk3036 ====
 
 
 
To create a suitable image and write it to the board:
 
<pre><code>tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out
 
cat u-boot-dtb.bin >> out
 
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin
 
sudo upgrade_tool wl 64 out
 
sudo upgrade_tool rd</code>
 
</pre>
 
 
 
==== RK3399 ====
 
<pre><code>cd ..
 
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini
 
cd uboot
 
 
 
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img
 
 
 
sudo upgrade_tool UL  ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin
 
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt
 
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt
 
sudo upgrade_tool rd</code>
 
</pre>
 
 
 
 
 
=== &nbsp;To flash kernel and rootfs ===
 
 
 
Enter into the uboot and issue the following command on uboot: (otg should be connected)
 
<pre><code>gpt write mmc 0 $partitions
 
ums 0 mmc 0</code>
 
</pre>
 
 
 
<br/> Now the board will act as an USB-drive.<br/> In host: (assuming sdb is ur device)
 
<pre><code>sudo mkfs.fat /dev/sdb6</code>
 
</pre>
 
  
<br/> Copy zimage and dts file to dev/sdb6
+
The output including u-boot.bin, spl/u-boot-spl.bin, tpl/u-boot-tpl.bin at this step, and you need to package it with mkimage tool before use with rockchip upagrade tool. Get detail at&nbsp;[http://opensource.rock-chips.com/wiki_Boot_option boot option].
<pre><code>cp arch/arm/boot/zImage /media/chen/9F35-9565/
 
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb</code>
 
</pre>
 
  
Add extlinux/extlinux.conf to dev/sdb6<br/> (Please notice "mmcblk2p7" and "115200n8" is decide on your chip, Please refer to&nbsp;[http://rockchip.wikidot.com/linux-user-guide#toc1 config table])
+
'''Support ATF with SPL FIT image'''
<pre><code>label kernel-4.4
 
    kernel /zImage
 
    fdt /rk3288-fennec.dtb
 
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init</code>
 
</pre>
 
  
<br/> To flash rootfs
+
For trust support in SPL, we are using FIT image with 'mkimage' cmd in Makefile and its script defined in defconfig:
<pre><code>sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc</code></pre>
+
<pre>make u-boot.itb</pre>
  
== Boot from SD/TF Card ==
+
Note: please copy the trust binary(optee.bin or bl31.elf from rkbin project) to u-boot root directory and rename it to tee.bin(armv7) or bl31.elf(armv8).
  
 +
The output u-boot.itb is a its based package including u-boot-nodtb.bin, board.dtb, and trust binaries which can be used directly with upgrade tool.
 +
<pre>├── u-boot
 +
│  ├── u-boot.bin
 +
│  ├── u-boot.itb
 +
│  ├── spl
 +
│  │  └── u-boot-spl.bin
 +
│  └── tpl
 +
│      └── u-boot-tpl.bin</pre>
  
=== Creating Image ===
+
= Install U-Boot =
  
Follow&nbsp;[http://rockchip.wikidot.com/linux-user-guide linux-user-guide]&nbsp;to build kernel and U-Boot.<br/> get uboot-spl.img and u-boot-dtb.img
+
See&nbsp;[http://opensource.rock-chips.com/wiki_Boot_option boot option]&nbsp;about how to
<pre><code>tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img</code>
 
</pre>
 
  
=== <br/> <var>build boot.img</var> ===
+
- package the available binaries
<pre><code>sudo dd if=/dev/zero of=boot.img bs=1M count=128
 
sudo mkfs.fat boot.img
 
mkdir boot
 
sudo mount  boot.img boot
 
sudo cp zImage boot
 
sudo cp rk3288-fennec.dtb boot
 
sudo mkdir boot/extlinux
 
sudo cp extlinux.conf boot/extlinux
 
sudo umount boot</code>
 
</pre>
 
  
Download rootfs image and rename it
+
- flash and boot from eMMC/SD card.
<pre><code>mv linaro-rootfs.img rootfs.img</code>
 
</pre>
 
  
=== Making a SD Card for updating ===
 
 
Download&nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&nbsp;and build.
 
<pre><code>sh ./mk-initrd.sh</code>
 
</pre>
 
 
Format SD card
 
<pre><code>chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb
 
GPT fdisk (gdisk) version 0.8.8
 
 
Partition table scan:
 
  MBR: protective
 
  BSD: not present
 
  APM: not present
 
  GPT: present
 
 
Found valid GPT with protective MBR; using GPT.
 
 
Command (? for help): o
 
This option deletes all partitions and creates a new protective MBR.
 
Proceed? (Y/N): y
 
 
Command (? for help): n
 
Partition number (1-128, default 1): 1
 
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192
 
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}:
 
Current type is 'Linux filesystem'
 
Hex code or GUID (L to show codes, Enter = 8300):
 
Changed type of partition to 'Linux filesystem'
 
 
Command (? for help): w
 
 
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
 
PARTITIONS!!
 
 
Do you want to proceed? (Y/N): y
 
OK; writing new GUID partition table (GPT) to /dev/sdc.
 
Warning: The kernel is still using the old partition table.
 
The new table will be used at the next reboot.
 
The operation has completed successfully.</code>
 
</pre>
 
<pre><code>sudo umount /dev/sdb1
 
sudo mkfs.fat /dev/sdb1</code>
 
</pre>
 
<pre><code>tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&&
 
sudo dd if=out of=/dev/sdb seek=64&&sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256</code>
 
</pre>
 
 
Copy zimage, dts and ramdisk to /dev/sdb1
 
<pre><code>cp arch/arm/boot/zImage /media/chen/9F35-9565/
 
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb
 
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/</code>
 
</pre>
 
 
Add extlinux/extlinux.conf to /dev/sdb1
 
<pre><code>label kernel-4.4
 
    kernel /zImage
 
    fdt /rk3288-fennec.dtb
 
    initrd /initrd.img
 
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152</code>
 
</pre>
 
 
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&nbsp;to /dev/sdb1
 
<pre><code>mkdir /media/chen/9F35-9565/update
 
cp u-boot-dtb.img /media/chen/9F35-9565/update
 
cp uboot-spl.img /media/chen/9F35-9565/update
 
cp boot.img /media/chen/9F35-9565/update
 
cp rootfs.img /media/chen/9F35-9565/update
 
cp update.sh /media/chen/9F35-9565/update</code>
 
</pre>
 
  
=== Updating the board ===
 
  
Boot the board and it will flash image to eMMC
+
= Boot cmd =
  
== Boot from USB-Disk ==
+
Rockchip U-Boot supports image type:
  
== Netboot/TFTP ==
+
Android boot(boot_android), Rockchip RKIMG boot(boot_rockchip) and LInux distro boot(distro_bootcmd).
  
== Distro boot ==
+
Upstream U-Boot supports image type::
  
= U-Boot download =
+
Linux distro boot(distro_bootcmd).
  
In U-Boot, there are multi way to update image for system, you can chose any of one easy use for you.
+
= Firmware download in U-Boot =
  
== fastboot ==
+
In U-Boot, there are multi way to update image into emmc via U-Boot, you can chose any of one easy use for you.
  
See [[fastboot]]
+
fastboot:&nbsp;See&nbsp;[http://opensource.rock-chips.com/wiki_Fastboot fastboot]
  
== ums ==
+
rockusb: See [[Rockusb|rockusb]]

Latest revision as of 06:39, 4 September 2019

Download U-Boot

Upstream U-Boot

You can clone the u-boot repository by running:

git clone https://gitlab.denx.de/u-boot/u-boot.git

Alternatively you can use u-boot-rockchip instead which may with some patches not get in mainline:

git clone https://gitlab.denx.de/u-boot/custodians/u-boot-rockchip.git

 

Rockchip U-Boot

You can clone the u-boot repository by running:

git clone https://github.com/rockchip-linux/u-boot.git


Supported Devices

Upstream U-Boot support Rockchip SoCs:

RK3036, RK3188, RK3288RK3328RK3399

  • RK3036 boards supported:
  1. EVB RK3036 - use evb-rk3036 configuration
  2. Kylin - use kylin_rk3036 configuration
  • RK3288 boards supported:
  1. EVB RK3288 - use evb-rk3288 configuration
  2. Firefly RK3288 - use firefly-rk3288 configuration
  3. Hisense Chromebook - use chromebook_jerry configuration
  4. Miniarm RK3288 - use miniarm-rk3288 configuration
  5. PopMetal RK3288 - use popmetal-rk3288 configuration
  6. Radxa Rock 2 - use rock2 configuration
  7. ASUS Tinker
  • RK3188 boards supported:
  1. Radxa Rock - use rock configuration
  • RK3328 boards supported:
  1. EVB RK3328 - use evb-rk3328 configuration
  • RK3399 boards supported:
  1. EVB RK3399 - use evb-rk3399 configuration

Get a toolchain

If you haven't done so before, get a suitable toolchain installed and add it to your PATH.

In Ubuntu 14.04, you can use below command to install cross compiler for armv7:

sudo apt-get install gcc-arm-linux-gnueabi

Or for ARM64

sudo apt-get install gcc-aarch64-linux-gnu

Note that the latest U-Boot require version gcc-5.0 and later, we recommand to use linaro 6.3.1.

https://github.com/rockchip-linux/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.git
https://github.com/rockchip-linux/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.git

Build U-Boot

Configure U-Boot

First you need to choose a correct defconfig for your board;

When you have determined what <board_name> you want to build, configure:

make CROSS_COMPILE=arm-linux-gnueabi- <board_name>_defconfig

You may need to change the U-Boot function/feature support by modify the defconfig file or,

there is also menuconfig to play with settings if you feel like it:

make CROSS_COMPILE=arm-linux-gnueabi- menuconfig

 

Buid Rockchip U-Boot

For convenience, Rockchip provide a  script 'make.sh' to make it easy to get everything before kernel, this script need toolchain and rkbin support.

├── prebuilts
│   └── gcc
│       └── linux-x86 
│           ├── aarch64
│           └── arm
├── rkbin
├── u-boot

expample for build rk3399:

./make.sh rk3399

and use './make.sh -h' for more option.

The output will including pre-loader, trust and u-boot image which is ready to use with rockchip upgrade tool, 

u-boot/
├── rk3399_loader_v1.09.112.bin
├── trust.img
└── uboot.img

 

Build Upstream U-Boot

This is common and available for both Upstream U-Boot and Rockchip U-Boot.

For armv7:

make CROSS_COMPILE=arm-linux-gnueabi-

or for ARM64:

make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-

In order to support debug symbol in ARM DS-5, you may need add ctags in make command:

CFLAGS='-gdwarf-3'

The output including u-boot.bin, spl/u-boot-spl.bin, tpl/u-boot-tpl.bin at this step, and you need to package it with mkimage tool before use with rockchip upagrade tool. Get detail at boot option.

Support ATF with SPL FIT image

For trust support in SPL, we are using FIT image with 'mkimage' cmd in Makefile and its script defined in defconfig:

make u-boot.itb

Note: please copy the trust binary(optee.bin or bl31.elf from rkbin project) to u-boot root directory and rename it to tee.bin(armv7) or bl31.elf(armv8).

The output u-boot.itb is a its based package including u-boot-nodtb.bin, board.dtb, and trust binaries which can be used directly with upgrade tool.

├── u-boot 
│   ├── u-boot.bin
│   ├── u-boot.itb
│   ├── spl
│   │   └── u-boot-spl.bin
│   └── tpl 
│       └── u-boot-tpl.bin

Install U-Boot

See boot option about how to

- package the available binaries

- flash and boot from eMMC/SD card.


Boot cmd

Rockchip U-Boot supports image type:

Android boot(boot_android), Rockchip RKIMG boot(boot_rockchip) and LInux distro boot(distro_bootcmd).

Upstream U-Boot supports image type::

Linux distro boot(distro_bootcmd).

Firmware download in U-Boot

In U-Boot, there are multi way to update image into emmc via U-Boot, you can chose any of one easy use for you.

fastboot: See fastboot

rockusb: See rockusb