Alder Lake Camera (hi556) in Fedora 40 Kernel 6.10

Hello everyone,

It looks like with kernel 6.10.x IPU6 modules have been added to the Linux Kernel. Unfortunately, the camera (sensor hi556) is not working for me. Here is the relevant dmesg output:

[4.737569] hi556 i2c-INT3537:00: failed to check HW configuration: -517
[ 4.750051] hi556 i2c-INT3537:00: failed to check HW configuration: -517
[ 4.751104] hi556 i2c-INT3537:00: failed to check HW configuration: -517
[  4.751642] hi556 i2c-INT3537:00: failed to check HW configuration: -517
[    4.757607] Adding 26129404k swap on /dev/nvme0n1p10.  Priority:-2 extents:1 across:26129404k SS
[    4.789526] ish-hid {33AECD58-B679-4E54-9BD9-A04D34F0C226}: [hid-ish]: enum_devices_done OK, num_hid_devices=5
[    4.795506] Adding 8388604k swap on /dev/zram0.  Priority:100 extents:1 across:8388604k SSDsc
[    4.796426] resource: resource sanity check: requesting [mem 0x00000000fedc0000-0x00000000fedcffff], which spans more than pnp 00:03 [mem 0xfedc0000-0xfedc7fff]
[    4.796431] caller igen6_probe+0x2f6/0x800 [igen6_edac] mapping multiple BARs
[    4.796554] ACPI: bus type thunderbolt registered
[    4.796912] i801_smbus 0000:00:1f.4: SPD Write Disable is set
[    4.796982] idma64 idma64.2: Found Intel integrated DMA 64-bit
[    4.796985] i801_smbus 0000:00:1f.4: SMBus using PCI interrupt
[    4.798722] EDAC MC0: Giving out device to module igen6_edac controller Intel_client_SoC MC#0: DEV 0000:00:00.0 (INTERRUPT)
[    4.798748] hi556 i2c-INT3537:00: failed to check HW configuration: -517
[    4.799419] hid-generic 001F:8087:0AC2.0003: hidraw2: SENSOR HUB HID v2.00 Device [hid-ishtp 8087:0AC2] on 
[    4.799436] EDAC MC1: Giving out device to module igen6_edac controller Intel_client_SoC MC#1: DEV 0000:00:00.0 (INTERRUPT)
[    4.799468] EDAC igen6 MC1: HANDLING IBECC MEMORY ERROR
[    4.799470] EDAC igen6 MC1: ADDR 0x7fffffffe0 
[    4.799471] EDAC igen6 MC0: HANDLING IBECC MEMORY ERROR
[    4.799472] EDAC igen6 MC0: ADDR 0x7fffffffe0 
[    4.800087] EDAC igen6: v2.5.1
[    4.801108] hi556 i2c-INT3537:00: failed to check HW configuration: -517
[    4.803242] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[    4.803935] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.804488] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.805021] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.805532] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.806128] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.807638] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.808401] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.808910] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.809416] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.809956] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.810248] idma64 idma64.3: Found Intel integrated DMA 64-bit
[    4.811644] hi556 i2c-INT3537:00: failed to check HW configuration: -517
[    4.815380] hi556 i2c-INT3537:00: failed to check HW configuration: -517
[    4.815987] hid-generic 001F:8087:0AC2.0004: hidraw3: SENSOR HUB HID v2.00 Device [hid-ishtp 8087:0AC2] on 
[    4.819875] mei_me 0000:00:16.0: enabling device (0000 -> 0002)
[    4.820057] idma64 idma64.4: Found Intel integrated DMA 64-bit
[    4.820864] intel-ipu6 0000:00:05.0: Direct firmware load for intel/ipu/ipu6ep_fw.bin failed with error -2
[    4.820869] intel-ipu6 0000:00:05.0: error -ENOENT: Requesting signed firmware intel/ipu/ipu6ep_fw.bin failed
[    4.820872] intel-ipu6 0000:00:05.0: probe with driver intel-ipu6 failed with error -2
[    4.823040] hi556 i2c-INT3537:00: failed to check HW configuration: -517
[    4.825347] hi556 i2c-INT3537:00: failed to check HW configuration: -517
[    4.836386] hi556 i2c-INT3537:00: failed to check HW configuration: -517

The signed firmware intel/ipu/ipu6ep_fw.bin is not present. I tried with disabling secure boot but not luck. Any ideas how I can pull camera bins from ipu6-camera-bins/lib/firmware/intel at main · intel/ipu6-camera-bins · GitHub and add in a relevant directory in my system?

I fixed the markup for the lof entries for you.
You use a single back tick, but three are required:

```
2 Likes

The directory exists but is empty

$ ls /usr/lib/firmware/intel/ipu

Usually intel is relatively quick to provide firmware for devices and the firmware on fedora is usually updated about once a month. The last update was dated 20240709 so a new one should be available very soon.

Thanks. How can I check for the last update?

There is a new firmware update today that is dated 20240811.
sudo dnf upgrade --refresh

It does not, however, put anything into the directory /usr/lib/firmware/intel/ipu.