On Mon, Sep 29, 2025 at 04:56:03PM +0300, Ilpo Järvinen wrote:
On Mon, 29 Sep 2025, Lucas De Marchi wrote:
Hi,
On Thu, Sep 18, 2025 at 01:58:57PM -0700, Lucas De Marchi wrote:
> There may be cases in which the BAR0 also needs to move to accommodate
> the bigger BAR2. However if it's not released, the BAR2 resize fails.
> During the vram probe it can't be released as it's already in use by
> xe_mmio for early register access.
>
> Add a new function in xe_vram and let xe_pci call it directly before
> even early device probe. This allows the BAR2 to resize in cases BAR0
> also needs to move:
>
> [] xe 0000:03:00.0: vgaarb: deactivate vga console
> [] xe 0000:03:00.0: [drm] Attempting to resize bar from 8192MiB ->
> 16384MiB
> [] xe 0000:03:00.0: BAR 0 [mem 0x83000000-0x83ffffff 64bit]: releasing
> [] xe 0000:03:00.0: BAR 2 [mem 0x4000000000-0x41ffffffff 64bit pref]:
> releasing
> [] pcieport 0000:02:01.0: bridge window [mem 0x4000000000-0x41ffffffff
> 64bit pref]: releasing
> [] pcieport 0000:01:00.0: bridge window [mem 0x4000000000-0x41ffffffff
> 64bit pref]: releasing
> [] pcieport 0000:01:00.0: bridge window [mem 0x4000000000-0x43ffffffff
> 64bit pref]: assigned
> [] pcieport 0000:02:01.0: bridge window [mem 0x4000000000-0x43ffffffff
> 64bit pref]: assigned
> [] xe 0000:03:00.0: BAR 2 [mem 0x4000000000-0x43ffffffff 64bit pref]:
> assigned
> [] xe 0000:03:00.0: BAR 0 [mem 0x83000000-0x83ffffff 64bit]: assigned
> [] pcieport 0000:00:01.0: PCI bridge to [bus 01-04]
> [] pcieport 0000:00:01.0: bridge window [mem 0x83000000-0x840fffff]
> [] pcieport 0000:00:01.0: bridge window [mem
> 0x4000000000-0x44007fffff 64bit pref]
> [] pcieport 0000:01:00.0: PCI bridge to [bus 02-04]
> [] pcieport 0000:01:00.0: bridge window [mem 0x83000000-0x840fffff]
> [] pcieport 0000:01:00.0: bridge window [mem
> 0x4000000000-0x43ffffffff 64bit pref]
> [] pcieport 0000:02:01.0: PCI bridge to [bus 03]
> [] pcieport 0000:02:01.0: bridge window [mem 0x83000000-0x83ffffff]
> [] pcieport 0000:02:01.0: bridge window [mem
> 0x4000000000-0x43ffffffff 64bit pref]
> [] xe 0000:03:00.0: [drm] BAR2 resized to 16384M
> [] xe 0000:03:00.0: [drm:xe_pci_probe [xe]] BATTLEMAGE e221:0000
> dgfx:1 gfx:Xe2_HPG (20.02) ...
>
> As shown above, it happens even before we try to read any register for
> platform identification.
>
> All the rebar logic is more pci-specific than xe-specific and can be
> done very early in the probe sequence. In future it would be good to
> move it out of xe_vram.c, but this refactor is left for later.
Ilpo, can you take a look on this patch? It fixed the issue that I had
with BMG. It needs the first patch for the full fix, but the fixes are
more or less orthogonal.
FWIW, it looks okay to me from PCI perspective,
Reviewed-by: Ilpo Järvinen <[email protected]>
I'm pushing this to drm-xe-next. The first one may go through pci or drm
tree when it's reviewed.
Merged to drm-xe-next, thanks!
[2/2] drm/xe: Move rebar to be done earlier
commit: 45e33f220fd625492c11e15733d8e9b4f9db82a4
thanks
Lucas De Marchi