I am trying to integrate hailo ai chip into my custom zynqMPSoC board into the M.2 connector. I am facing issue in detecting hailo after booting Linux on FPGA.
I check the pin out of FPGA M.2 connector
In comparison to Hailo-8 M.2 pinout, the FPGA configuration is missing two signals, namely wake and clk_req. Does Hailo-8 detection depend on these signals or are they optional?
Please suggest.
Any help is much approeciated.
Quick answer: You can totally skip CLKREQ# and PEWAKE# - they’re just optional power management features and won’t prevent your Hailo-8 from showing up in Linux.
Why you can ignore them:
The CLKREQ# pin is only used if the card wants to turn off its reference clock when it’s not doing anything (saves a bit of power). If you don’t connect it, the clock just stays on all the time - no big deal.
PEWAKE# is for waking the system up from sleep mode. It doesn’t affect the initial boot-up process at all.
What you actually need:
To get your Hailo-8 working on your Zynq MPSoC, focus on these essentials:
Solid 3.3V power on the Vcc and Vaux pins
A clean 50MHz or 100MHz differential reference clock on the REFCLK_P/N pins
Proper PERST# reset sequence (pull it low for at least 100ns, then high)
The four PCIe data lanes wired correctly
Get those right and lspci should immediately show your Hailo-8. No need to mess with the power management stuff.
Simple approach:
CLKREQ#: Just leave it floating (there’s an internal pull-up) or tie it high to 3.3V
PEWAKE#: Leave floating (internal pull-down) or tie to ground
Double-check your PERST# timing and reference clock with a scope
Make sure all your power rails are stable before releasing PERST#
Once that’s sorted, Linux should pick up your Hailo-8 without any issues. The power management pins are nice-to-have features, not deal-breakers.