Re: [PATCH 0/4] EFI 1:1 mapping

Matthew Garrett
2013-06-03T18:11:10Z

On Mon, Jun 03, 2013 at 11:05:03AM -0700, James Bottomley wrote:
> On Mon, 2013-06-03 at 17:42 +0100, Matthew Garrett wrote:
> > Why do you persist in this belief that all system vendors are going to
> > have run a shell, let alone any kind of test suite? That runs counter to
> > everything we've learned about x86 firmware. People verify that it runs
> > Windows and then ship it.
>
> I don't, but I find it hard to believe no vendor ever runs an EFI shell
> on their systems. The feedback I got from a couple of OEMs is that they
> use the shell mostly for internal testing.

There are vendors that do, and I expect that there are vendors who
don't. There are vendors who will make changes to firmware and run the
EFI test suite, and there are vendors who will make changes to firmware
and run Windows.

> > The problem there is that you're saying "In theory". We know that
> > Windows doesn't behave this way, so we have no legitimate expectation
> > that it'll work. We know that it doesn't on some Apple hardware.
>
> Fine, you say we need to call SetVirtualAddressMap because windows does,
> I agree, I'm just saying we get additional safety from calling it with
> the 1:1 map ... I don't see what the problem is.

No. I'm saying that calling it with the 1:1 map is something very
different to the behaviour of Windows, and I'm saying that doing so is
known to cause variable writes on some Apple hardware to stop working.
If we're aiming for maximum compatibility, we need to call
SetVirtualAddressMap() with addresses above the canonicalisation hole.

--
Matthew Garrett | mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org