[SeaBIOS] [PATCH] acpi: hide 64-bit PCI hole for Windows XP
Michael S. Tsirkin
mst at redhat.com
Tue Aug 6 18:58:20 CEST 2013
On Tue, Aug 06, 2013 at 12:43:04PM -0400, Paolo Bonzini wrote:
> > > > ATM it looks like we should test
> > > > "Windows 2000" ||
> > > > "Windows 2001" ||
> > > > "Windows 2001 SP1" ||
> > > > "Windows 2001.1 SP1"
> > >
> > > Including this may be too strict, what about 98/ME?
> >
> > Isn't this past EOL?
>
> So what? People try to use it with QEMU, and it's fair to assume
> it's worse than XP.
I agree it's likely but I don't think we should presume anything until it's tested.
> > > > && !(
> > > > "Windows 2006" ||
> > > > "Windows 2006.1" ||
> > >
> > > We know that these are all implied by the following four:
> > >
> > > > "Windows 2006 SP1" ||
> > > > "Windows 2006 SP2" ||
> > > > "Windows 2009" ||
> > > > "Windows 2012" ||
> > >
> > > So it is not necessary to test these four.
> >
> > True, but I don't see how this can harm us, and
> > I'm trying to check as much as possible.
>
> Fair enough.
>
> > > > "Linux" ||
> > > > "FreeBSD"
> > > > ) &&
> > > > _OS == "Microsoft Windows NT"
> > > > &&
> > > > _REV == 0x1
> > >
> > > Testing _OS and _REV is probably too strict.
> >
> > Why too strict? We want to only affect very specific guests.
> > whatever we don't know about, let's not touch it.
>
> In practice all OSes we care about will disguise themselves
> as Windows. I checked Solaris now and it follows Linux's lead:
> http://fxr.watson.org/fxr/source/intel/io/acpica/utilities/uteval.c?v=OPENSOLARIS;im=10
I'm still worried about using _OSI. This makes it a risky change,
guests do change behaviour depending on which _OSI are called.
No way to tell what this will do without lots of testing.
I have an alternative idea: it looks like XP/2003 are the
only OS-es which have _REV set to 0x1 which is the ancient
API 1.0 spec.
Maybe it's enough to check _REV == 1 and _OS == windows ?
That's certainly lower risk from this POV, but need
to check old Linux and other guests.
> For whatever we don't know about, why should we assume 64-bit BARs
> work? Especially considering it's likely to be pretty old guests.
>
> Paolo
There's no need to assume 64 bit BARs works.
But I think we can assume guests don't crash.
What windows does here is very unusual imho,
guest should just say "I can't use this range
so I won't" and allocate BARs somewhere else.
--
MST
More information about the SeaBIOS
mailing list