On Wed, Jan 02, 2008 at 05:31:27PM -0800, ron minnich wrote:
On Jan 2, 2008 5:03 PM, Luc Verhaegen libv@skynet.be wrote:
What i am trying to do is implement native VGA bring-up for unichrome. I have had userspace code doing this on top of a clean linuxbios for more than 8 months. This is not just my X driver, i can also set up standard vga text mode, so it is not a pipe dream.
That's great to hear. Be aware that SiS also did native vga text mode in 2000, by Ollie Lo. So, we know that it is possible to have this work. We have done a fair amount of native and emulated VGA bringup over the years.
Where did this code go?
In that light it is perfectly valid to claim CONFIG_CONSOLE_VGA without setting CONFIG_PCI_ROM_RUN, because:
- i have no need for a vga rom, as i provide the necessary code for a full vga text mode bringup myself.
- i have no need to run any other rom either.
- i do want vga console logging.
Ah. Now I see what you are trying to do. I misunderstood from your first message. No argument. We've been doing this for years. And if you can't do it, then something is broken for sure. So I'm happy to see it fixed.
At the same time, let's suppose for the sake of argument that you set BOTH CONFIG_CONSOLE_VGA and CONFIG_PCI_ROM_RUN AND you have the native hardware bringup. How does that hurt your native device?
It doesn't, except that it makes this whole exercise rather useless. What point is there in a fully free bios when one still uselessly includes emulator code?
There's no option rom for it --> it won't be run. I'd like to understand this. We have had cases where people had native bringup and installed a vga card, and both were needed. In that case we would want roms to run.
What about providing both CONFIG_PCI_ROM_RUN and CONFIG_CONSOLE_VGA, at the same time?
In the case a standalone card is used, the target Config.lb should have CONFIG_PCI_ROM_RUN. But it should never be forced by the motherboard or a device Config.lb when not needed.
So when i initialise the unichrome, i set vga_inited myself, like any device driver should when it initialises a vga compatible device to a vga compatible state and expects the console code to make use of it as a vga compatible console.
OK. It's fine to set it there I suppose.
Why "I suppose"?
vga_inited is from the console code. We are currently only setting it, as an extern, in the device code. What could stop anyone from setting it in any other code?
It was considered. I think there is a bigger picture than you might have realised. Torsten also pointed out a secondary issue.
CONFIG_CONSOLE_VGA is not the right solution in that case. Maybe CONFIG_VGA_ROM_RUN should be trivially introduced.
I read your patch. I am still unsure of the case where there are vga class devices but we don't want a vga console (hint: GPU computing).
As one of the main radeonhd driver developers, i am rather acutely aware of gpgpu. But i fail to see the relevance of this here.
It seems there is no way in your code to allow us to run the option ROMs for a "vga" device and not enable a vga console.
My patch allows this in the exact same manner as before. Please look at the resulting code.
The real question is: What happens the unerring linuxbios user only specificies only CONFIG_CONSOLE_VGA, and still expects it to work with a vga rom. But this is a purely an issue of bad former practice and bad documentation.
Both options should be specified if both are needed.
This is a cooperative project and some patience from all sides is important. So please bear with us as we try to make sure we understand your needs and what you are doing. Very trivial changes can turn into problems in ways we do not expect, and VGA and ROM issues have been a headache.
Heh.
Luc Verhaegen.