[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120621002742.GL3464@sgi.com>
Date: Wed, 20 Jun 2012 19:27:42 -0500
From: Robin Holt <holt@....com>
To: "H. Peter Anvin" <hpa@...ux.intel.com>
Cc: Matthew Garrett <mjg59@...f.ucam.org>, Robin Holt <holt@....com>,
linux-kernel@...r.kernel.org,
"Sakkinen, Jarkko" <jarkko.sakkinen@...el.com>
Subject: Re: [PATCH] phys_efi_set_virtual_address_map needs va, no pa.
On Wed, Jun 20, 2012 at 01:41:54PM -0700, H. Peter Anvin wrote:
> On 06/20/2012 05:07 AM, Matthew Garrett wrote:
> >
> > No, that's completely wrong. UEFI can't be called in virtual mode until
> > *after* SetVirtualAddressMap(). The UEFI spec indicates that all
> > physical memory must have an identity mapping at this stage (section
> > 2.3.4), so if we don't then that's a bug that needs to be fixed.
> >
>
> I think it is a bug, and with the trampoline work in 3.4 we should
> finally have a proper platform to fix it.
>
> In particular, we should keep a full 1:1 page map around, and it should
> be the one that is in the trampoline (real_mode_header->trampoline_pgd)
> as we need the page directory to be 32-bit addressable.
>
> The right thing to do is to sync the pgds in the 1:1 area, both for 64
> bit and for legacy 32 bit (PAE 32 bit don't need it, since all the
> kernel maps are shared.) This is currently done ad hoc (and
> differently!) on both 32 and 64 bits and that really should be fixed.
What do you need from me? If you want me to help with this, I have a
_WHOLE_ lot of learning to do. Can you give me any pointers?
We are trying to get this finally fixed. We have had work-around code
in SLES11 SP1, SLES11 SP2, and RHEL 6.x. I would love to get this fixed
for future distro snaps.
Thanks,
Robin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists