[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ARM64][Raspberry Pi 5][RP1] Dom0 firmware clocks + RP1 OF node missing under Xen, VC4/DRM never probes


  • To: xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Alap A <alumulti@xxxxxxxxx>
  • Date: Wed, 4 Feb 2026 09:30:44 +0530
  • Arc-authentication-results: i=1; mx.google.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=VWe18zpsOHVAr/iJ0qLTiACj+H5WdI14QteHDAWXGx4=; fh=quJY5mN2l4ZorNvEoO9ngNXalhEvTdq/+W8CvHWhECs=; b=Jl57dmtScmI8RBBqGOy46NWTwBYLTdoVYpMhVh2S1MVRFE2svXwAotw+Gp0oXm2IJV kmO1AurZvrS7DmFhcc1qG4EafkUeALUFD3wcuDF3c3fv/xMCmDXdoE9rXeZHd+STcXVV OIgQ2bDMuG0UupEqPNjB34YCMbLlbKmdKSx2/MfJ2c8ArRl0Bw1q7zpnVnNR66zHMJyn Moi5IbCo+mhs+XceWUYiJZppx+BnOZ6nyFSdp5GDr7SqtyJdfBtUjNDvW2M7RjaW+pl5 VS/fBw+xChJsjR0OrzKEtxgcMo1nuvTMOA95OntYKg1XRtwwqF2dYXC1U2RjaHdczGlz M4QQ==; darn=lists.xenproject.org
  • Arc-seal: i=1; a=rsa-sha256; t=1770177655; cv=none; d=google.com; s=arc-20240605; b=J+dQagZSghVKGtnE5vPrzZJG4pkk/Ab0Np/ntz76IHSeTQ32Yc2L6dpmqmAPWWbBny Ql12xpbVX1fFn97wIgRJyLaT0PyDZoNjiiKye1fxqsnQF70S763LWHUJhvCzXS1Tnfrl GQUktvpwAJpJtKH7CVA+xEpqQfkbCEa1C9PMUxF3+j+u1N29dEMY/yHpIUh930lQpxVM EgxtxnN2cixl+stFqWE5zjolMIe4haasyrlZgIj978bAS8DeV85hMO5KbWjA3pj5shs4 FH+7nWmRsTUX+x3Dzas8EJWmhScnkWAq3gw6H5q5P0TzBvjrMqldP8ZciR6gXNcbgr5T QLUg==
  • Delivery-date: Wed, 04 Feb 2026 04:01:15 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hello Xen Developers,

I am working on Xen bring-up on a Raspberry Pi 5 (BCM2712 + RP1 over PCIe) and am stuck with Dom0 firmware clocks, RP1, and VC4/DRM not probing correctly. I am hoping for guidance on the intended DT/Xen model for RP1 and Raspberry Pi firmware devices under Xen.

Setup

  • Board: Raspberry Pi 5 (BCM2712, RP1 southbridge over PCIe)

  • Xen: 4.17.0 (xen-troops build)

  • Dom0 kernel:

    • Linux 6.19.0-rc5 (mainline)

    • Also tested Raspberry Pi downstream 6.6

  • Bootloader: U-Boot

  • Goal: Dom0 owns display/graphics; DomU gets a virtual display

Problem Summary

Dom0 never gets /dev/dri. The VC4/V3D/HVS DRM stack fails due to missing clocks/firmware and RP1 not binding.

Key Dom0 dmesg errors:

raspberrypi-clk soc@107c000000:firmware:clocks: probe with driver raspberrypi-clk failed with error -22
platform 1002000000.v3d: deferred probe pending: platform: supplier soc@107c000000:firmware:clocks not ready
vc4_hvs 107c580000.hvs: Couldn't get core clock
vc4-drm axi:gpu: failed to bind 107c580000.hvs (ops vc4_hvs_ops): -2
rp1_pci 0002:01:00.0: Missing of_node for device
rp1_pci 0002:01:00.0: probe with driver rp1_pci failed with error -22

