HAILO AI MODULE not detected by pcie lspci command on AXU3EGB

Hi, I’m working with the AXU3EGB V2.0 development board (featuring the AMD Zynq™ UltraScale+ MPSoC ZU3EG), which includes an M.2 connector for M key devices. I’m using the Hailo-8 M.2 AI Acceleration Module (Key B+M) and have built a custom Linux image for this board using PetaLinux 2023.1.

When I insert an M-key SSD, it is successfully detected which i can confirm using the lspci command. However, when I insert the Hailo-8 card and run lspci, no device is listed. The system logs indicate that the PCIe link is down, which suggests that PCIe link training fails in the case of the Hailo module. According to the AXU3EGB board specifications, the PCIe link is configured for Gen2 x1. Until now i am not able to figure out the reason for it. Does the hailo does not follow the pcie specification or is there any particular requirement for hailo? Any suggestion will be highly appreciated. I have following observation on AXU3EGB board but i do not think they could be the problem.

  1. AXU3EGB pcie connectors leaves PEWAKE and CLKREQ pin floating. I have checked some other design which are using M.2 M-key Stack FMC with FPGA boards and they leave PEWAKE and CLKREQ floating but hailo8 work with it.
  2. AXU3EGB on booting keep PERST high for 180 ms than pull it low for 140 ms than high again which remain high till the end. This behavior seems fine to me but not sure if hailo require more than 140 ms to reset?

Welcome to the Hailo Community!

The Hailo-8 does follow the PCIe specification. We and many customers have tested Hailo-8 devices successfully on a wide range of x86 and Arm based platforms including AMD Zynq.

You can test the module in another system e.g. your PC likely has an M.2 slot.

yes I understand this that the hailo follows the PCIE specification. But right now the problem is AXU3EGB board works fine with SSD which shows that AXU3EGB board pcie is working. But still when I use Hailo B+M key on this board I get Link is down. I have checked the schematics and all the minimal connections are there. I have tried different Hailo boards but still the same response. I am at my wits end right now. I will start looking into configuration registers to see if I can find anything for the link failure. But apart from it any other idea or lead I can look into?

Just for the record we figure out that the problem was in the PCIE reference clock generated by Si5332. Since the clock was working for SSD we assumed that it should be fine for Hailo but later on found out that we need to change the Si5332 clock mode for Hailo to work. Thanks a lot