> For the complete documentation index, see [llms.txt](https://amobile-solutions.gitbook.io/yocto-developer-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://amobile-solutions.gitbook.io/yocto-developer-guide/getting-started/quickstart/flash-image-to-board.md).

# Flash Image to Board

### Launch **genio-flash** Tool

To utilize the `genio-flash` tool for deploying the `rity-demo-image`, follow these steps:

1. **Navigate to the Image Directory**: If you have built the `rity-demo-image` from the source, locate it in:

   ```
   $BUILD_DIR/tmp/deploy/images/sd520
   ```
2. **Use the Default Configuration**:

   Execute the following command to load the necessary device tree overlays:

   ```
   $ genio-flash
   ```

   These overlays provide additional board features. You can specify multiple overlays using multiple `--load-dtbo` options.
3. **List Available Overlays**:

   To view available overlays, use:

   ```
   $ genio-flash --list-dtbo
   ```
4. **Example Log Output**:

   Upon running `genio-flash`, you should see logs similar to:

   ```
   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:  <machine>
           overlays: ['gpu-mali.dtbo', 'apusys.dtbo', 'video.dtbo', 'camera-hi846.dtbo']

   Looking for MediaTek SoC matching USB device 0e8d:0003
   ```

   Note: `<tool-version>`, `<iot-yocto-version>`, and `<machine>` adapt based on the tool, Yocto version, and hardware in use.
5. **Proceed**: Once you receive the "Looking for MediaTek SoC matching USB device 0e8d:0003" message, you can move on

### Flash image

Follow these steps to update image to the SBC-MB510:

<figure><img src="https://3619554908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmAO6HInc2Typbuq3W42l%2Fuploads%2FZR4z0PiRneCQBaeXgzTI%2Fimage.png?alt=media&amp;token=d4b3ea14-c8b7-45a8-84f9-ec948829889a" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3619554908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmAO6HInc2Typbuq3W42l%2Fuploads%2FmAPNwan9TRjgysS9HIsi%2Fimage.png?alt=media&amp;token=6a4ae766-18eb-4583-a203-fd66d072d8be" alt="" width="563"><figcaption></figcaption></figure>

1. Keep shorting the <mark style="color:orange;">**Download**</mark> <mark style="color:orange;"></mark><mark style="color:orange;">point (Orange)</mark> and <mark style="color:$info;">the</mark> <mark style="color:$primary;">GND point (Cyan)</mark>.
2. Connect a Type-C USB cable between the host PC <mark style="color:red;">(Red).</mark>
3. Short the <mark style="color:orange;">**Download**</mark> <mark style="color:orange;"></mark><mark style="color:orange;">point</mark> until you see the log `Erasing 'mmc0'` message, as shown below:

You should see flashing process start. A typical successful log looks like this:

```
$ genio-flash --load-dtbo gpu-mali.dtbo --load-dtbo video.dtbo
Genio Tools: v1.4.2
Yocto Image:
        name:     Rity Demo Image (rity-demo-image)
        distro:   Rity Demo Layer 24.0-release (rity-demo)
        codename: kirkstone
        machine:  sd510
        overlays: ['video.dtbo', 'gpu-mali.dtbo', 'apusys.dtbo', 'camera-hi846.dtbo']

WARNING:aiot:No 'ftdi-cbus' device found
WARNING:aiot:Unable to find and reset the board. Possible causes are:
1. This is not a Genio 350/700 EVK, nor a Pumpkin board.
2. The board port UART0 is not connected.
3. The UART0 port is being opened by another tool, such as TeraTerm on Windows.
You can now manually reset the board into DOWNLOAD mode.

INFO:aiot:Continue flashing...
Looking for MediaTek SoC matching USB device 0e8d:0003
Opening /dev/ttyACM0 using baudrate=115200
Connected to MediaTek SoC: hw_code[0x8188]
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 [  0.444s]
Finished. Total time: 0.448s
erasing mmc0boot0
Erasing 'mmc0boot0'                                (bootloader) request sz: 0x400000, real erase len: 0x400000
OKAY [  0.006s]
Finished. Total time: 0.010s
erasing mmc0boot1
Erasing 'mmc0boot1'                                (bootloader) request sz: 0x400000, real erase len: 0x400000
OKAY [  0.006s]
Finished. Total time: 0.010s
flashing mmc0=rity-demo-image-sd510.wic.img
Sending sparse 'mmc0' 1/13 (234740 KB)             OKAY [  5.804s]
Writing 'mmc0'                                     OKAY [  9.255s]
Sending sparse 'mmc0' 2/13 (262140 KB)             OKAY [  7.183s]
Writing 'mmc0'                                     OKAY [ 10.705s]
Sending sparse 'mmc0' 3/13 (262140 KB)             OKAY [  6.572s]
Writing 'mmc0'                                     OKAY [ 10.560s]
Sending sparse 'mmc0' 4/13 (262140 KB)             OKAY [  7.199s]
Writing 'mmc0'                                     OKAY [ 10.189s]
Sending sparse 'mmc0' 5/13 (243844 KB)             OKAY [  6.717s]
Writing 'mmc0'                                     OKAY [  9.546s]
Sending sparse 'mmc0' 6/13 (262140 KB)             OKAY [  6.986s]
Writing 'mmc0'                                     OKAY [ 10.242s]
Sending sparse 'mmc0' 7/13 (262140 KB)             OKAY [  6.741s]
Writing 'mmc0'                                     OKAY [ 10.268s]
Sending sparse 'mmc0' 8/13 (261684 KB)             OKAY [  6.725s]
Writing 'mmc0'                                     OKAY [ 11.043s]
Sending sparse 'mmc0' 9/13 (262140 KB)             OKAY [  6.393s]
Writing 'mmc0'                                     OKAY [ 10.243s]
Sending sparse 'mmc0' 10/13 (230668 KB)            OKAY [  5.766s]
Writing 'mmc0'                                     OKAY [  8.995s]
Sending sparse 'mmc0' 11/13 (262140 KB)            OKAY [  6.465s]
Writing 'mmc0'                                     OKAY [ 10.219s]
Sending sparse 'mmc0' 12/13 (262140 KB)            OKAY [  6.508s]
Writing 'mmc0'                                     OKAY [ 10.224s]
Sending sparse 'mmc0' 13/13 (233752 KB)            OKAY [  6.209s]
Writing 'mmc0'                                     OKAY [  9.120s]
Finished. Total time: 215.890s
flashing mmc0boot0=bl2.img
Sending 'mmc0boot0' (273 KB)                       OKAY [  0.010s]
Writing 'mmc0boot0'                                OKAY [  0.019s]
Finished. Total time: 0.035s
flashing mmc0boot1=u-boot-env.bin
Sending 'mmc0boot1' (4 KB)                         OKAY [  0.002s]
Writing 'mmc0boot1'                                OKAY [  0.006s]
Finished. Total time: 0.014s
Rebooting                                          OKAY [  0.002s]
Finished. Total time: 0.102s
```
