Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Reverted from v. 11

...

Introduction

The following quick start guide provides background information about the SolidRun Hailo 15 SOM.

...

Date

Owner

Revision

Notes

Mikhail Anikin 

1.0

Initial release

Mikhail Anikin

1.1

Update flashing process

Mikhail Anikin

1.2

Add IIoT support

Mikhail Anikin

1.3

Update flashing process

Mikhail Anikin

1.4

Introducing SW update

Table of Contents

Table of Contents
maxLevel4
minLevel1maxLevel4
include
outlinefalse
indent
exclude
styledefault
excludetypelist
classprintabletrue
class

Hardware Setup

Product specifications

...

Hailo 15 with HummingBoard has two boot options: serial boot (for recovery) and eMMC boot (the main option). The S3 To select a boot option, the DIP switch needs to be modified to select a boot option.

...

Boot Mode

...

1

...

2

...

3

...

4

...

5

...

6

...

eMMC Boot

...

off

...

off

...

off

...

off

...

off

...

off

...

Serial Recovery mode

...

off

...

on

...

off

...

off

...

off

...

For more information, see HummingBoard Hailo 15 Boot Select

Generating Yocto image

The prebuilt artifacts are available here.

...

Artifact

Purpose

Target location

hailo15_scu_bl.bin

SCU Bootloader

QSPI Flash

hailo15_scu_fw.bin

SCU Firmware

QSPI Flash

scu_bl_cfg_a.bin, scu_bl_cfg_b.bin

SCU Configuration

QSPI Flash

customer_certificate.bin

Customer key certificate

QSPI Flash

u-boot.dtb.signed

U-Boot device tree

QSPI Flash

u-boot-initial-env

U-Boot environment

QSPI Flash

u-boot-spl.bin

U-Boot SPL

QSPI Flash

u-boot-tfa.itb

TF-A and U-Boot

eMMC Boot partition

fitImage

Linux kernel and device tree

eMMC Boot partition

core-image-minimal-hailo15-solidrun.ext4

RootFS

eMMC Root partition

core-image-minimal-hailo15-solidrun.wic

Full eMMC image that contains both partitions. It can be flashed with bmap-tools using the .bmap file

eMMC

hailo15_uart_recovery_fw.bin

Recovery firmware for reflashing QSPI

...

  1. Serial connection
    Please insert the micro USB into your device. Then, you can refer to Serial Connection to install the necessary serial connection software in Linux/Windows.

  2. Network connection
    The prebuilt image has a preset network configuration with a static IP 10.0.0.1. Connect your PC to the board with a 1GbE RJ45 patch cord and set the static IP of your PC interface to 10.0.0.2.

  3. Optional: Camera connection
    To evaluate the demo application, connect the MIPI-CSI camera to the Hailo 15 SOM MIPI-CSI interface before starting the boot.

  4. Power the board
    Plug in a power supply, and the board will start booting. You will see the boot log in the serial terminal:

...

  1. Run the gstreamer pipeline to start receiving a stream.

On your pc In a bash terminal or Windows cmd run:

...

  1. Run the demo application on the target Hailo15 EVK:

Code Block
root@hailo15:~# ./apps/detection/detection.sh

...

Note: VLC inserts its own 1s latency into the stream during the network cashing. You can decrease this latency in the settings.

  • Go to Tools > Preferences.

  • Show settings: select All at the bottom left to switch to the advanced preferences.

  • Under Input / Codecs, find Network.

  • Locate Network caching (ms) and reduce its value. The default is typically around 1000 ms (1 second). You might try lowering it to 100-300 ms, but be aware that too low a value can lead to stream instability or increased packet loss.

Flashing an eMMC

By default, when Linux is booted from eMMC, the eMMC root partition is mounted, which makes it difficult to reflash. The u-boot menu has special entries that allow you to reflash eMMC from the TFTP server on your computer.

...

Firmware update process

Updating firmware with SWUpdate (recommended)

A part of the yocto build is a software update package (.swu). This image contains a full rootfs image, bootloaders, and qSPI content and will automatically flash all the artifacts in places.

  1. Run an HTTP server on port 80 in the directory with the update image (.swu)

Code Block
sudo python3 -m http.server 80
  1. Reset the board. In the u-boot menu, select

...

The Board will grub a new image from the TFTP server and flash it to the eMMC.

  1. SWUpdate

Code Block
  *** U-Boot Boot Menu ***

     Boot from eMMC
     Boot to flashing ramdisk
*    SWUpdate
     U-Boot console


  Press UP/DOWN to move, ENTER to select, ESC/CTRL+C to quit
Info

If there is no SWUpdate item in the menu or an update was unsuccessful for any reason, please proceed to the next chapter “Manual firmware reflashing“.

Info

A/B updates will be added in future firmware releases.

  1. The board will boot, load the update image from IP 10.0.0.2, port 80 and update all the firmware components.

Manual firmware reflashing

Flashing QSPI flash

Reflashing QSPI is only possible under Linux. View filenamehailo15_board_tools-1.2.1-py3-none-any.whl

Note

Please make sure that u-boot-tools are installed in your system:

  • For Ubuntu/Debian: sudo apt-get install u-boot-tools

  • For Fedora/RHEL: sudo dnf install uboot-tools

  1. Download the flashing tool and install it into your system.

Code Block
python3 -m pip install hailo15_board_tools-1x.2x.1x-py3-none-any.whl
  1. Set the S3 DIP switch to the Serial download mode:

