James Mastros wrote:
> > Only one OS could access a card at a time. We could control this via the
PCI
> > spoofing, causing Plex86 to abort if the required resources were already
in
> > use, or we could just trust the user (Trust the user? Sucker...)
>
>
> PCI spoofing in general would be a Good Thing, but we certianly can't
consider
> it the primary display driver -- it'd make plex86 rather useless on a
> single-headed system. As to access control, I think the best case would be
to
> simply make the card non-responsive (is there a well-defined way for a
card to
> reject an access?) if it was in use by the host -- that way, you could
switch
> ownership under control of the host OS, without having to make any
assumptions
> of the guest, and without killing it summeraly. (If it can't stand to have
the
> card yanked from under it, there isn't much we can do about it.)
>
When you boot a multi-display adapter system, the BIOS puts one of them in
VGA mode (there can only be one VGA card in a system at a time). It's always
the same one, the one that shows the boot-up bumpf. In a dual-headed Plex86
system, I would see this card assigned to the Host system. The other one
would be mapped out of the Host system's view. The boot-adapter would be
mapped out of the Guest system's view, but the second adapter would be
mapped in. As the guest system started booting, it would use the "VGA"
adapter to display its startup blurb. This would be displayed by the Host
system in a window using VGA emulation. Once the Guest OS started the
display driver, it would automatically select the second adpater and stop
using the host window. Should be pretty straight-forward. But then again,
that's what I always say...
>
> It'd be very useful, for example, to flip ownership of a sound card, say,
> around like this -- when you want the host to have it, load the kernel
module.
> Otherwise, unload it. Keep the drivers loaded on the guest -- they should
just
> error out when the card doesn't respond.
>
With a sound card we could probably make it pretend to do stuff without
touching the card. Wouldn't expect it to be trivial. I wouldn't want to
error out cards on Windows. I would rather expect Windows to enter at best a
partially-functional mode that would require a (virtual) reboot. Windows
doesn't tend to handle low-level errors well.
>
> We could even do PCI-hotswap from the guest's point of view, but is that
> widely supported?
>
I don't think hot-swapping is a good idea, just because proprietory OS's
expect PCI hardware to stay plugged in, for some reason. Of course, in
theory we could make the card in question appear like a PC card (PCMCIA),
which would hot-swap. I don't want to even THINK about a project like that,
just now. Sure would be cool, though.
>
> >
> > I have to admit that I have a gut-level bad feel about this option. Its
> > inelligant, inefficient and using someone else's driver without using
their
> > hardware is more than a little dubious in my view (I write device
drivers
> > for a living, mind). There is also the legal issue. Still, it is an
option
> > that should be considered. On older cards, the manufacturer may simply
not
> > care anymore.
>
>
> I'd tend to agree with you on the gut feelings here. If we emulate another
> card, it shouldn't be a card so much as a standard -- like VGA or 8512/A
> (or whatever the hell the designator was), or some common SVGA subset. I
> assume you write windows display drivers -- would you like to help us with
> this project?
>
Yes, I have written (or been on teams writing) Windows drivers, both display
and network. I do intend to get actively involved, but I have some
hardware/software setup issues to deal with first.
>
> >
> > Ideally, we would have a solution everywhere, but let's face it, windows
is
> > the real problem. Most everywhere else will be X/OpenGL or something
similar
> > based and the drivers should be pretty similar. The real performance
issue
> > is probably Windows games, so we only really need to do real meaty work
> > three times (Win9x, Win2k - can't run games on earlier NT versions - and
> > everything else. Note that NT and 9x have different Display Driver
Models
> > that don't have a lot in common).
>
>
> Well, I wouldn't be quite that... limited. For example, there are probably
a
> fair number of people for whom OS/2 or DOS-based games would be a Good
Thing.
> I'd say VESA support (pretty simple, IIRC), and win* support would get a
fair
> number of people. (I'm assuming that VESA and win9x would come first -- do
we
> even run 2k?
Yeah, I'm sure there are lots of little graphics wrinkles, but I do think
that
the bulk of the work will be in OGL and Win(Direct)X. The rest will be
either
simple (in comparisson only, perhaps) or of very limited appeal, best left
to
a SIG? (Either way, not something I intend to concern myself with :-)
>
>
>
BTW, whoever did it, thank's for fixing the addressing on the "Reply" button
on the mailing list web page.
Cheers, Colin