5.1. Using TFTP for Burning

Attention

Currently only supports TFTP burning on cv186ah / bm1688

5.1.1. Preparation Before Use

  1. Download TFTP software:

../_images/image5.png
  1. Prepare upgrade firmware, extract upgrade files directly to the TFTP directory as shown below:

../_images/image6.png ../_images/image7.png
  1. Configure PC and board to be in the same network segment

    • Connect PC’s network port to board’s LAN port using network cable

    • Configure PC’s IP to 192.168.150.100

    • Configure board’s IP to 192.168.150.10

    • Set IP by entering the following commands in uboot command line, remember to execute saveenv to save settings, as shown below:

../_images/image8.png ../_images/image9.png
  1. Test connectivity by pinging PC’s IP address directly in uboot, image below shows normal communication

../_images/image10.png
  1. Configure TFTP software

../_images/image11.png

5.1.2. Firmware Upgrade Process

  1. Check each firmware’s offset address and size in Flash

../_images/image12.png
  1. Download firmware from TFTP server to specified memory addresses

    • tftpboot 0x120000000 fip.bin

    • tftpboot 0x121000000 boot.emmc

    • tftpboot 0x123000000 rootfs.emmc

    • tftpboot 0x12D000000 gpt.img

  2. Load firmware from above memory addresses to specified emmc block positions

    • mmc dev 0 1 (# Select emmc and switch to boot partition)

    • mmc write 0x120000000 0x0 0x800 (Write fip.bin to emmc boot0 partition)

    • mmc dev 0 0 (# Select emmc and switch to user partition)

    • mmc write 0x121000000 0x0 0x4000 (Write boot.emmc to emmc user partition)

    • mmc write 0x123000000 0x4e00 0x40000 (Write rootfs.emmc to emmc user partition)

    • mmc write 0x12D000000 0x0 0x4000 (Write gpt.img to emmc user partition)

  3. Header Processing

Attention

  • When using firmware from the upgrade package, need to remove the first 128-byte header (for boot.emmc and rootfs.emmc headers, and for rootfs.emmc there’s also a 64-byte header every 16M after the initial 128-byte header)

  • When using firmware from the rawimages folder, no need to remove headers, but daily_build doesn’t have rawimages folder, it’s only available in self-compiled builds