J6X USB下载功能说明
======================================

J6X USB支持DFU和Fastboot两种下载方式，Bootrom、HSM、SBL、SPL支持DFU下载方式，
U-Boot支持Fastboot下载（烧录）。

DFU简介及其使用方式
----------------------------

DFU的全称是"Device Firmware Upgrade"，翻译为设备固件升级。
DFU是一种协议和机制，用于在嵌入式设备（如微控制器、嵌入式系统等）之间进行固件升级。
通过DFU，用户可以更新设备的固件，添加新功能、修复错误或改进性能。DFU通常应用于各种嵌入式系统，包括在智能手机、电子设备和物联网设备等中。

DFU使用
::::::::::::::::

使用DFU需要主机安装dfu-util程序，以SBL为例，当SBL进入USB下载模式后，
host端使用dfu-util可以看到对应的DFU设备，选择对应的alt接口即可烧录对应的镜像，具体操作参考 :ref:`DFU <dfu_usage>`。

.. code-block:: bash

    dfu-util -l                 # 列出DFU设备支持的配置(alt info)
    dfu-util -a 0 -D disk.img   # 选择alt接口烧录对应的镜像
    dfu-util -a 0 -R            # 退出DFU设备


Fastboot简介及其使用方式
----------------------------------------

Fastboot是一种用于在Android设备上进行固件刷写的协议和工具。
它允许用户通过USB连接将新的固件、引导加载程序、系统镜像等文件传输到Android设备的存储器中。Fastboot主要用于Android设备的开发、调试和刷写固件。
在Fastboot模式下，Android 设备可以通过USB连接到计算机，并且计算机上安装了Fastboot工具。
用户可以使用Fastboot命令来执行各种操作，如刷写固件、解锁引导加载程序、重启设备等。
这种方式对于Android开发者和设备制造商来说是一种便捷的方式，使他们能够轻松地测试和部署软件。

Fastboot使用
::::::::::::::::

J6X支持U-Boot下使用Fastboot烧录eMMC、Flash、UFS介质。U-Boot下使用fastboot 0进入USB烧录模式。

设备端进入Fastboot USB下载模式后，host端使用如下命令烧录。详情可参考 :ref:`Fastboot(usb) <fastboot_usb>`。

.. code-block:: bash

    fastboot oem interface:blk          # 烧录 eMMC or UFS
    fastboot flash boot_a boot.img      # 烧录 boot 分区
    fastboot flash system_a system.img  # 烧录 system 分区
