lkml.org 
[lkml]   [2013]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH 00/11] EFI runtime services virtual mapping
    Date
    From: Borislav Petkov <bp@suse.de>

    Hi all,

    here's finally a new version of the runtime services VA mapping patchset
    which hopefully implements hpa's idea of statically mapping EFI runtime
    regions in a top-down manner starting at -4Gb virtual.

    We're also using a different pagetable so as not to pollute kernel
    address space. For that, we switch to that table before doing an EFI
    call, and afterwards we switch back to the previous one.

    To the patches:

    1-2 are simple cleanups which Matt probably can take now

    3-10 add the machinery to map regions into an arbitrary PGD. Those I've
    split deliberately into very small bites so that they can be reviewed
    more thoroughly and easily for my pagetable skills are pretty basic.

    11 is the actual patch which implements that mapping so that we can use
    runtime services in kexec (which is the whole reason for this fuss :))

    So please take a long hard look at those, hammer on them on your
    boxes and let me know. They boot fine on my Dell UEFI box and in OVMF
    (obviously :)).

    Thanks.

    Borislav Petkov (11):
    efi: Simplify EFI_DEBUG
    efi: Remove EFI_PAGE_SHIFT and EFI_PAGE_SIZE
    x86, pageattr: Lookup address in an arbitrary PGD
    x86, pageattr: Add a PGD pagetable populating function
    x86, pageattr: Add a PUD pagetable populating function
    x86, pageattr: Add a PMD pagetable populating function
    x86, pageattr: Add a PTE pagetable populating function
    x86, pageattr: Add a PUD error unwinding path
    x86, pageattr: Add last levels of error path
    x86, cpa: Map in an arbitrary pgd
    EFI: Runtime services virtual mapping

    arch/x86/boot/compressed/eboot.c | 12 +-
    arch/x86/boot/compressed/eboot.h | 1 -
    arch/x86/include/asm/efi.h | 58 +++--
    arch/x86/include/asm/pgtable_types.h | 3 +-
    arch/x86/mm/pageattr.c | 461 +++++++++++++++++++++++++++++++++--
    arch/x86/platform/efi/efi.c | 126 +++++-----
    arch/x86/platform/efi/efi_64.c | 56 +----
    arch/x86/platform/efi/efi_stub_64.S | 47 ++++
    include/linux/efi.h | 6 +-
    9 files changed, 615 insertions(+), 155 deletions(-)

    --
    1.8.4



    \
     
     \ /
      Last update: 2013-09-19 17:21    [W:6.700 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site