Platform Software Patches and Configurations Addendum: Vera#
This section provides additional information about software patches and configuration settings for the Vera platform that are not yet upstream or are hardware workarounds.
Important
This addendum supplements the main Vera platform documentation. Review the main guide first for upstream patches and configurations.
Note
The patches and configurations listed in this addendum are subject to change as they progress through the upstreaming process or are resolved through hardware revisions.
Vera Linux Kernel Patches (Non-Upstream/Hardware Workarounds)#
This section provides information about Linux Kernel patches for the Vera platform that are not yet upstream or are hardware workarounds.
Non-Upstream Bare Metal Linux Kernel#
The tables in this section provide a list of Linux kernel patches that are not yet upstream but are necessary for the optimal operation of the Vera platform.
Note
These patches might have dependencies on other patches. Ensure all required dependencies are applied when using these patches.
The following table contains patches that enable functions and are required for bare metal support on the Vera platform:
LKML Discussion |
Git Commit |
Git Description |
Status |
|---|---|---|---|
NVIDIA: VR: SAUCE: soc/tegra: misc: Use SMCCC to get chipid |
linux-nvidia-6.18
ETA v7.1
|
||
NVIDIA: VR: SAUCE: soc/tegra: pmc: Add PMC support for Tegra410 |
|||
NVIDIA: VR: SAUCE: i2c: tegra: Introduce tegra_i2c_variant to identify DVC and VI |
|||
NVIDIA: VR: SAUCE: i2c: tegra: Add logic to support different register offsets |
|||
NVIDIA: VR: SAUCE: i2c: tegra: Add support for Tegra410 |
|||
NVIDIA: VR: SAUCE: cpufreq: CPPC: Update cached perf_ctrls on sysfs write |
|||
NVIDIA: VR: SAUCE: cpufreq: CPPC: Add sysfs for min/max_perf and perf_limited |
|||
NVIDIA: VR: SAUCE: ACPI: CPPC: add APIs and sysfs interface for perf_limited |
|||
NVIDIA: VR: SAUCE: ACPI: CPPC: add APIs and sysfs interface for min/max_perf |
|||
NVIDIA: VR: SAUCE: ACPI: CPPC: Extend cppc_set_epp_perf() for FFH/SystemMemory |
|||
NVIDIA: VR: SAUCE: ACPI: CPPC: Warn on missing mandatory DESIRED_PERF register |
|||
NVIDIA: VR: SAUCE: ACPI: CPPC: Add cppc_get_perf() API to read performance controls |
|||
NVIDIA: VR: SAUCE: PCI: Allow ATS to be always on for CXL.cache capable devices |
linux-nvidia-6.18 |
||
NVIDIA: VR: SAUCE: PCI: Allow ATS to be always on for non-CXL NVIDIA GPUs |
|||
NVIDIA: VR: SAUCE: iommu/arm-smmu-v3: Allow ATS to be always on |
|||
NVIDIA: VR: SAUCE: firmware: smccc: add support for Live Firmware Activation (LFA) |
|||
NVIDIA: VR: SAUCE: firmware: smccc: add timeout, touch wdt |
|||
NVIDIA: VR: SAUCE: firmware: smccc: register as platform driver |
|||
n/a |
NVIDIA: VR: CCA: SAUCE: KVM: arm64: Expose KVM_CAP_ARM_RMI via module parameter |
||
NVIDIA: VR: CCA: SAUCE: arm64: RME: Add bounds check |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RME: Add MECID support |
|||
NVIDIA: VR: CCA: SAUCE: arm64: rsi: Move RSI init to fix Realm guest boot on BBML2 |
|||
NVIDIA: VR: CCA: SAUCE: KVM: arm64: Allow activating realms |
|||
NVIDIA: VR: CCA: SAUCE: KVM: arm64: Expose KVM_ARM_VCPU_REC to user space |
|||
NVIDIA: VR: CCA: SAUCE: KVM: arm64: Expose support for private memory |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Provide accurate register list |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Provide register list for unfinalized RMI RECs |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Configure max SVE vector length for a Realm |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Propagate max SVE vector length from RMM |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Initialize PMCR.N with number counter supported by RMM |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Set breakpoint parameters through SET_ONE_REG |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Propagate number of breakpoints and watchpoints to userspace |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Enable PMU support with a realm guest |
|||
NVIDIA: VR: CCA: SAUCE: arm_pmu: Provide a mechanism for disabling the physical IRQ |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Prevent Device mappings for Realms |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Always use 4k pages for realms |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Allow checking SVE on VM instance |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: support RSI_HOST_CALL |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: allow userspace to inject aborts |
|||
NVIDIA: VR: CCA: SAUCE: arm64: Don’t expose stolen time for realm guests |
|||
NVIDIA: VR: CCA: SAUCE: KVM: arm64: WARN on injected undef exceptions |
|||
NVIDIA: VR: CCA: SAUCE: KVM: arm64: Handle Realm PSCI requests |
|||
NVIDIA: VR: CCA: SAUCE: KVM: arm64: Validate register access for a Realm VM |
|||
NVIDIA: VR: CCA: SAUCE: KVM: arm64: Handle realm VCPU load |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Runtime faulting of memory |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Allow populating initial contents |
|||
NVIDIA: VR: CCA: SAUCE: KVM: arm64: Handle realm MMIO emulation |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Handle RMI_EXIT_RIPAS_CHANGE |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Handle realm enter/exit |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Allow VMM to set RIPAS |
|||
NVIDIA: VR: CCA: SAUCE: KVM: arm64: Support timers in realm RECs |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Support for the VGIC in realms |
|||
NVIDIA: VR: CCA: SAUCE: KVM: arm64: vgic: Provide helper for number of list registers |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Allocate/free RECs to match vCPUs |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: RTT tear down |
|||
NVIDIA: VR: CCA: SAUCE: KVM: arm64: Allow passing machine type in KVM creation |
|||
NVIDIA: VR: CCA: SAUCE: kvm: arm64: Don’t expose unsupported capabilities for realm guests |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: ioctls to create and configure realms |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Define the user ABI |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Check for RMI support at KVM init |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Add wrappers for RMI calls |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RMI: Add SMC definitions for calling the RMM |
|||
NVIDIA: VR: CCA: SAUCE: arm64: RME: Handle Granule Protection Faults (GPFs) |
|||
NVIDIA: VR: CCA: SAUCE: kvm: arm64: Include kvm_emulate.h in kvm/arm_psci.h |
|||
gpio: tegra186: Simplify GPIO line name prefix handling |
linux-next
ETA v7.1
|
||
gpio: tegra186: Support multi-socket devices |
The following table contains patches that resolve faults in enablement patches and other issues discovered during testing:
LKML Discussion |
Git Commit |
Git Description |
Status |
|---|---|---|---|
NVIDIA: VR: SAUCE: firmware: smccc: lfa: fix work item re-initialization race |
linux-nvidia-6.18 |
The following table contains optional patches that improve performance on Vera platforms:
LKML Discussion |
Git Commit |
Git Description |
Status |
|---|---|---|---|
n/a |
n/a |
n/a |
n/a |
The following table contains optional patches that enable functions, or resolve faults, with performance tooling on Vera platforms:
LKML Discussion |
Git Commit |
Git Description |
Status |
|---|---|---|---|
NVIDIA: VR: SAUCE: arm64: defconfig: Enable NVIDIA TEGRA410 PMU |
linux-nvidia-6.18
ETA v7.1
|
||
NVIDIA: VR: SAUCE: perf: add NVIDIA Tegra410 C2C PMU |
|||
NVIDIA: VR: SAUCE: perf: add NVIDIA Tegra410 CPU Memory Latency PMU |
|||
NVIDIA: VR: SAUCE: perf/arm_cspmu: nvidia: Add Tegra410 PCIE-TGT PMU |
|||
NVIDIA: VR: SAUCE: perf/arm_cspmu: nvidia: Add Tegra410 PCIE PMU |
|||
NVIDIA: VR: SAUCE: perf/arm_cspmu: Add arm_cspmu_acpi_dev_get |
|||
NVIDIA: VR: SAUCE: perf/arm_cspmu: nvidia: Add Tegra410 UCF PMU |
|||
NVIDIA: VR: SAUCE: perf/arm_cspmu: nvidia: Rename doc to Tegra241 |
|||
NVIDIA: VR: SAUCE: perf vendor events arm64: Add Tegra410 Olympus PMU events |
Hardware Workaround Patches#
The following table contains patches that work around hardware errata or limitations:
Note
Unless mentioned otherwise, the following patches are mandatory for Vera.
LKML Discussion |
Git Commit |
Git Description |
Status |
|---|---|---|---|
n/a |
NVIDIA: VR: SAUCE: arm64: Add workaround to convert MT_NORMAL_NC to Device-nGnRE |
linux-nvidia-6.18 |
Linux Kernel Configs (Non-Upstream/Hardware Workarounds)#
This section provides information about Linux Kernel config settings for the Vera platform that are not yet upstream or related to hardware workarounds.
The following table contains config settings that enable functions and are required for bare metal support on the Vera platform:
Kernel Config |
Description |
|---|---|
CONFIG_ARM64_WORKAROUND_NC_TO_NGNRE=y |
Enable workaround to convert MT_NORMAL_NC to Device-nGnRE |
CONFIG_ARM_LFA=y |
Enable Arm Live Firmware activation support |
CONFIG_EFI_SECRET=y |
Enable EFI secret area securityfs support |
CONFIG_KVM=y |
Enable Kernel-based Virtual Machine (KVM) support (needed for CCA) |
The following table contains optional config settings that enable performance tooling functions on Vera platforms:
Kernel Config |
Description |
|---|---|
CONFIG_NVIDIA_TEGRA410_CMEM_LATENCY_PMU=m |
Enable T410 CMEM Latency PMU driver |
CONFIG_NVIDIA_TEGRA410_C2C_PMU=m |
Enable T410 C2C PMU driver |