The C efi_entry() function returns the address of the FDT for XEN to use, so we add the EFI_STUB_ERROR define to efibind.h and make it includable in assembly files. EFI_STUB_ERROR is defined as ~0, which is an invalid address for a FDT to be loaded at.
Signed-off-by: Roy Franz roy.franz@linaro.org --- xen/include/asm-arm/arm64/efibind.h | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/xen/include/asm-arm/arm64/efibind.h b/xen/include/asm-arm/arm64/efibind.h index fe53a3b..ecc819d 100644 --- a/xen/include/asm-arm/arm64/efibind.h +++ b/xen/include/asm-arm/arm64/efibind.h @@ -21,6 +21,16 @@ Revision History #pragma pack() #endif
+#define EFIERR(a) (0x8000000000000000 | a) +#define EFI_ERROR_MASK 0x8000000000000000 +#define EFIERR_OEM(a) (0xc000000000000000 | a) + +#define BAD_POINTER 0xFBFBFBFBFBFBFBFB +#define MAX_ADDRESS 0xFFFFFFFFFFFFFFFF + +#define EFI_STUB_ERROR MAX_ADDRESS + +#ifndef __ASSEMBLY__ // // Basic int types of various widths // @@ -96,13 +106,6 @@ typedef uint64_t UINTN;
#define POST_CODE(_Data)
-#define EFIERR(a) (0x8000000000000000 | a) -#define EFI_ERROR_MASK 0x8000000000000000 -#define EFIERR_OEM(a) (0xc000000000000000 | a) - - -#define BAD_POINTER 0xFBFBFBFBFBFBFBFB -#define MAX_ADDRESS 0xFFFFFFFFFFFFFFFF
#define BREAKPOINT() while (TRUE); // Make it hang on Bios[Dbg]32
@@ -200,3 +203,4 @@ typedef uint64_t UINTN; #endif #endif
+#endif