...
Date | Owner | Revision | Notes | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Mikhail Anikin | 1.0 | Initial release | |||||||||||||||||||||||
Mikhail Anikin | 1.1 | Update flashing process | |||||||||||||||||||||||
Mikhail Anikin | 1.2 | Add IIoT support | |||||||||||||||||||||||
25 Nov | Mikhail Anikin | 1.3 | Update flashing process | ||||||||||||||||||||||
Mikhail Anikin | 1.4 | Introducing SW update | |||||||||||||||||||||||
Table of Contents |
|
...
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.
Run an HTTP server on port 80 in the directory with the update image (.swu)
Code Block |
---|
sudo python3 -m http.server 80 |
Reset the board. In the u-boot menu, select
SWUpdate
Code Block |
---|
*** U-Boot Boot Menu *** Boot from eMMC Boot to flashing ramdisk |
...
The Board will grub a new image from the HTTP server and flash it to the eMMC.
...
Once the board is booted to the ramdisk, flash eMMC:
Code Block | ||
---|---|---|
| ||
bmaptool copy http:// * 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. |
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.
Note |
---|
Please make sure that u-boot-tools are installed in your system:
|
Download the flashing tool and install it into your system.
Code Block |
---|
python3 -m pip install hailo15_board_tools-x.x.x-py3-none-any.whl |
Set the S3 DIP switch to the Serial download mode.
Close the serial terminal on your PC.
Reset the board.
Upload the uart flashing firmware into the SOM:
...
Note |
---|
This guide assumes that your serial terminal is |
...
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..
Set the DIP switch to the qSPI boot with Y-modem u-boot load.
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
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
.
Set the S3 switch to the Serial download mode.
Close the serial terminal on your PC.
Reset the board.
Upload the uart flashing firmware into the SOM:
...
Reflash u-boot environment:
Code Block |
---|
hailo15_spi_flash_program --serial-device-name /dev/ttyUSB0 --bootloader-env ./u-boot-initial-env-uart |
Set the S3 switch back to the eMMC boot.
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.
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.
Set the S3 switch to the Serial download mode.
Close the serial terminal on your PC.
Reset the board.
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 |
Reflash u-boot environment:
Code Block |
---|
hailo15_spi_flash_program --serial-device-name /dev/ttyUSB0 --bootloader-env ./u-boot-initial-env |
...
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.
Run an HTTP server on port 80 in the directory with the image
Code Block |
---|
sudo python3 -m http.server 80 |
In the u-boot menu, select
Boot to flashing ramdisk
The Board will grub a ramdisk from the HTTP server on IP 10.0.0.2, port 80, and boot to it.
Once the board is booted to the ramdisk, flash eMMC:
Code Block | ||
---|---|---|
| ||
bmaptool copy http://10.0.0.2/core-image-minimal-hailo15-solidrun.wic.zst /dev/mmcblk1 |
Reboot the board and restore the DIP switch to the qSPI boot.
List Of Supported OS
...