x86/efi: Build our own EFI services pointer table
authorMatt Fleming <matt.fleming@intel.com>
Fri, 10 Jan 2014 15:27:14 +0000 (15:27 +0000)
committerMatt Fleming <matt.fleming@intel.com>
Tue, 4 Mar 2014 21:25:03 +0000 (21:25 +0000)
commit54b52d87268034859191d671505bb1cfce6bd74d
tree63c39b9a828e9d6dad97118cbd2e1e1210da6358
parent677703cef0a148ba07d37ced649ad25b1cda2f78
x86/efi: Build our own EFI services pointer table

It's not possible to dereference the EFI System table directly when
booting a 64-bit kernel on a 32-bit EFI firmware because the size of
pointers don't match.

In preparation for supporting the above use case, build a list of
function pointers on boot so that callers don't have to worry about
converting pointer sizes through multiple levels of indirection.

Signed-off-by: Matt Fleming <matt.fleming@intel.com>
arch/x86/boot/compressed/eboot.c
arch/x86/boot/compressed/eboot.h
arch/x86/boot/compressed/head_32.S
arch/x86/boot/compressed/head_64.S
drivers/firmware/efi/efi-stub-helper.c