[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.054 / U:1.560 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site