fw-config and related subcommands missing from hailortcli on Hailo-10H (PCIe) — related to boot mode?

Hi, I’m running Hailo-10H (Chip on Board, connected via PCIe to Jetson AGX Orin) with HailoRT 5.3.0 (both hailort and hailort-pcie-driver packages, arm64, installed via apt).

I noticed that hailortcli --help on my setup only lists these subcommands:

run, run2, scan, benchmark, measure-power, monitor, parse-hef, fw-control, logs

However, according to the HailoRT 5.3.0 User Guide (section 9.7.1, “Firmware Configuration Tool”), fw-config should be available for reading/writing user configuration (e.g. max_neural_network_core_clock_rate). This command (along with sensor-config, fw-logger, fw-update, ssb-update) does not appear in my --help output at all — not even a “subcommand required” error suggesting it exists but fails; it’s simply absent from the list.

I also confirmed via dmesg that my device boots via PCIe (firmware files like u-boot-spl.bin, fitImage, image-fs are transferred from host to device via DMA at every boot), rather than booting from onboard Flash.

Update after further digging: I tried to work around this at the Python API level instead of CLI, with the same result:

python

device.control.read_board_config()

raises:

hailo_platform.pyhailort._pyhailort.HailoRTException: libhailort failed with error: 7 (HAILO_NOT_IMPLEMENTED)

So this isn’t just a CLI gap — the underlying board/user config read functionality itself returns “not implemented” for my device, at the API level.

Also, device.control.get_extended_device_information() returns neural_network_core_clock_rate: 0, and plain fw-control identify (non-extended) shows empty Board Name, Serial Number, Part Number, and Product Name fields.

I also noticed a GitHub note stating that as of HailoRT 5.3.0, the old split packages (hailo-h10-all/python3-h10-hailort) are gone in favor of a generic hailort package family — not sure if that’s related.

My working hypothesis: since my device boots via PCIe (firmware pushed from host every boot, rather than loaded from onboard Flash), maybe Flash/EEPROM-based User/Board Configuration simply doesn’t apply to this boot mode, and neural_network_core_clock_rate: 0 just means “no user override, hardware default in effect” rather than an actual 0Hz clock.

Questions:

  1. Is fw-config (and other Flash-related subcommands/APIs like read_board_config/write_board_config, fw-update, ssb-update) intentionally excluded/unimplemented for Hailo-10H builds that use PCIe boot (vs. Flash boot)?

  2. If so, is there an alternative way to read/modify User Configuration (e.g. max_neural_network_core_clock_rate, temperature thresholds) for a PCIe-boot Hailo-10H setup?

  3. If neural_network_core_clock_rate returns 0, what’s the actual default clock rate in effect (100/200/400 MHz)? Is there any way — CLI, Python API, or otherwise — to query the currently active NN core clock rate?

  4. Is there a way to query the currently active hailo_power_mode_t (I could only find set_power_mode() in the Python API, no getter)?

Environment:

  • Device: Hailo-10H (COB, PCIe)

  • HailoRT: 5.3.0 (hailort, hailort-pcie-driver, both arm64 via apt)

  • Host: NVIDIA Jetson AGX Orin, JetPack 6.1.0

Thanks!

Everything is working at expected for your Hailo-10H. These command are only available for Hailo-8 and not relevant for Hailo-10H.

Follow-up:

Thanks for confirming that! That resolves the fw-config/fw-update/etc. question.

I still have a few related questions that weren’t addressed:

  1. NN core clock rate: Since User Configuration (max_neural_network_core_clock_rate, via fw-config) isn’t applicable to Hailo-10H, is there any way to query the currently active NN core clock rate for Hailo-10H? I tried device.control.get_extended_device_information() in the Python API, but neural_network_core_clock_rate returns 0. Is 0 expected here (e.g. meaning “no override, hardware default in effect”), or should this field return an actual value on Hailo-10H?

  2. Power mode query: I found set_power_mode() in the Python InferModel API and --power-mode in hailortcli benchmark, both of which only let me set performance/ultra_performance. Is there a way to query which power mode is currently active/was last set?

  3. Clock value discrepancy: I noticed a mismatch between two documentation sources regarding NN core clock:

    • HailoRT User Guide (SoC Features, 12.2 User Configuration): “supported values for max_neural_network_core_clock_rate are 100, 200 and 400 MHz”

    • Hailo-10H Datasheet (3.4.3.1, Thermal Throttling, Table 16): “Full performance” clock is 600 MHz, stepping down to 525/450/300 MHz under throttling

    Since (1) confirms max_neural_network_core_clock_rate isn’t applicable to H10 anyway, could you clarify: what is the actual default/full-performance NN core clock rate for Hailo-10H — is it 600 MHz as in the Datasheet, or something else? Is the 100/200/400 MHz figure perhaps meant for a different board/architecture (e.g. Hailo-8)?

Thanks again for the quick response!

By the way, I noticed the User Guide I referenced (HailoRT v5.3.0) doesn’t seem to be device-specific — is this the same unified guide for H8/H10/H15, with some sections (like Firmware Tools) applicable only to certain architectures without explicit labeling?

Yes, that is the currently expected behavior. It looks like our R&D colleagues already have a task set up. However it is currently on low priority.

I did not find any in the HailoRT documentation.

Yes, these values are for Hailo-8.

It is 600 MHz as stated in the Hailo-10H datasheet.

There is a large overlap between HailoRT for Hailo-8 (version 4.x) and HailoRT for Hailo-10/Hailo-15 (version 5.x). So, it is expected that the User Guide seems to cover all devices. We do have two versions of the HailoRT User Guide.