Skip to content

Conversation

@jamieNguyenNVIDIA
Copy link
Collaborator

Create config fragment for NVIDIA platforms, meant to be used in conjunction with defconfig:

      ./scripts/kconfig/merge_config.sh arch/arm64/configs/defconfig \
        arch/arm64/configs/nvidia.config

The configs are meant to enable Grace and Vera platforms. They are largely based on what we've documented in: https://docs.nvidia.com/dccpu/patches-config-guide/index.html.

Testing done:

  1. Generated .config using ./scripts/kconfig/merge_config.sh arch/arm64/configs/defconfig arch/arm64/configs/nvidia.config.
  2. Verified that all settings in nvidia.config are present.
  3. Tested on Grace

TODO:

  1. Test on Vera

Add arch/arm64/configs/nvidia.config containing NVIDIA-specific kernel
configurations for Grace and Vera CPU enablement.

This fragment should be merged with defconfig using:
  ./scripts/kconfig/merge_config.sh arch/arm64/configs/defconfig \
    arch/arm64/configs/nvidia.config

Signed-off-by: Jamie Nguyen <jamien@nvidia.com>
@nvmochs
Copy link
Collaborator

nvmochs commented Jan 30, 2026

Would we also want to include the IOMMU defaults we have set for linux-nvidia?

@jamieNguyenNVIDIA
Copy link
Collaborator Author

Would we also want to include the IOMMU defaults we have set for linux-nvidia?

That was the intent, but I do see some diffs between this PR and 6.17(-devel):

Configs that changed from enabled to disabled:
CONFIG_VFIO_NOIOMMU: =y (6.17) → # CONFIG_VFIO_NOIOMMU is not set (6.18)
CONFIG_IOMMU_IO_PGTABLE_DART: =y (6.17) → # CONFIG_IOMMU_IO_PGTABLE_DART is not set (6.18)
CONFIG_SUN50I_IOMMU: =y (6.17) → # CONFIG_SUN50I_IOMMU is not set (6.18)
CONFIG_VIRTIO_IOMMU: =y (6.17) → # CONFIG_VIRTIO_IOMMU is not set (6.18)
CONFIG_SPRD_IOMMU: =m (6.17) → # CONFIG_SPRD_IOMMU is not set (6.18)

Configs that changed from module to built-in:
CONFIG_IOMMUFD: =m (6.17) → =y (6.18)
CONFIG_MTK_IOMMU: =m (6.17) → =y (6.18)

Configs present in 6.17 but missing in 6.18:
CONFIG_XEN_GRANT_DMA_IOMMU=y - removed/not present in 6.18
CONFIG_RESCTRL_IOMMU=y - removed/not present in 6.18

A few of these aren't relevant to us, but should I get these ones to match?

Configs that changed from enabled to disabled:
CONFIG_VFIO_NOIOMMU: =y (6.17) → # CONFIG_VFIO_NOIOMMU is not set (6.18)
CONFIG_VIRTIO_IOMMU: =y (6.17) → # CONFIG_VIRTIO_IOMMU is not set (6.18)

Configs that changed from module to built-in:
CONFIG_IOMMUFD: =m (6.17) → =y (6.18)
CONFIG_MTK_IOMMU: =m (6.17) → =y (6.18)

And then I think CONFIG_RESCTRL_IOMMU should be enabled along with MPAM when we get the PR for that.


# Enable panic on oops for debugging
CONFIG_PANIC_ON_OOPS=y

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should remove the debug configs to keep this clean.

@nvmochs
Copy link
Collaborator

nvmochs commented Jan 31, 2026

Would we also want to include the IOMMU defaults we have set for linux-nvidia?

That was the intent, but I do see some diffs between this PR and 6.17(-devel):

Configs that changed from enabled to disabled:
CONFIG_VFIO_NOIOMMU: =y (6.17) → # CONFIG_VFIO_NOIOMMU is not set (6.18)
CONFIG_IOMMU_IO_PGTABLE_DART: =y (6.17) → # CONFIG_IOMMU_IO_PGTABLE_DART is not set (6.18)
CONFIG_SUN50I_IOMMU: =y (6.17) → # CONFIG_SUN50I_IOMMU is not set (6.18)
CONFIG_VIRTIO_IOMMU: =y (6.17) → # CONFIG_VIRTIO_IOMMU is not set (6.18)
CONFIG_SPRD_IOMMU: =m (6.17) → # CONFIG_SPRD_IOMMU is not set (6.18)

Configs that changed from module to built-in:
CONFIG_IOMMUFD: =m (6.17) → =y (6.18)
CONFIG_MTK_IOMMU: =m (6.17) → =y (6.18)

Configs present in 6.17 but missing in 6.18:
CONFIG_XEN_GRANT_DMA_IOMMU=y - removed/not present in 6.18
CONFIG_RESCTRL_IOMMU=y - removed/not present in 6.18

A few of these aren't relevant to us, but should I get these ones to match?

Configs that changed from enabled to disabled:
CONFIG_VFIO_NOIOMMU: =y (6.17) → # CONFIG_VFIO_NOIOMMU is not set (6.18)
CONFIG_VIRTIO_IOMMU: =y (6.17) → # CONFIG_VIRTIO_IOMMU is not set (6.18)

Configs that changed from module to built-in:
CONFIG_IOMMUFD: =m (6.17) → =y (6.18)
CONFIG_MTK_IOMMU: =m (6.17) → =y (6.18)

And then I think CONFIG_RESCTRL_IOMMU should be enabled along with MPAM when we get the PR for that.

I should have been more specific, I actually meant these specific IOMMU settings:

# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set
# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set
CONFIG_IOMMU_DEFAULT_PASSTHROUGH=y

As for the others that you shared...

I'm not following what you are comparing against here when you say changed from "enabled to disabled" or "disabled to enabled". Are you referring to the upstream defconfig changing between 6.17 and 6.18?

Probably easier to discuss in person next week. =)

@nvmochs
Copy link
Collaborator

nvmochs commented Jan 31, 2026

For Vera we'd also want these:
CONFIG_ARM64_BRBE=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y

FYI, this one was already in defconfig via Besar's patch and can be removed from nvidia.config:
CONFIG_NVIDIA_TEGRA410_C2C_PMU=m

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants