def_bool y
depends on !ARM_32
select 64BIT
+ select ARM_EFI
select HAS_FAST_MULTIPLY
config ARM
Advanced Configuration and Power Interface (ACPI) support for Xen is
an alternative to device tree on ARM64.
+config ARM_EFI
+ bool
+
config GICV3
bool "GICv3 driver"
depends on ARM_64 && !NEW_VGIC
obj-$(CONFIG_ARM_32) += arm32/
obj-$(CONFIG_ARM_64) += arm64/
-obj-$(CONFIG_ARM_64) += efi/
obj-$(CONFIG_ACPI) += acpi/
obj-$(CONFIG_HAS_PCI) += pci/
ifneq ($(CONFIG_NO_PLAT),y)
obj-y += domain_build.init.o
obj-y += domctl.o
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
+obj-y += efi/
obj-y += gic.o
obj-y += gic-v2.o
obj-$(CONFIG_GICV3) += gic-v3.o
include $(srctree)/common/efi/efi-common.mk
+ifeq ($(CONFIG_ARM_EFI),y)
obj-y += $(EFIOBJ-y)
obj-$(CONFIG_ACPI) += efi-dom0.init.o
+else
+# Add stub.o to EFIOBJ-y to re-use the clean-files in
+# efi-common.mk. Otherwise the link of stub.c in arm/efi
+# will not be cleaned in "make clean".
+EFIOBJ-y += stub.o
+obj-y += stub.o
+endif
#include <xen/efi.h>
-#include <xen/errno.h>
#include <xen/init.h>
-#include <xen/lib.h>
#include <asm/asm_defns.h>
#include <asm/efibind.h>
#include <asm/page.h>
#include <efi/eficon.h>
#include <efi/efidevp.h>
#include <efi/efiapi.h>
+#include "../../../common/efi/stub.c"
/*
* Here we are in EFI stub. EFI calls are not supported due to lack
unreachable();
}
-bool efi_enabled(unsigned int feature)
-{
- return false;
-}
-
void __init efi_init_memory(void) { }
bool efi_boot_mem_unused(unsigned long *start, unsigned long *end)
void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t l4e) { }
-bool efi_rs_using_pgtables(void)
-{
- return false;
-}
-
-unsigned long efi_get_time(void)
-{
- BUG();
- return 0;
-}
-
-void efi_halt_system(void) { }
-void efi_reset_system(bool warm) { }
-
-int efi_get_info(uint32_t idx, union xenpf_efi_info *info)
-{
- return -ENOSYS;
-}
-
int efi_compat_get_info(uint32_t idx, union compat_pf_efi_info *)
__attribute__((__alias__("efi_get_info")));
-int efi_runtime_call(struct xenpf_efi_runtime_call *op)
-{
- return -ENOSYS;
-}
-
int efi_compat_runtime_call(struct compat_pf_efi_runtime_call *)
__attribute__((__alias__("efi_runtime_call")));
# e.g.: It transforms "dir/foo/bar" into successively
# "dir foo bar", ".. .. ..", "../../.."
$(obj)/%.c: $(srctree)/common/efi/%.c FORCE
- $(Q)ln -nfs $(subst $(space),/,$(patsubst %,..,$(subst /, ,$(obj))))/source/common/efi/$(<F) $@
+ $(Q)test -f $@ || \
+ ln -nfs $(subst $(space),/,$(patsubst %,..,$(subst /, ,$(obj))))/source/common/efi/$(<F) $@
clean-files += $(patsubst %.o, %.c, $(EFIOBJ-y:.init.o=.o) $(EFIOBJ-))
--- /dev/null
+#include <xen/efi.h>
+#include <xen/errno.h>
+#include <xen/lib.h>
+
+bool efi_enabled(unsigned int feature)
+{
+ return false;
+}
+
+bool efi_rs_using_pgtables(void)
+{
+ return false;
+}
+
+unsigned long efi_get_time(void)
+{
+ BUG();
+ return 0;
+}
+
+void efi_halt_system(void) { }
+void efi_reset_system(bool warm) { }
+
+int efi_get_info(uint32_t idx, union xenpf_efi_info *info)
+{
+ return -ENOSYS;
+}
+
+int efi_runtime_call(struct xenpf_efi_runtime_call *op)
+{
+ return -ENOSYS;
+}