Re: [PATCH] ACPI suspend: Always use the 32-bit waking vector

Rafael J. Wysocki
2008-09-14T23:51:30Z

On Sunday, 14 of September 2008, Pavel Machek wrote:
> Hi!
>
> > > There was discussion about this issue several months ago (intel's ml), looks
> > > people forgot to take action after the discussion. The spec owner said 64bit
> > > vector is used in protected mode. That is if OS sets it, wakeup code is
> > > called in protected mode by BIOS. So the 64-bit vector shouldn't be used.
> >
> > Well, I read this part of the spec (2.0c, 3.0b) more carefully and it matches
> > what you're saying. Moreover, my understanding of it is that we should
> > actually _clear_ the 64-bit vector on systems that support it, because
> > otherwise the BIOS is supposed to use it and call the wake-up code in protected
> > mode.
> >
> > The appended patch is based on this observation.
>
> Hmm, nice.
>
> 64-bit waking is the one that is 'recommended' to use, right? Could we
> get some strange machines (kohjisha?) to jump to the waking vector by
> using 64-bit one?

If the 32-bit one is set and the 64-bit one is zero, the BIOS is _required_ to
use the 32-bit one.

There may be BIOSes that don't follow the spec in that respect (ie. are only
able to use the 64-bit vector and can only enter the wake-up code in Protected
Mode), but I'm not aware of any.

> Do windows use 32-bit or 64-bit vector?

I think XP uses the 32-bit one. I don't know about Vista, though.

Thanks,
Rafael