[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <C67D4EC2-649C-4E46-A55D-8B48A31E8928@jeffgeerling.com>
Date: Wed, 29 Oct 2025 20:55:06 -0500
From: Jeff Geerling <jeff@...fgeerling.com>
To: zhangzhijie <zhangzhijie@...c.ac.cn>
Cc: wangran@...c.ac.cn,
 zhangjian@...c.ac.cn,
 daniel@...ll.ch,
 jani.nikula@...ux.intel.com,
 rodrigo.vivi@...el.com,
 joonas.lahtinen@...ux.intel.com,
 tursulin@...ulin.net,
 airlied@...il.com,
 intel-gfx@...ts.freedesktop.org,
 intel-xe@...ts.freedesktop.org,
 dri-devel@...ts.freedesktop.org,
 linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1] Support Intel Xe GPU dirver Porting on RISC-V
 Architecture
+1 for this patch, as it would enable Xe on any non-x86 system.
I've successfully tested this change on Ampere and Broadcom (Raspberry Pi) systems.
We've been using the flag `CONFIG_VGA_CONSOLE` instead of `CONFIG_X86` but either should achieve the same goal. See: https://github.com/6by9/linux/commit/6bd4cfe79b5111986dd11a5c6e48d4a963fd7740
With some OSes a later Mesa version needs to be compiled to support newer Xe/Xe2 cards, however I've successfully tested a number of Intel dGPUs at this point. Sometimes setting force probe to '*' (or the particular GPU ID) is required, but otherwise stability is good.
For example, the A750: https://github.com/geerlingguy/raspberry-pi-pcie-devices/issues/510#issuecomment-3383284831
> On Jul 15, 2025, at 1:18 AM, zhangzhijie <zhangzhijie@...c.ac.cn> wrote:
> 
>    inb/outb speccial wire not support on other ARCH.
> Should detect whether arch platform support or not.
> 
> Signed-off-by: zhangzhijie <zhangzhijie@...c.ac.cn>
> ---
> drivers/gpu/drm/i915/display/intel_vga.c | 4 ++++
> 1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_vga.c b/drivers/gpu/drm/i915/display/intel_vga.c
> index 4b98833bfa8c..5e48e3282670 100644
> --- a/drivers/gpu/drm/i915/display/intel_vga.c
> +++ b/drivers/gpu/drm/i915/display/intel_vga.c
> @@ -33,6 +33,7 @@ void intel_vga_disable(struct drm_i915_private *dev_priv)
> if (intel_de_read(dev_priv, vga_reg) & VGA_DISP_DISABLE)
> return;
> 
> +#if defined(CONFIG_X86) || defined(CONFIG_X86_64)
> /* WaEnableVGAAccessThroughIOPort:ctg,elk,ilk,snb,ivb,vlv,hsw */
> vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO);
> outb(0x01, VGA_SEQ_I);
> @@ -40,6 +41,7 @@ void intel_vga_disable(struct drm_i915_private *dev_priv)
> outb(sr1 | VGA_SR01_SCREEN_OFF, VGA_SEQ_D);
> vga_put(pdev, VGA_RSRC_LEGACY_IO);
> udelay(300);
> +#endif
> 
> intel_de_write(dev_priv, vga_reg, VGA_DISP_DISABLE);
> intel_de_posting_read(dev_priv, vga_reg);
> @@ -80,6 +82,7 @@ void intel_vga_redisable(struct drm_i915_private *i915)
> 
> void intel_vga_reset_io_mem(struct drm_i915_private *i915)
> {
> +#if defined(CONFIG_X86) || defined(CONFIG_X86_64)
> struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
> 
> /*
> @@ -95,6 +98,7 @@ void intel_vga_reset_io_mem(struct drm_i915_private *i915)
> vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO);
> outb(inb(VGA_MIS_R), VGA_MIS_W);
> vga_put(pdev, VGA_RSRC_LEGACY_IO);
> +#endif
> }
> 
> int intel_vga_register(struct drm_i915_private *i915)
> -- 
> 2.34.1
> 
> 
Powered by blists - more mailing lists
 
