-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Open
Description
Description
On Raspberry Pi 5 running Pi OS Trixie (Debian 13), the firmware mailbox property interface does not process any requests. All requests return status 0x00000000 ("request not processed") instead of 0x80000000 ("success"). This breaks:
- vcgencmd — all commands fail with
ioctl_set_msg failed:-1 - raspberrypi-clk — probe fails with error -22 at boot, disabling CPU frequency scaling
- vc4-drm — "Couldn't stop firmware display driver: -22"
System Info
Pi: Raspberry Pi 5 Model B Rev 1.1 (16GB)
OS: Debian GNU/Linux 13 (trixie)
Kernel: 6.12.62+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.62-1+rpt1
EEPROM: Wed 5 Nov 17:37:18 UTC 2025 (1762364238) — up to date
raspi-firmware: 1:1.20250915-1
raspi-utils-core: 20251120-1
Boot log evidence
All firmware property requests return status 0x00000000:
raspberrypi-firmware soc@107c000000:firmware: Request 0x00000001 returned status 0x00000000
raspberrypi-firmware soc@107c000000:firmware: Request 0x00000003 returned status 0x00000000
raspberrypi-firmware soc@107c000000:firmware: Request 0x00030046 returned status 0x00000000
raspberrypi-firmware soc@107c000000:firmware: Request 0x00010007 returned status 0x00000000
This causes the clock driver probe failure:
raspberrypi-clk soc@107c000000:firmware:clocks: probe with driver raspberrypi-clk failed with error -22
vc4-drm axi:gpu: [drm] Couldn't stop firmware display driver: -22
strace of vcgencmd
openat(AT_FDCWD, "/dev/vcio", O_RDONLY) = 3
ioctl(3, _IOC(_IOC_READ|_IOC_WRITE, 0x64, 0, 0x8), 0x7fffe7ae1770) = -1 EINVAL (Invalid argument)
Even sudo vcgencmd measure_temp and a custom C program opening /dev/vcio with O_RDWR produce the same EINVAL — the error comes from rpi_firmware_property_list() in the kernel because buf[1] != RPI_FIRMWARE_STATUS_SUCCESS.
What was ruled out
- Permissions:
/dev/vcioiscrw-rw---- root:video, user is invideogroup,sudoalso fails - EEPROM: Updated to latest (Nov 2025)
- Kernel: Upgraded from 6.12.47 to 6.12.62, no change
- Package conflict:
raspi-utils-core20251120-1 only, nolibraspberrypi-bin - ioctl encoding: Confirmed
0xC0086400matches_IOWR(100, 0, char*)on aarch64
config.txt
Default config with one addition — Hailo AI HAT+ overlay:
dtoverlay=vc4-kms-v3d
max_framebuffers=2
disable_fw_kms_setup=1
arm_64bit=1
arm_boost=1
[all]
dtoverlay=hailo-ai,cma_size=256
Symptoms
- No
/sys/devices/system/cpu/cpufreq/directory (cpufreq governor not loaded) - No
get_throttledin sysfs - Continuous firmware request spam in dmesg:
Request 0x00030087 returned status 0x00000000andRequest 0x00038087 returned status 0x00000000(~2 per ms) - Temperature reporting works via sysfs (
/sys/class/thermal/thermal_zone0/temp), hwmon, and Hailo Python API — only the firmware mailbox path is broken
Expected behavior
vcgencmd measure_temp should return the SoC temperature. raspberrypi-clk should probe successfully, enabling CPU frequency scaling.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels