[PATCH i-g-t] lib/intel_mmio: Allow access to full register space on modern platforms
Kamil Konieczny
kamil.konieczny at linux.intel.com
Fri Jan 5 09:45:44 UTC 2024
Hi Matt,
On 2024-01-03 at 15:49:29 -0800, Matt Roper wrote:
> PCI BAR0 on almost all Intel GPUs is a 16MB range composed of 8MB for
> MMIO space and 8MB for GTT. The current MMIO library code is limiting
> the iomap to just 2MB (which is where most of the registers live), but
> we actually need access to at least 4MB to access some of the registers
> that are appearing on newer platforms. However since this library is
> mostly used for developer debug tools, there's no need to artificially
> limit the map to just the range where registers exist today; from gen12
> onward (where it's easy to find supporting documentation) map the full
> 8MB space so that tools like intel_reg get accurate results rather than
> random garbage when reading any MMIO offset.
>
> While we're at it, reverse the if/else ladder to match typical coding
> conventions and combine the redundant pre-gen3 and gen3/gen4 conditions.
>
> Bspec: 44980
- ^^^^^^^^^^^^
Remove this before merge.
Regards,
Kamil
> Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
> ---
> lib/intel_mmio.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/lib/intel_mmio.c b/lib/intel_mmio.c
> index 10b07aabe..4b6820787 100644
> --- a/lib/intel_mmio.c
> +++ b/lib/intel_mmio.c
> @@ -153,12 +153,12 @@ intel_mmio_use_pci_bar(struct intel_mmio_data *mmio_data, struct pci_device *pci
> mmio_bar = 0;
>
> gen = intel_gen(devid);
> - if (gen < 3)
> - mmio_size = 512*1024;
> - else if (gen < 5)
> - mmio_size = 512*1024;
> + if (gen >= 12)
> + mmio_size = 8 * 1024 * 1024;
> + else if (gen >= 5)
> + mmio_size = 2 * 1024 * 1024;
> else
> - mmio_size = 2*1024*1024;
> + mmio_size = 512 * 1024;
>
> error = pci_device_map_range (pci_dev,
> pci_dev->regions[mmio_bar].base_addr,
> --
> 2.43.0
>
More information about the igt-dev
mailing list