On Thu, Mar 05, 2026 at 04:26:52PM +0900, Alexandre Courbot wrote:
> On Tue Mar 3, 2026 at 5:11 AM JST, Joel Fernandes wrote:
>> The PRAMIN aperture window register changed on Hopper+: pre-Hopper uses
>> NV_PBUS_BAR0_WINDOW while Hopper+ uses NV_XAL_EP_BAR0_WINDOW. Our
>> current code only programs the former, so we'd need a HAL to support
>> both. For now, V2-only is the safe choice. I've updated the comment to
>> explain this.
>
> I see, but then it seems that the correct check would be against the
> `Chipset`, not the version of the page table format? I understand the
> two are linked transitively, but they are in practice different engines.
Alex, makes sense, so I'll change it to the following then (still testing
but here is a preview):
@@ -439,17 +458,21 @@ pub(crate) fn run_self_test(
dev: &kernel::device::Device,
bar: Arc<Devres<Bar0>>,
vram_region: Range<u64>,
- mmu_version: super::pagetable::MmuVersion,
+ chipset: crate::gpu::Chipset,
) -> Result {
- use super::pagetable::MmuVersion;
+ use crate::gpu::Architecture;
// PRAMIN uses NV_PBUS_BAR0_WINDOW which is only available on pre-Hopper
GPUs.
- // Hopper+ uses a different register (NV_XAL_EP_BAR0_WINDOW), requiring a
HAL.
- if mmu_version != MmuVersion::V2 {
+ // Hopper+ uses NV_XAL_EP_BAR0_WINDOW instead, requiring a separate HAL
that
+ // has not been implemented yet.
+ if !matches!(
+ chipset.arch(),
+ Architecture::Turing | Architecture::Ampere | Architecture::Ada
+ ) {
dev_info!(
dev,
- "PRAMIN: Skipping self-tests for MMU {:?} (only V2 supported)\n",
- mmu_version
+ "PRAMIN: Skipping self-tests for {:?} (only pre-Hopper
supported)\n",
+ chipset
);
return Ok(());
}
--
Joel Fernandes