Following a recent update to snv_108, I could no longer get any graphics output on my Ultra 20 M2 and subsequent updates weren't helping either. For some reason the graphics card (onboard nVidia Quadro FX 560) was not being seen correctly by the OS and the only indication of a problem was the following in the /var/log/Xorg.log.0:

X.Org X Server 1.5.3
Release Date: 5 November 2008
X Protocol Version 11, Revision 0
Build Operating System: SunOS 5.11 snv_108 i86pc
Current Operating System: SunOS devon 5.11 snv_110 i86pc
Build Date: 26 February 2009  09:49:34PM


Solaris ABI: 64-bit
SUNWxorg-server package version: 6.9.0.5.11.10100,REV=0.2008.10.16
SUNWxorg-graphics-ddx package version: 6.9.0.5.11.10100,REV=0.2008.10.16
SUNWxorg-mesa package version: 6.9.0.5.11.10100,REV=0.2008.10.16
        Before reporting problems, check https://sunsolve.sun.com/
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Fri Apr 17 14:17:49 2009
(EE) Unable to locate/open config file
(II) Loader magic: 5ecca0
(II) Module ABI versions:
        X.Org ANSI C Emulation: 0.4
        X.Org Video Driver: 4.1
        X.Org XInput driver : 2.1
        X.Org Server Extension : 1.1
        X.Org Font Renderer : 0.6
(II) Loader running on solaris

Fatal server error:
xf86OpenConsole: Cannot open /dev/fb (No such file or directory)

And sure enough, there was no /dev/fb device, or more specifically the device it was pointing to (/devices/pci@0,0/pci10de,377@f/display@0:nvidia0) didn't exist anymore.

The only indication of a possible error was I was now getting "WARNING: PCIE init err info failed BDF 0x0" messages in my messages file, which I wasn't before.

A quick search through the known bugs soon revealed (internally accessible only):

CR ID: 6811922
Synopsis: PCIE init err info failed BDF 0x0 on snv_109 (Ultra 20 M2)

For some reason this has been closed as "Not reproducable", and someone rightly pointed out this shouldn't be the case as it clearly IS reproducable...

This bug is marked as Not Reproducible; however, the problem can occur on any machine that's not running firmware > 1.52.

My machine only had rev 1.45.0 of the firmware, so I needed to at least update my firmware to clear these PCIE errors, and hopefully fix the issue with the graphics.

Now updating the firmware is a really simple matter: download the "Tools and Drivers" ISO image, burn to DVD (as it's about 1.3GB), boot from DVD and select option 2 to perform the update. Assuming you have a DVD burner and free DVD-R on hand. I didn't so I had to think of another method to perform the update.

And that's just what I did. See HOWTO: Update Ultra 20 BIOS From a USB Stick in which I documented the method I took to create a bootable USB stick from the "Drivers and Tools" DVD ISO image which had just enough on it to perform the BIOS update.

And guess what, it solved my problems: both of them. It seems there has been a change in the PCI-E software within OpenSolaris that seems to require a later version of BIOS. Updating the BIOS ensured I met this undocumented/unexpected requirement and now I no longer get the PCIE errors AND my graphics card is recognised and works again.