[lkml]   [2012]   [Jun]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [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.


 \ /
  Last update: 2012-06-21 03:21    [W:0.067 / U:2.008 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site