Bug 27064 - [NVA8] can't find VBIOS on Asus UL50VT laptop
Summary: [NVA8] can't find VBIOS on Asus UL50VT laptop
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/nouveau (show other bugs)
Version: 7.5 (2009.10)
Hardware: x86-64 (AMD64) Linux (All)
: medium critical
Assignee: Nouveau Project
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-03-13 14:28 UTC by Matthew Stanton
Modified: 2014-08-21 21:17 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
full dmesg output (156.94 KB, text/plain)
2010-04-08 00:48 UTC, Giacomo Bagnoli
no flags Details

Description Matthew Stanton 2010-03-13 14:28:58 UTC
This is a dual graphics laptop.  It has a Nvidia g210m and a intel x4500.  Nouveau KMS is enabled via the kernel staging drivers and Intel KMS is disabled via the kernel. The nouveau module is loading by default.  

When I boot my computer, the Kernel modeset never actually happens.  I have the December nouveau firmware package installed, but I get error messages.


Here is the error messages

[    6.636822] nouveau 0000:01:00.0: enabling device (0000 -> 0003)
[    6.636838] nouveau 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    6.636865] nouveau 0000:01:00.0: setting latency timer to 64
[    6.639651] ACPI Error: Needed [Buffer/String/Package], found [Integer] ffff88013cb6e900 (20091214/exresop-590)
[    6.639660] ACPI Exception: AE_AML_OPERAND_TYPE, While resolving operands for [OpcodeName unavailable] (20091214/dswexec-445)
[    6.639668] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.VGA_._DSM] (Node ffff88013fa5d120), AE_AML_OPERAND_TYPE
[    6.639745] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.P0P1.VGA_._DSM] (Node ffff88013fa5eac0), AE_AML_OPERAND_TYPE
[    6.639803] [drm] nouveau 0000:01:00.0: failed to evaluate _DSM: 12291
[    6.640552] [drm] nouveau 0000:01:00.0: Detected an NV50 generation card (0x0a8a00a2)
[    6.642081] [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from PRAMIN
[    6.642101] [drm] nouveau 0000:01:00.0: ... BIOS signature not found
[    6.642103] [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from PROM
[    6.642121] [drm] nouveau 0000:01:00.0: ... BIOS signature not found
[    6.642123] [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from PCIROM
[    6.642188] nouveau 0000:01:00.0: Invalid ROM contents
[    6.642217] [drm] nouveau 0000:01:00.0: ... BIOS signature not found
[    6.642219] [drm] nouveau 0000:01:00.0: No valid BIOS image found
[    6.642340] nouveau 0000:01:00.0: PCI INT A disabled



minimal Xorg config

Section "Device"
    Driver         "nouveau"
    BusId          "PCI:1:0:0"
EndSection
Comment 1 Xavier 2010-03-13 14:47:19 UTC
Please provide full kernel logs. Which kernel version are you using ?

Afaik you need switcheroo for dual graphics, this code should be in 2.6.34-rc1 or in drm-next.
http://lwn.net/Articles/376311/

But no idea if it has any chances to work with nouveau. The initial patch says it was only tested with Intel/Ati.
Comment 2 Giacomo Bagnoli 2010-04-08 00:47:03 UTC
I have a similar problem with a laptop with dual-graphics.
I have tried 2.6.24-rc3 and latest linux-2.6 git (in which i pulled latest code from nouveau git and acpi/test). This is the "nouveau" part of dmesg, full dmesg is attached.

[    9.136247] bus: 'pci': add driver nouveau
[    9.136258] bus: 'pci': driver_probe_device: matched device 0000:01:00.0 with
 driver nouveau
[    9.136261] bus: 'pci': really_probe: probing driver nouveau with device 0000
:01:00.0
[    9.136275] nouveau 0000:01:00.0: setting latency timer to 64
[    9.137762] device: 'controlD64': device_add
[    9.137794] PM: Adding info for No Bus:controlD64
[    9.137848] device: 'card0': device_add
[    9.137855] PM: Adding info for No Bus:card0
[    9.139301] [drm] nouveau 0000:01:00.0: Detected an NV50 generation card (0x0a5580a2)
[    9.145797] [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from PRAMIN
[    9.145811] [drm] nouveau 0000:01:00.0: ... BIOS signature not found
[    9.145814] [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from PROM
[    9.145826] [drm] nouveau 0000:01:00.0: ... BIOS signature not found
[    9.145829] [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from PCIROM
[    9.145924] nouveau 0000:01:00.0: Invalid ROM contents
[    9.145970] [drm] nouveau 0000:01:00.0: ... BIOS signature not found
[    9.145972] [drm] nouveau 0000:01:00.0: No valid BIOS image found
[    9.145998] device: 'card0': device_unregister
[    9.146000] PM: Removing info for No Bus:card0
[    9.146045] device: 'controlD64': device_unregister    9.145970] [drm] nouveau 0000:01:00.0: ... BIOS signature not found
[    9.145972] [drm] nouveau 0000:01:00.0: No valid BIOS image found
[    9.145998] device: 'card0': device_unregister
[    9.146000] PM: Removing info for No Bus:card0
[    9.146045] device: 'controlD64': device_unregister
[    9.146049] PM: Removing info for No Bus:controlD64



[    9.146049] PM: Removing info for No Bus:controlD64
Comment 3 Giacomo Bagnoli 2010-04-08 00:48:34 UTC
Created attachment 34801 [details]
full dmesg output
Comment 4 Andrea Tacconi 2010-04-08 01:09:24 UTC
Try to disable nvidiafb.

http://nouveau.freedesktop.org/wiki/KernelModeSetting
Comment 5 Marcin Slusarz 2011-12-05 12:19:07 UTC
Newer version of Nouveau kernel module might handle your card (Nouveau implements one more VBIOS loading method). Please retest it.
Comment 6 Miles Lane 2012-10-04 19:48:11 UTC
Are any of you involved in the development of the nouveau kernel driver?  I am currently attempting to get the nouveau kernel driver to load/setup successfully.  I also have a UL50VT.  This laptop does not support Optimus, but rather has a hardware MUX.

I looked at the nouveau and i915 code and see they need to parse DSM information to determine whether vgaswitcheroo is supported.  In addition to the nouveau driver not getting set up correctly, I don't see /sys/kernel/debug/vgaswitcheroo.

nouveau T[  DEVICE][0000:01:00.0] inc() == 2
nouveau T[     DRM] inc() == 3
nouveau T[     DRM] inc() == 4
nouveau T[     DRM] inc() == 5
nouveau T[  DEVICE][0000:01:00.0] inc() == 3
nouveau  [  DEVICE][0000:01:00.0] BOOT0  : 0x0a8a00a2
nouveau  [  DEVICE][0000:01:00.0] Chipset: GT218 (NVA8)
nouveau  [  DEVICE][0000:01:00.0] Family : NV50
nouveau D[  DEVICE][0000:01:00.0] crystal freq: 27000KHz
nouveau T[  DEVICE][0000:01:00.0] inc() == 4
nouveau  [   VBIOS][0000:01:00.0] checking PRAMIN for image...
nouveau  [   VBIOS][0000:01:00.0] ... signature not found
nouveau  [   VBIOS][0000:01:00.0] checking PROM for image...
nouveau  [   VBIOS][0000:01:00.0] ... signature not found
nouveau  [   VBIOS][0000:01:00.0] checking ACPI for image...
nouveau  [   VBIOS][0000:01:00.0] ... signature not found
nouveau  [   VBIOS][0000:01:00.0] checking PCIROM for image...
nouveau 0000:01:00.0: Invalid ROM contents
nouveau  [   VBIOS][0000:01:00.0] ... signature not found
nouveau E[   VBIOS][0000:01:00.0] unable to locate usable image
nouveau E[  DEVICE][0000:01:00.0] failed to create 0x10000001, -22
nouveau T[  DEVICE][0000:01:00.0] dec() == 3
nouveau E[     DRM] failed to create 0x80000080, -22
nouveau T[  DEVICE][0000:01:00.0] dec() == 2
nouveau T[     DRM] dec() == 4
nouveau T[     DRM] dec() == 3
nouveau T[     DRM] dec() == 2
nouveau D[     DRM] fini running
nouveau T[     DRM] 0xffffffff:0xffffffff fini children
nouveau T[     DRM] 0xffffffff:0xffffffff fini running
nouveau T[     DRM] use(-1) == 1
nouveau T[     DRM] 0xffffffff:0xffffffff fini completed
nouveau D[     DRM] fini completed with 0
nouveau T[     DRM] dec() == 0
nouveau D[     DRM] destroying
nouveau T[  DEVICE][0000:01:00.0] dec() == 1
nouveau T[     DRM] 0xffffffff:0xffffffff destroy running
nouveau T[     DRM] 0xffffffff:0xffffffff destroy completed
nouveau T[     DRM] dec() == -1
nouveau T[  DEVICE][0000:01:00.0] dec() == 0
nouveau D[  DEVICE][0000:01:00.0] destroying
nouveau: probe of 0000:01:00.0 failed with error -22

# lspci
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce G210M] (rev a2)

dmesg:

[    3.517680] vesafb: mode is 1024x768x32, linelength=4096, pages=0
[    3.517691] vesafb: scrolling: redraw
[    3.517700] vesafb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    3.518342] vesafb: framebuffer at 0xd0000000, mapped to 0xffffc90011380000, using 3072k, total 3072k
[    3.555338] Console: switching to colour frame buffer device 128x48
[    3.585908] fb0: VESA VGA frame buffer device
[   21.367309] Linux agpgart interface v0.103
[   21.422456] ACPI: AC Adapter [AC0] (on-line)
[   21.425939] agpgart-intel 0000:00:00.0: Intel GM45 Chipset
[   21.426209] agpgart-intel 0000:00:00.0: detected gtt size: 2097152K total, 262144K mappable
[   21.427707] agpgart-intel 0000:00:00.0: detected 32768K stolen memory
[   21.429098] agpgart-intel 0000:00:00.0: AGP aperture is 256M @ 0xd0000000
[   21.704900] [drm] Initialized drm 1.1.0 20060810
[   23.171595] ACPI Error: Needed [Buffer/String/Package], found [Integer] ffff88013a694000 (20120711/exresop-590)
[   23.171605] ACPI Exception: AE_AML_OPERAND_TYPE, While resolving operands for [OpcodeName unavailable] (20120711/dswexec-460)
[   23.171899] ACPI Error: Method parse/execution failed [\_SB_.PCI0.VGA_._DSM] (Node ffff88013ab50000), AE_AML_OPERAND_TYPE (20120711/psparse-536)
[   23.172151] failed to evaluate _DSM: 12291
[   23.193181] ACPI Error: Needed [Buffer/String/Package], found [Integer] ffff88013a695c20 (20120711/exresop-590)
[   23.193192] ACPI Exception: AE_AML_OPERAND_TYPE, While resolving operands for [OpcodeName unavailable] (20120711/dswexec-460)
[   23.193548] ACPI Error: Method parse/execution failed [\_SB_.PCI0.VGA_._DSM] (Node ffff88013ab50000), AE_AML_OPERAND_TYPE (20120711/psparse-536)
[   23.193669] ACPI Error: Method parse/execution failed [\_SB_.PCI0.P0P1.VGA_._DSM] (Node ffff88013ab6a730), AE_AML_OPERAND_TYPE (20120711/psparse-536)
[   23.193955] failed to evaluate _DSM: 12291
[   23.199675] checking generic (d0000000 300000) vs hw (e0000000 10000000)
[   23.199680] checking generic (d0000000 300000) vs hw (fa000000 2000000)
[   23.199911] nouveau 0000:01:00.0: enabling device (0004 -> 0007)
[   23.215724] asus_laptop: Asus Laptop Support version 0.42
[   23.265572] asus_laptop:   UL50VT model detected
[   23.287663] checking generic (d0000000 300000) vs hw (d0000000 10000000)
[   23.287668] fb: conflicting fb hw usage inteldrmfb vs VESA VGA - removing generic driver
[   23.482305] i915 0000:00:02.0: setting latency timer to 64
[   23.622888] i915 0000:00:02.0: irq 46 for MSI/MSI-X
[   23.632024] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[   23.632029] [drm] Driver supports precise vblank timestamp query.
[   23.811555] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem
[   23.811560] vgaarb: transferring owner from PCI:0000:00:02.0 to PCI:0000:01:00.0
Comment 7 Miles Lane 2012-10-04 19:53:16 UTC
Also, I downloaded the source for the acpi_call modules.  When I run test_off.sh, I get:

     Trying \_SB.PCI0.P0P1.VGA._OFF: works!
Comment 8 Ilia Mirkin 2013-08-20 22:42:08 UTC
Does this still occur with the latest kernel? There might be something specific to this laptop about how the VBIOS is stored... if it still doesn't work with the latest, we'd need an mmiotrace of the nvidia proprietary driver.
Comment 9 Ilia Mirkin 2014-08-21 21:08:14 UTC
No response in a year. Closing as invalid. Probably fixed with newer kernels which are less selective about when to accept a vbios from ACPI.
Comment 10 Roy 2014-08-21 21:17:54 UTC
Owning the same laptop, I can confirm that at least with kernel 3.16 reading the VBIOS works correctly,


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.