Bug 9920 - int10 expects wrong VBIOS ROM size
Summary: int10 expects wrong VBIOS ROM size
Status: RESOLVED WORKSFORME
Alias: None
Product: xorg
Classification: Unclassified
Component: Lib/pciaccess (show other bugs)
Version: 7.2 (2007.02)
Hardware: x86-64 (AMD64) Linux (All)
: medium major
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-02-08 13:31 UTC by Peter Missel
Modified: 2011-10-09 03:35 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
X.org logfile (40.52 KB, text/plain)
2007-02-08 13:33 UTC, Peter Missel
no flags Details

Description Peter Missel 2007-02-08 13:31:24 UTC
To start up non-primary VGA devices, X has the int10 interface retrieve and start the VBIOS for the device.

On Linux, it uses the sysfs interface to read the ROM contents.

X's own PCI device structures are initialized to have the ROM size as the size of the PCI ROMBAR resource, which is always a power of two.

Now the actual ROM image does reside inside the ROMBAR resource, but does not necessarily fill it up entirely. In fact, the actual ROM image being shorter than the ROMBAR resource is the much more common case, given how ROM images can be of any length in 512-byte chunks while BAR resource sizes are powers of two. So if you have a 48KB VBIOS, the ROMBAR resource would /have/ to be 64KB to fit it. 
There are actually only two valid ROMBAR sizes for a VGA chip, 32KB and 64KB, but the actual ROM image can be of any inbetween length just as well.

int10 duly complains into the logfile that the ROM read from sysfs came out short (see attached) while it actually got the entire ROM image correctly. This in itself wouldn't matter much other than for cosmetics, but it appears that int10 then does not start this "short" VBIOS ROM at all.

At least the resulting (broken) engine setup on the Permedia used in my example here suggests so; a quick web search for the wording of the error message shows that other brands and types of VGA chips are also affected.
Comment 1 Peter Missel 2007-02-08 13:33:36 UTC
Created attachment 8639 [details]
X.org logfile

The server fires up apparently unharmed by int10's "Attempted to read 64KB [...]" complaint, but the resulting screen garbage tells me otherwise.

As per http://bugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=226973 the glint driver has always shown exactly the kind of display corruption when it has to init its chip without the help of its firmware.
Comment 2 Daniel Stone 2007-02-27 01:36:16 UTC
Sorry about the phenomenal bug spam, guys.  Adding xorg-team@ to the QA contact so bugs don't get lost in future.
Comment 3 Matt Turner 2010-02-15 18:45:48 UTC
God, it's terrible that no one responded to your bug report in three full years. Is this still a problem?
Comment 4 Jeremy Huddleston Sequoia 2011-10-09 03:35:29 UTC
No response.  He probably gave up and moved on.  Sorry.  If this is still an 
issue, please reopen.


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.