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.
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.
Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.
God, it's terrible that no one responded to your bug report in three full years. Is this still a problem?
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.