Hello!
I’ve been running the RPI AI devkit with great success. I’ve used it successfully with the original RPi M.2 hat that came with the kit, and on the Pimoroni NVMe Base Duo PCIe switch, alongside an NVMe SSD.
However, when I remove the Pimorini NVMe Base Duo and replace it with the Geekworm X1011 PCIe to Four M.2 NVMe SSD Board for Raspberry Pi 5, the Hailo-8 co-processor no longer gets recognized by the Hailo software.
Here’s my environment and a demonstration of the problem:
pi@aye:~ $ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
pi@aye:~ $ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
pi@aye:~ $ uname -r
6.6.47+rpt-rpi-2712
pi@aye:~ $ lsmod | grep hailo
hailo_pci 98304 0
pi@aye:~ $ hailortcli -v
HailoRT-CLI version 4.18.0
pi@aye:~ $ sudo lspci | grep Hailo
0000:06:00.0 Co-processor: Hailo Technologies Ltd. Hailo-8 AI Processor (rev 01)
pi@aye:~ $ hailortcli fw-control identify
pi@aye:~ $ hailortcli scan
Hailo devices not found
pi@aye:~ $ hailortcli fw-control identify --bdf 0000:06:00.0
[HailoRT] [error] Requested device not found
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INVALID_ARGUMENT(2)
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INVALID_ARGUMENT(2)
[HailoRT CLI] [error] CHECK_SUCCESS failed with status=HAILO_INVALID_ARGUMENT(2)
pi@aye:~ $
As you can see, the co-processor is present in the output of lspci, but is not recognized by the hailortctrl command, even when I provide the PCIe address.
When I move the co-processor and NVMe back to the Pimoroni, everything works as expected:
pi@aye:~ $ lsmod | grep hailo
hailo_pci 98304 0
pi@aye:~ $ sudo lspci | grep Hailo
0000:03:00.0 Co-processor: Hailo Technologies Ltd. Hailo-8 AI Processor (rev 01)
pi@aye:~ $ hailortcli fw-control identify
Executing on device: 0000:03:00.0
Identifying board
Control Protocol Version: 2
Firmware Version: 4.18.0 (release,app,extended context switch buffer)
Logger Version: 0
Board Name: Hailo-8
Device Architecture: HAILO8L
Serial Number: HLDDLBB242500870
Part Number: HM21LB1C2LAE
Product Name: HAILO-8L AI ACC M.2 B+M KEY MODULE EXT TMP
pi@aye:~ $ hailortcli scan
Hailo Devices:
[-] Device: 0000:03:00.0
pi@aye:~ $
The only difference in configuration is that on the Geekworm PCIe switch, the Hailo co-processor enumerates at location 06:00.0, while on the Pimoroni PCIe switch, it enumerates at location 03:00.0.
So I realize this is most likely due to a deficiency in the Geekworm PCIe switch, but I’m hoping that perhaps there’s another workaround I can try. Thank you for your time!
Jeremy