bugzilla-daemon at freedesktop.org
2016-Jan-19 17:52 UTC
[Nouveau] [Bug 93778] New: Noveau GeForce GT 640M vbios error
https://bugs.freedesktop.org/show_bug.cgi?id=93778 Bug ID: 93778 Summary: Noveau GeForce GT 640M vbios error Product: xorg Version: unspecified Hardware: x86-64 (AMD64) OS: Linux (All) Status: NEW Severity: normal Priority: medium Component: Driver/nouveau Assignee: nouveau at lists.freedesktop.org Reporter: lahs8353 at yahoo.com QA Contact: xorg-team at lists.x.org Created attachment 121140 --> https://bugs.freedesktop.org/attachment.cgi?id=121140&action=edit acpidump Noveau fails to load, yielding error messages in dmesg suggesting problems with vbios: nouveau: probe of 0000:01:00.0 failed with error -22 [ 17.520208] nouveau 0000:01:00.0: devinit: 0x9b29[0]: unknown opcode 0x00 -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20160119/fcd772a3/attachment.html>
bugzilla-daemon at freedesktop.org
2016-Jan-19 18:24 UTC
[Nouveau] [Bug 93778] [NVE7] Noveau GeForce GT 640M vbios error
https://bugs.freedesktop.org/show_bug.cgi?id=93778 Ilia Mirkin <imirkin at alum.mit.edu> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Noveau GeForce GT 640M |[NVE7] Noveau GeForce GT |vbios error |640M vbios error --- Comment #1 from Ilia Mirkin <imirkin at alum.mit.edu> --- I think the issue is a buggy _ROM method. Instead of Add (Arg0, Arg1, Local2) it should be Add(Local0, Local1, Local2) :( It clamps the read length to 0x1000, which is common. But then it goes ahead and sets the length to the total length - offset if the offset + original length (not the clamped length) is too big. No idea how negatives are handled in ACPI either. Our first request is offset = 0, length = 0x1000, so that should be good. However our second request is offset = 0x1000 length = round_up(remainder, 0x1000). I think this will hit the issue outlined above. Instead of the length being clamped to 0x1000, it will determine that we're overflowing and reset the length to total - offset, which will be way bigger than 0x1000. Since it has the vbios data in multiple 32K regions, this won't return the correct data. Ben, thoughts on how to detect this? Scope (\_SB.PCI0.PEG0.PEGP) { OperationRegion (VBOR, SystemMemory, 0x9AF9C018, 0x00016004) Field (VBOR, DWordAcc, Lock, Preserve) { RVBS, 32, VBS1, 262144, VBS2, 262144, VBS3, 196608, VBS4, 0 } } Method (_ROM, 2, NotSerialized) // _ROM: Read-Only Memory { Store (Arg0, Local0) Store (Arg1, Local1) Name (VROM, Buffer (Local1) { 0x00 /* . */ }) If (LGreater (Local1, 0x1000)) { Store (0x1000, Local1) } If (LGreater (Arg0, RVBS)) { Return (VROM) /* \_SB_.PCI0.PEG0.PEGP._ROM.VROM */ } Add (Arg0, Arg1, Local2) If (LGreater (Local2, RVBS)) { Subtract (RVBS, Local0, Local1) } If (LLess (Local0, 0x8000)) { Mid (VBS1, Local0, Local1, VROM) /* \_SB_.PCI0.PEG0.PEGP._ROM.VROM */ } Else { Subtract (Local0, 0x8000, Local0) If (LLess (Local0, 0x8000)) { Mid (VBS2, Local0, Local1, VROM) /* \_SB_.PCI0.PEG0.PEGP._ROM.VROM */ } Else { Subtract (Local0, 0x8000, Local0) If (LLess (Local0, 0x8000)) { Mid (VBS3, Local0, Local1, VROM) /* \_SB_.PCI0.PEG0.PEGP._ROM.VROM */ } Else { Subtract (Local0, 0x8000, Local0) If (LLess (Local0, 0x8000)) { Mid (VBS4, Local0, Local1, VROM) /* \_SB_.PCI0.PEG0.PEGP._ROM.VROM */ } } } } Return (VROM) /* \_SB_.PCI0.PEG0.PEGP._ROM.VROM */ } -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20160119/3acaa6a5/attachment.html>
bugzilla-daemon at freedesktop.org
2016-Jan-20 14:31 UTC
[Nouveau] [Bug 93778] [NVE7] Noveau GeForce GT 640M vbios error
https://bugs.freedesktop.org/show_bug.cgi?id=93778 --- Comment #2 from Ilia Mirkin <imirkin at alum.mit.edu> --- Over IRC, the OP reported that commenting out the fast acpi method does indeed make nouveau load properly. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20160120/4a4fef1c/attachment.html>
bugzilla-daemon at freedesktop.org
2017-Jan-11 23:08 UTC
[Nouveau] [Bug 93778] [NVE7] Noveau GeForce GT 640M vbios error
https://bugs.freedesktop.org/show_bug.cgi?id=93778 --- Comment #3 from Marcel S. <me at marcel-sander.eu> --- Created attachment 128903 --> https://bugs.freedesktop.org/attachment.cgi?id=128903&action=edit Extracted using kernel 3.16 Nouveau works successfully on kernel 3.16. I copied the bios from /sys/kernel/debug/dri/1/vbios.rom. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20170111/b8fa3a13/attachment.html>
bugzilla-daemon at freedesktop.org
2017-Jan-11 23:17 UTC
[Nouveau] [Bug 93778] [NVE7] Noveau GeForce GT 640M vbios error
https://bugs.freedesktop.org/show_bug.cgi?id=93778 Ilia Mirkin <imirkin at alum.mit.edu> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED --- Comment #4 from Ilia Mirkin <imirkin at alum.mit.edu> --- This bug was fixed by 5dc7f4aa9d84ea94b54a9bfcef095f0289f1ebda, part of kernel 4.10-rc1 (and potentially some earlier commits also addressed this). Should backport pretty cleanly. Pawel, if you still have issues, please reopen. If ANYONE OTHER THAN Pawel has issues that look like this, open a fresh issue. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20170111/91175b68/attachment-0001.html>