Flash Genio 1200-EVK
This guide shows how to “flash”(write) the system image into the non-volatile flash memory of Genio 1200-EVK. The flashing process is performed over a USB connection between the target board and the host computer containing the image.
In order to write the on-board storage with AIoT Tools, you need to set the SoC in download mode, which allows AIoT Tools to transfer a download agent binary to the SRAM of SoC. The download agent then provides a fastboot interface for subsequent image transfer and storage write operations.
Prerequisites
Prepare the following items:
A Linux or Windows host PC with AIoT Tools installed
Genio 1200-EVK and its 12V Power Adapter. Please note that P1V1 version of Genio 1200-EVK uses a different DC Jack from Genio 700-EVK.
A USB-C cable for downloading images to on-board storage
Step 1. Connect board to host PC
Warning
Make sure you are using the accompanied 12V power adapter for Genio 1200-EVK. Using an adapter with different output voltage results in unstable system and could damage your board.
Plug the 12V power jack to the DC JACK IN port. Once connected to power source, the LED_DC and LED_PWR should light up, as shown below:
Find the USB-C D/L port (USB Type-C) on Genio 1200-EVK, and connect it to host PC with a micro USB cable:
Note
The EVK board would power on when the Type-C D/L port is connected, regardless of the state of the auto power on jumper pin J51.
Step 2. Launch genio-flash Tool
Change working directory to the image directory.
If you built rity-demo-image
from source, the image is default in:
cd $BUILD_DIR/tmp/deploy/images/genio-1200-evk
If you are using a pre-built image, please change to the directory that
you’ve extracted the pre-built image. It should contain a partitions.json
file.
After switching into the image directory, run following command:
genio-flash --load-dtbo gpu-mali.dtbo --load-dtbo apusys.dtbo --load-dtbo video.dtbo
By default genio-flash
will use the prefix rity-demo-image
to search for files under image directory.
If you are building other images, use -i
option to specify different prefix. For example:
cd $BUILD_DIR/tmp/deploy/images/genio-1200-evk
genio-flash -i rity-bsp-image --load-dtbo gpu-mali.dtbo --load-dtbo apusys.dtbo --load-dtbo video.dtbo
Note
Make sure you load the gpu-mali.dtbo
, apusys.dtbo
, and video.dtbo
.
GPU, APU and video codec does not work if you omitting these overlays.
genio-flash
should print logs to the terminal similar to this:
AIoT Tools: <tool-version>
Yocto Image:
name: Rity Demo Image (rity-demo-image)
distro: Rity Demo Layer <iot-yocto-version> (rity-demo)
codename: kirkstone
machine: genio-1200-evk
overlays: ['gpu-mali.dtbo', 'apusys.dtbo', 'video.dtbo']
Looking for MediaTek SoC matching USB device 0e8d:0003
The <tool-version>
and <iot-yocto-version>
strings change according to the tool version and IoT Yocto version.
Once you see Looking for MediaTek SoC matching USB device 0e8d:0003
prompt, proceed to next step.
Step 3. Enter Download Mode
Locate the push buttons on the board:
Follow these steps to enter download mode:
Press and keep pressing the Download button.
Press and release the RST button.
Hold the Download button until you see the log
Erasing 'mmc0'
message, as shown below:Looking for MediaTek SoC matching USB device 0e8d:0003 Opening COM33 using baudate=115200 Connected to MediaTek MT8195 SoC Sending bootstrap to address: 0x201000 Jumping to bootstrap at address 0x201000 in AArch64 mode erasing mmc0 < waiting for any device > Erasing 'mmc0' (bootloader) request sz: 0xe8f800000, real erase len: 0x0 OKAY [ 9.627s] Finished. Total time: 9.655s erasing mmc0boot0 Erasing 'mmc0boot0' (bootloader) request sz: 0x800000, real erase len: 0x800000 OKAY [ 0.013s] Finished. Total time: 0.018s erasing mmc0boot1 Erasing 'mmc0boot1' (bootloader) request sz: 0x800000, real erase len: 0x800000 OKAY [ 0.004s] Finished. Total time: 0.010s flashing mmc0=rity-demo-image-genio-1200-evk.wic.img Sending sparse 'mmc0' 1/9 (262140 KB) OKAY [ 6.440s] Writing 'mmc0' OKAY [ 9.393s] Sending sparse 'mmc0' 2/9 (262140 KB) OKAY [ 6.332s] Writing 'mmc0' OKAY [ 10.185s] Sending sparse 'mmc0' 3/9 (230376 KB) OKAY [ 5.607s] Writing 'mmc0' OKAY [ 8.196s] Sending sparse 'mmc0' 4/9 (262140 KB) OKAY [ 6.362s] Writing 'mmc0' OKAY [ 9.354s] Sending sparse 'mmc0' 5/9 (262140 KB) OKAY [ 6.401s] Writing 'mmc0' OKAY [ 10.089s] Sending sparse 'mmc0' 6/9 (262140 KB) OKAY [ 6.413s] Writing 'mmc0' OKAY [ 9.291s] Sending sparse 'mmc0' 7/9 (242392 KB) OKAY [ 5.924s] Writing 'mmc0' OKAY [ 8.585s] Sending sparse 'mmc0' 8/9 (262140 KB) OKAY [ 6.417s] Writing 'mmc0' OKAY [ 9.288s] Sending sparse 'mmc0' 9/9 (129780 KB) OKAY [ 3.159s] Writing 'mmc0' OKAY [ 4.605s] Finished. Total time: 132.157s flashing mmc0boot0=bl2.img Sending 'mmc0boot0' (205 KB) OKAY [ 0.007s] Writing 'mmc0boot0' OKAY [ 0.026s] Finished. Total time: 0.054s flashing mmc0boot1=u-boot-env.bin Sending 'mmc0boot1' (4 KB) OKAY [ 0.002s] Writing 'mmc0boot1' OKAY [ 0.015s] Finished. Total time: 0.028s Rebooting OKAY [ 0.002s] Finished. Total time: 0.002s
and then you can release the Download button.