drivers/vfio/pci/nvgrace-gpu/main.c | 2 ++ 1 file changed, 2 insertions(+)
The NVIDIA GB10 GPU (device ID 0x2e12, found in DGX GB10 systems) is a
Grace-Blackwell chip that shares the same NVLink-C2C coherent memory
architecture as the existing GH200/GB200/GB300 entries. It exposes
CPU-coherent device memory via the ACPI DSD properties
nvidia,gpu-mem-base-pa / nvidia,gpu-mem-size and requires the same
specialised BAR emulation provided by nvgrace-gpu-vfio-pci.
Without this entry the device falls through to the generic vfio-pci
driver, which fails the iommufd IOMMU_RESV_DIRECT check because the
NVLink-C2C memory apertures appear as RESV_DIRECT in the IOMMU group
reserved regions, yielding:
vfio-pci 000f:01:00.0: Firmware has requested this device have a
1:1 IOMMU mapping, rejecting configuring the device without a 1:1
mapping. Contact your platform vendor.
Tested on a DGX GB10 system (aarch64, kernel 6.17.0-1014-nvidia).
Signed-off-by: Eric Curtin <ericcurtin17@gmail.com>
---
drivers/vfio/pci/nvgrace-gpu/main.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/vfio/pci/nvgrace-gpu/main.c b/drivers/vfio/pci/nvgrace-gpu/main.c
index fa056b69f899..ac1acf41df86 100644
--- a/drivers/vfio/pci/nvgrace-gpu/main.c
+++ b/drivers/vfio/pci/nvgrace-gpu/main.c
@@ -1244,6 +1244,8 @@ static const struct pci_device_id nvgrace_gpu_vfio_pci_table[] = {
{ PCI_DRIVER_OVERRIDE_DEVICE_VFIO(PCI_VENDOR_ID_NVIDIA, 0x2941) },
/* GB300 SKU */
{ PCI_DRIVER_OVERRIDE_DEVICE_VFIO(PCI_VENDOR_ID_NVIDIA, 0x31C2) },
+ /* GB10 SKU */
+ { PCI_DRIVER_OVERRIDE_DEVICE_VFIO(PCI_VENDOR_ID_NVIDIA, 0x2E12) },
{}
};
--
2.43.0
On Tue, 19 May 2026 20:45:45 +0100
Eric Curtin <ericcurtin17@gmail.com> wrote:
> The NVIDIA GB10 GPU (device ID 0x2e12, found in DGX GB10 systems) is a
> Grace-Blackwell chip that shares the same NVLink-C2C coherent memory
> architecture as the existing GH200/GB200/GB300 entries. It exposes
> CPU-coherent device memory via the ACPI DSD properties
> nvidia,gpu-mem-base-pa / nvidia,gpu-mem-size and requires the same
> specialised BAR emulation provided by nvgrace-gpu-vfio-pci.
>
> Without this entry the device falls through to the generic vfio-pci
> driver, which fails the iommufd IOMMU_RESV_DIRECT check because the
> NVLink-C2C memory apertures appear as RESV_DIRECT in the IOMMU group
> reserved regions, yielding:
>
> vfio-pci 000f:01:00.0: Firmware has requested this device have a
> 1:1 IOMMU mapping, rejecting configuring the device without a 1:1
> mapping. Contact your platform vendor.
>
> Tested on a DGX GB10 system (aarch64, kernel 6.17.0-1014-nvidia).
This is proposing a patch against upstream v7.1-rc, not a vendor or
downstream kernel. What relevant testing against upstream has been
performed?
It's unclear to me how using the nvgrace-gpu driver rather than
vfio-pci gets around a RESV_DIRECT mapping requirement on the IOMMU
group. Can you elaborate?
The requirement is enforced when setting the group to a container for
the legacy path or when binding the device when using iommufd. Both of
those occur irrespective of using vfio-pci or a variant driver.
I also don't find that a DGX Spark GB10 exposes the ACPI DSD properties
claimed here, so while the architecture may be similar, the support for
the nvgrace-gpu specific functionality doesn't appear to be present.
Thanks,
Alex
> Signed-off-by: Eric Curtin <ericcurtin17@gmail.com>
> ---
> drivers/vfio/pci/nvgrace-gpu/main.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/vfio/pci/nvgrace-gpu/main.c b/drivers/vfio/pci/nvgrace-gpu/main.c
> index fa056b69f899..ac1acf41df86 100644
> --- a/drivers/vfio/pci/nvgrace-gpu/main.c
> +++ b/drivers/vfio/pci/nvgrace-gpu/main.c
> @@ -1244,6 +1244,8 @@ static const struct pci_device_id nvgrace_gpu_vfio_pci_table[] = {
> { PCI_DRIVER_OVERRIDE_DEVICE_VFIO(PCI_VENDOR_ID_NVIDIA, 0x2941) },
> /* GB300 SKU */
> { PCI_DRIVER_OVERRIDE_DEVICE_VFIO(PCI_VENDOR_ID_NVIDIA, 0x31C2) },
> + /* GB10 SKU */
> + { PCI_DRIVER_OVERRIDE_DEVICE_VFIO(PCI_VENDOR_ID_NVIDIA, 0x2E12) },
> {}
> };
>
© 2016 - 2026 Red Hat, Inc.