diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-23 00:09:13 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-23 00:09:13 -0400 |
| commit | d28e5bb94752ba523b826945409e5ad3206dad5a (patch) | |
| tree | e0247ceff689257e2246a8691fb448e1568bc952 /kernel/bar_emulation.c | |
| parent | 7d6c789a469de154ee6d26a7fb9161ef7279a34a (diff) | |
| download | open-iov-d28e5bb94752ba523b826945409e5ad3206dad5a.tar.gz open-iov-d28e5bb94752ba523b826945409e5ad3206dad5a.zip | |
kernel: drop PCFG poison experiment and config-write spam, keep bus-info detail log
The poison test (fill every dword of BAR0 0x88000-0x88FFF, 0xB80000-
0xB80EFF, 0xC08000-0xC08EFF with 0x103) did not change the CUDA "Unknown
PCIe speed" failure, proving the failing BUS_GET_INFO_V2 index-3 data does
not come from any BAR0 mirror read. Combined with the QEMU config-space
behavior (link registers zeroed, type=0x92, 0x84 never read from us) the
value must come from the VGPU_STATIC_INFO branch in getBusInfos (pVSI->
pcieGpuLinkCaps), i.e. the guest needs the host vGPU static-info payload.
Cleanup: remove the poison loops and the per-write CFGWR log; keep the
once-per-init PCIe cap print and add per-entry BUS_GET_INFO_V2 logging
(index+data) for the ongoing CUDA/UVM work.
Diffstat (limited to 'kernel/bar_emulation.c')
| -rw-r--r-- | kernel/bar_emulation.c | 15 |
1 files changed, 0 insertions, 15 deletions
diff --git a/kernel/bar_emulation.c b/kernel/bar_emulation.c index 1229a77..2d82303 100644 --- a/kernel/bar_emulation.c +++ b/kernel/bar_emulation.c @@ -309,21 +309,6 @@ int nv_vgpu_bar_emul_init(struct nv_vgpu_device *vgpu) *(u32 *)((u8 *)ctx->bar0_shadow + 0xC08084) = 0x00000103; *(u32 *)((u8 *)ctx->bar0_shadow + 0xC08088) = 0x01030000; - /* TEMP EXPERIMENT: poison the candidate mirror windows with the - * Gen3 x16 link-caps value in every dword, to locate where the - * driver's gpuReadBusConfigReg(0x84) actually lands. Ranges are - * chosen to avoid real emulated registers (the CPU intr tree starts - * at 0xB81000). */ - { - u32 off; - - for (off = 0x88000; off < 0x89000; off += 4) - *(u32 *)((u8 *)ctx->bar0_shadow + off) = 0x00000103; - for (off = 0xB80000; off < 0xB80F00; off += 4) - *(u32 *)((u8 *)ctx->bar0_shadow + off) = 0x00000103; - for (off = 0xC08000; off < 0xC08F00; off += 4) - *(u32 *)((u8 *)ctx->bar0_shadow + off) = 0x00000103; - } /* * Serve a valid VBIOS at the PROM window (BAR0+0x300000). |
