Skip to content

Pi 5 Trixie: firmware mailbox property requests all return status 0x00000000 (vcgencmd broken, no cpufreq) #7230

@dankorotin

Description

@dankorotin

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/vcio is crw-rw---- root:video, user is in video group, sudo also fails
  • EEPROM: Updated to latest (Nov 2025)
  • Kernel: Upgraded from 6.12.47 to 6.12.62, no change
  • Package conflict: raspi-utils-core 20251120-1 only, no libraspberrypi-bin
  • ioctl encoding: Confirmed 0xC0086400 matches _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_throttled in sysfs
  • Continuous firmware request spam in dmesg: Request 0x00030087 returned status 0x00000000 and Request 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions