Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
minLevel1
include
outlinefalse
indent
exclude
styledefault
typelist
printabletrue
class

...

Boot select and boot options

...

You should select the boot source before powering up the board for the first time.

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

For more information, see HummingBoard Hailo 15 Boot Select

Generating Yocto image

The prebuilt artifacts are available here.

...

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

...

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 Update eMMC (wic) from HTTP

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

  3. 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.4.0-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.

  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 

...

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=uart in the file u-boot-initial-env-uart.

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

  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 eMMC boot.

  1. Open the serial connection and reset the boot. The board will boot to the SPL and expect the u-boot image to be transferred over the serial.

...

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. 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 eMMC boot:

...

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

...