...

1

...

2

...

3

...

4

...

5

...

6

...

off

...

on

...

off

...

off

...

off

...

  1. .

  2. Close the serial terminal on your PC.

  3. Reset the board.

  4. Upload the uart flashing firmware into the SOM:

Code Block
uart_boot_fw_loader --serial-device-name /dev/ttyUSB0 --firmware hailo15_uart_recovery_fw.bin 

...

Code Block
hailo15_spi_flash_program --serial-device-name /dev/ttyUSB0 --uart-load --scu-bootloader ./hailo15_scu_bl.bin --scu-bootloader-config scu_bl_cfg_a.bin --scu-firmware ./hailo15_scu_fw.bin --uboot-device-tree ./u-boot.dtb.signed --bootloader ./u-boot-spl.bin --bootloader-env ./u-boot-initial-env --customer-certificate ./customer_certificate.bin

...

Note

This guide assumes that your serial terminal is /dev/ttyUSB0. Replace it with the propper proper device for your system.

...

Sending u-boot over uart

Hailo FW expects a firmware version match between proprietary firmware, SPL, u-boot

...

If the eMMC content is blank, the SPL bootloader will fall back to , and kernel. After qSPI firmware was reflashed with uart boot mode, u-boot with the same fw version should be loaded. SPL uses the UART Y-Modem mode . This will allow the user to send a new to load the u-boot-tfa.itb file over the serial connection and then restore the eMMC content with tftp. If you see this in the boot log, the board expects u-boot over the uart. You can skip the reflashing u-boot env part..

  1. Set the DIP switch to the qSPI boot with Y-modem u-boot load.

  2. Reset the board. You will see the board booted to SPL and expects u-boot to be sent with Y-modem:

U-Boot SPL 2022.01 (Feb 04 2024 - 18:42:25 +0000)
Loading Environment from SPIFlash... OK
U-Boot SPL boot source uart
CCCCCCCCCC

However, if the u-boot-tfa.itb was corrupted, the board will load a corrupted file and get stuck booting. To force SPL to the UART upload mode, the u-boot env has to be reflashed.

Modifying u-boot env to force uart boot mode

  1. Modify the u-boot env to set uart boot mode for the SPL:

Code Block
cp u-boot-initial-env u-boot-initial-env-uart

Find the line spl_boot_source=mmc2 and replace it with spl_boot_source=mmc2 in the file u-boot-initial-env-uart.

  1. Set the S3 switch to the Serial download mode:

...

1

...

2

...

3

...

4

...

5

...

6

...

off

...

on

...

off

...

off

...

off

...

off

  1. Close the serial terminal on your PC.

  2. Reset the board.

  3. Upload the uart flashing firmware into the SOM:

Code Block
uart_boot_fw_loader --serial-device-name --uart-load /dev/ttyUSB0 --firmware hailo15_uart_recovery_fw.bin 
  1. Reflash u-boot environment:

Code Block
hailo15_spi_flash_program --serial-device-name /dev/ttyUSB0 --bootloader-env ./u-boot-initial-env-uart
  1. Set the S3 switch back to the normal boot:

...

1

...

2

...

3

...

4

...

5

...

6

...

off

...

off

...

off

...

off

...

...

off

...

The

...

SPL

...

Uploading u-boot over uart

The SPL waits for the Y-modem transfer to upload the u-boot into the RAM. The latest minicom already has a built-in Y-modem transfer function. With minicom, press Ctrl+A, then S, select ymodem, and then select choose file u-boot-tfa.itb. Note: the transfer can take a few minutes. As soon as the u-boot is completely transferred, you will see the same u-boot entries , and you can restore eMMC content with tftpas usual Proceed to the restoring eMMC with ramdisk.

Restoring eMMC content.

The u-boot

...

If you previously modified a u-boot env to force a serial mode, you need to restore it.

  1. Set the S3 switch to the Serial download mode:

...

1

...

2

...

3

...

4

...

5

...

6

...

off

...

on

...

off

...

off

...

off

...

off

  1. Close the serial terminal on your PC.

  2. Reset the board.

  3. Upload the uart flashing firmware into the SOM:

Code Block
uart_boot_fw_loader --serial-device-name --uart-load /dev/ttyUSB0 --firmware hailo15_uart_recovery_fw.bin 
  1. Reflash u-boot environment:

Code Block
hailo15_spi_flash_program --serial-device-name /dev/ttyUSB0 --bootloader-env ./u-boot-initial-env
  1. Set the S3 switch back to the normal boot:

...

1

...

2

...

3

...

4

...

5

...

6

...

off

...

off

...

off

...

off

...

off

...

off

...

menu has a special entry that allows you to load a ramdisk from an HTTP server and boot to it.

  1. Run an HTTP server on port 80 in the directory with the image

Code Block
sudo python3 -m http.server 80
  1. In the u-boot menu, select Boot to flashing ramdisk

  2. The Board will grub a ramdisk from the HTTP server on IP 10.0.0.2, port 80, and boot to it.

  3. Once the board is booted to the ramdisk, flash eMMC:

Code Block
languagebash
bmaptool copy http://10.0.0.2/core-image-minimal-hailo15-solidrun.wic.zst /dev/mmcblk1
  1. Reboot the board and restore the DIP switch to the qSPI boot.

List Of Supported OS

...