As a result:

  • raspberrypi-clk never binds

  • firmware clock/reset providers don’t come up

  • RP1 PCI device has no OF node

  • VC4 DRM never probes → no /dev/dri

Device Tree / Overlay Details

Xen DT Overlay

I am using a Xen DT overlay based on xen-troops that enables HDMI, V3D, firmware, clocks, reset, vcio, and assigns devices without IOMMU. This overlay relies heavily on symbol fixups (__fixups__) and target = <0xffffffff> fragments.

Excerpt:

  • Enables:

    • hdmi0, hdmi1, v3d, vc4, hvs, pixelvalve*

    • firmware, firmware_clocks, reset, vcio

    • rp1_clocks, bcm_reset, pcie_rescal

  • Uses xen,force-assign-without-iommu on most nodes

(Full file: bcm2712-raspberrypi5-xen.dtso)

HDMI / Dom0 Passthrough Overlay

This overlay sets up /chosen multiboot nodes, UART for Xen console, and forces PCIe assignment.

Key parts:

dom0 {
  compatible = "multiboot,kernel\0multiboot,module";
  reg = <0x8000000 0x20000000 0x00 0x2000000>;
};

(Full file: hdmi-passthrough-dom0.dtso)

Boot Logs

Full Xen + Dom0 boot logs showing:

  • raspberrypi-clk failing with -EINVAL

  • rp1_pci missing of_node

  • VC4/HVS/V3D deferring and timing out

(Full log: bootlogs3.txt)

Observations

  1. Firmware node exists and is enabled in the DT passed to Dom0:

    /soc@107c000000/firmware {
        compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
        clocks { compatible = "raspberrypi,firmware-clocks"; status = "okay"; };
        reset  { compatible = "raspberrypi,firmware-reset";  status = "okay"; };
        vcio   { compatible = "raspberrypi,vcio";            status = "okay"; };
    };
    

    Despite this, raspberrypi-clk fails probing very early with -22.

  2. RP1 enumerates correctly on PCIe:

    0002:01:00.0 Ethernet controller: Raspberry Pi Ltd RP1 PCIe 2.0 South Bridge [1de4:0001]
    

    But Linux reports:

    rp1_pci ... Missing of_node for device
    

    Which prevents:

    • rp1-clk

    • GPIO

    • reset

    • HDMI PHY

    • downstream display pipeline

  3. I attempted U-Boot DT overlays to attach an OF node at:

    /axi/pcie@1000120000/pci@0,0/dev@0,0
    

    but overlays frequently fail with:

    FDT_ERR_NOTFOUND
    

    unless I rely on symbol-based fixups.

Questions

  1. What is the intended DT model for RP1 under Xen on Raspberry Pi 5?

    • Should RP1 be represented as a proper OF node under the PCI endpoint in the Xen DT?

    • Or is Xen expected to synthesize this mapping internally?

  2. Is raspberrypi,firmware-clocks supported in Dom0 under Xen on Pi 5?

    • The driver probes but returns -EINVAL even when the DT node exists and is enabled.

  3. Are there known patches/branches for Xen or DT that enable VC4/DRM on Pi 5?

    • Specifically for firmware clocks, RP1, and HVS/V3D dependencies.

Reproduction Summary

Boot flow:

  1. U-Boot loads bcm2712-rpi-5-b.dtb

  2. Applies bcm2712-raspberrypi5-xen.dtbo

  3. Applies hdmi-passthrough-dom0.dtbo

  4. Boots Xen

  5. Loads Dom0 kernel as multiboot module

Result: Dom0 boots, but RP1 and firmware clocks do not bind, so VC4/DRM never comes up.


Any guidance on the correct DT/Xen integration model for BCM2712/RP1 would be greatly appreciated. If there is a reference DT, patch series, or recommended branch, I’d be happy to test and report back.

Best regards,
Alap


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.