[Bug 227403] [ACPI] [nvidia] [drm] NVRM: rm_init_adapter() failed

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Apr 10 00:20:00 UTC 2018


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227403

            Bug ID: 227403
           Summary: [ACPI] [nvidia] [drm] NVRM: rm_init_adapter() failed
           Product: Base System
           Version: CURRENT
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: bugs at FreeBSD.org
          Reporter: kjcamannlists at gmail.com

I am testing FreeBSD on a new model of ThinkPad (T480) that was just released
three months ago.

Some variants of this model (and the similar T480s) have only Kaby Lake
integrated graphics, whereas others include a GeForce MX150.

The two GPUs in my system are:

- Integrated UHD Graphics 620 (on the i7-8650U, in my case)
- NVIDIA GeForce MX150 [reports as Lenovo GP108M]

I am using:

FreeBSD-12.0-CURRENT-amd64-20180322-r331345 snapshot (GENERIC kernel)
drm-next-kmod from ports for Intel driver
nvidia-driver-390 from ports

Both video drivers successfully attach to their devices. The i915 device works,
but the nvidia device does not. Whenever the adapter is initialized for any
reason (e.g., by `nvidia-xconfig --query-gpu-info` or `nvidia-debugdump -l`)
this appears in dmesg:

NVRM: failed to copy vbios to system memory.
NVRM: RmInitAdapter failed! (0x30:0xffff:662)
nvidia1: NVRM: rm_init_adapter() failed!

I filed this under ACPI because this error has appeared many times in the past
in both Linux and FreeBSD, and the resolution often has something to do with
the ACPI, and something looks "off" with ACPI here well.

devinfo -v shows the devices like this:

intel) vgapci0 pnpinfo vendor=0x8086 device=0x5917 subvendor=0x17aa
subdevice=0x225e class=0x030000 at slot=2 function=0 dbsf=pci0:0:2:0
handle=\_SB_.PCI.GFX0

nvidia) vgapci1 pnpinfo vendor=0x10de device=0x1d10 device=0x17aa
subvendor=0x17aa subdevice=0x225e class0x030200 at slot=0 funcition=0
dbsf=pci0:1:0:0 handle=\_SB_.PCI0.RP01.PXSX

Note that nvidia card's ACPI bus location is listed as `\_SB_PCI0.RP01.PXSX`.
In an Arch Linux system I dual-boot with, the NVIDIA card works correctly and
the ACPI firmware node is reported as `\_SB_.PCI0.RP01.PEGP` (where I guess
PEGP means something like PCI-Express Graphics Port). By "firmware node", I
mean the sysfs value defined here:
https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-devices-firmware_node

Is the problem that the system is "using" the wrong ACPI object to poke at the
vbios area? These two ACPI objects (PXSX and PEGP) appear in two different SSDT
tables -- PXSX appears in the table that occurs first in an acpidump. The
second one (PEGP) is incredibly more complex, and so probably contains most of
the interesting functionality. I tried to do more research before posting this
but I find ACPI completely bewildering.

Please let me know what other information to attach to this report.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list