Pure EFI: MacBookPro3,1 (NV84) fails to load nouveau on linux 4.1 -- Invalid ROM contents
Submitted by Jeremy Huddleston Sequoia
Assigned to Nouveau Project
Description
I thought this may have been bug #89047, but it looks like a different issue as it is still reproducing on the 4.1 kernel.
This may be related to or a dupe of bug #90626 or bug #91402.
I have a MacBookPro3,1 with nVidia GeForce 8600M GT. The information below has been taken from Ubunto 15.10 (20150826 snapshot) with the following kernel:
Linux wedge 4.1.0-3-generic #3-Ubuntu SMP Tue Jul 28 12:25:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
The same behavior is observed on 3.19 kernels (Ubuntu 14.04.3 and 15.04). I did not try older kernels.
lspci shows:
01:00.0 VGA compatible controller: NVIDIA Corporation G84M [GeForce 8600M GT] (rev a1) (prog-if 00 [VGA controller])
Subsystem: Apple Inc. Device 00a0
Physical Slot: 1
Flags: fast devsel
Memory at d2000000 (32-bit, non-prefetchable) [size=16M]
Memory at c0000000 (64-bit, prefetchable) [size=256M]
Memory at d0000000 (64-bit, non-prefetchable) [size=32M]
I/O ports at 5000 [disabled] [size=128]
Expansion ROM at d3000000 [disabled] [size=128K]
Capabilities: <access denied>
In order to get a usable fb with this configuration, I need to blacklist the nouveau kernel module. I'm able to use X11 with fbdev, but I'm unable to use the fb (or X11) with nouveau.
Upon loading the nouveau kernel module, the following is logged by the kernel:
Aug 27 12:30:44 wedge kernel: [ 57.905775] [drm] Initialized drm 1.1.0 20060810
Aug 27 12:30:44 wedge kernel: [ 57.938200] wmi: Mapper loaded
Aug 27 12:30:44 wedge kernel: [ 58.013484] checking generic (c0030000 710000) vs hw (c0000000 10000000)
Aug 27 12:30:44 wedge kernel: [ 58.013489] fb: switching to nouveaufb from EFI VGA
Aug 27 12:30:44 wedge kernel: [ 58.013567] Console: switching to colour dummy device 80x25
Aug 27 12:30:44 wedge kernel: [ 58.014140] nouveau 0000:01:00.0: enabling device (0006 -> 0007)
Aug 27 12:30:44 wedge kernel: [ 58.014535] nouveau [ DEVICE][0000:01:00.0] BOOT0 : 0x084700a2
Aug 27 12:30:44 wedge kernel: [ 58.014540] nouveau [ DEVICE][0000:01:00.0] Chipset: G84 (NV84)
Aug 27 12:30:44 wedge kernel: [ 58.014542] nouveau [ DEVICE][0000:01:00.0] Family : NV50
Aug 27 12:30:44 wedge kernel: [ 58.014612] nouveau 0000:01:00.0: Invalid ROM contents
Aug 27 12:30:44 wedge kernel: [ 58.014630] nouveau ![ VBIOS][0000:01:00.0] unable to locate usable image
Aug 27 12:30:44 wedge kernel: [ 58.014636] nouveau E[ DEVICE][0000:01:00.0] failed to create 0x10000001, -22
Aug 27 12:30:44 wedge kernel: [ 58.014644] nouveau E[ DRM] failed to create 0x00000080, -22
Aug 27 12:30:44 wedge kernel: [ 58.014980] nouveau: probe of 0000:01:00.0 failed with error -22
After loading nouvea, the fb does not update. Unloading nouveau succeeds, but the fb stays unresponsive (it does not switch back to EFI VGA). The following is logged when unloading nouveau:
Aug 27 12:39:06 wedge kernel: [ 559.546939] [drm] Module unloaded
---
Issues that should be addressed:
- Upon failing, fb should switch back to EFI VGA so as to not make the system unusable
- Upon unloading the module, fb should switch back to EFI VGA
- The underlying error should be fixed