• Daniel Kiper's avatar
    xen: Put EFI machinery in place · be81c8a1
    Daniel Kiper authored
    This patch enables EFI usage under Xen dom0. Standard EFI Linux
    Kernel infrastructure cannot be used because it requires direct
    access to EFI data and code. However, in dom0 case it is not possible
    because above mentioned EFI stuff is fully owned and controlled
    by Xen hypervisor. In this case all calls from dom0 to EFI must
    be requested via special hypercall which in turn executes relevant
    EFI code in behalf of dom0.
    
    When dom0 kernel boots it checks for EFI availability on a machine.
    If it is detected then artificial EFI system table is filled.
    Native EFI callas are replaced by functions which mimics them
    by calling relevant hypercall. Later pointer to EFI system table
    is passed to standard EFI machinery and it continues EFI subsystem
    initialization taking into account that there is no direct access
    to EFI boot services, runtime, tables, structures, etc. After that
    system runs as usual.
    
    This patch is based on Jan Beulich and Tang Liang work.
    Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
    Signed-off-by: default avatarTang Liang <liang.tang@oracle.com>
    Signed-off-by: default avatarDaniel Kiper <daniel.kiper@oracle.com>
    Reviewed-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
    Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com
    Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
    be81c8a1
efi.c 11.3 KB