[Linaro-uefi] EFI: fix build for AARCH64

Message ID 20161219181430.28668-1-leif.lindholm@linaro.org
State Superseded
Headers show

Commit Message

Leif Lindholm Dec. 19, 2016, 6:14 p.m.
AARCH64 build was left out of initial version, so add to .dsc and set
ACPI_MACHINE_WIDTH correctly.

Also, acpidump.inf specified explicit per-architecture (but identical)
CFLAGS. Rather than duplicating this further, use the same setting for
all architectures until there is actually a need to diverge.

Also update README to make it obvious AArch64 is supported.

Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
---
 generate/efi/AcpiPkg.dsc           | 2 +-
 generate/efi/README                | 1 +
 generate/efi/acpidump/acpidump.inf | 6 ++----
 source/include/platform/acefi.h    | 2 +-
 4 files changed, 5 insertions(+), 6 deletions(-)

Comments

Leif Lindholm Dec. 19, 2016, 11:25 p.m. | #1
On Mon, Dec 19, 2016 at 06:14:30PM +0000, Leif Lindholm wrote:
> AARCH64 build was left out of initial version, so add to .dsc and set
> ACPI_MACHINE_WIDTH correctly.
> 
> Also, acpidump.inf specified explicit per-architecture (but identical)
> CFLAGS. Rather than duplicating this further, use the same setting for
> all architectures until there is actually a need to diverge.
> 
> Also update README to make it obvious AArch64 is supported.
> 
> Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
> ---
>  generate/efi/AcpiPkg.dsc           | 2 +-
>  generate/efi/README                | 1 +
>  generate/efi/acpidump/acpidump.inf | 6 ++----
>  source/include/platform/acefi.h    | 2 +-
>  4 files changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/generate/efi/AcpiPkg.dsc b/generate/efi/AcpiPkg.dsc
> index 323d39c..9302555 100644
> --- a/generate/efi/AcpiPkg.dsc
> +++ b/generate/efi/AcpiPkg.dsc
> @@ -18,7 +18,7 @@
>    PLATFORM_VERSION        = 1.0
>    DSC_SPECIFICATION       = 0x00010005
>    OUTPUT_DIRECTORY        = Build/Acpi
> -  SUPPORTED_ARCHITECTURES = IA32|X64
> +  SUPPORTED_ARCHITECTURES = AARCH64|IA32|X64
>    BUILD_TARGETS           = DEBUG|RELEASE
>    SKUID_IDENTIFIER        = DEFAULT
>  
> diff --git a/generate/efi/README b/generate/efi/README
> index 7550e9d..b3ec3ff 100644
> --- a/generate/efi/README
> +++ b/generate/efi/README
> @@ -20,6 +20,7 @@ But the porting has only been tested in a Linux environment.
>  
>     You can find built EFI binaries (e.x., acpidump.efi) in the following
>     folders:
> +     Build/Acpi/DEBUG_GCC47/AARCH64: aarch64 targets
>       Build/Acpi/DEBUG_GCC47/IA32: i386 targets
>       Build/Acpi/DEBUG_GCC47/X64: x86_64 targets
>  
> diff --git a/generate/efi/acpidump/acpidump.inf b/generate/efi/acpidump/acpidump.inf
> index 8d2c979..e5f21c0 100644
> --- a/generate/efi/acpidump/acpidump.inf
> +++ b/generate/efi/acpidump/acpidump.inf
> @@ -55,7 +55,5 @@
>    BaseLib
>  
>  [BuildOptions]
> -  MSFT:*_*_IA32_CC_FLAGS = /Oi- /WX- /D_EDK2_EFI /DACPI_DUMP_APP
> -  MSFT:*_*_X64_CC_FLAGS  = /Oi- /WX- /D_EDK2_EFI /DACPI_DUMP_APP
> -  GCC:*_*_IA32_CC_FLAGS  = -U__linux__ -U_LINUX -D_EDK2_EFI -DACPI_DUMP_APP -fno-builtin -iwithprefix include
> -  GCC:*_*_X64_CC_FLAGS   = -U__linux__ -U_LINUX -D_EDK2_EFI -DACPI_DUMP_APP -fno-builtin -iwithprefix include
> +  MSFT:*_*_*_CC_FLAGS = /Oi- /WX- /D_EDK2_EFI /DACPI_DUMP_APP
> +  GCC:*_*_*_CC_FLAGS  = -U__linux__ -U_LINUX -D_EDK2_EFI -DACPI_DUMP_APP -fno-builtin -iwithprefix include
> diff --git a/source/include/platform/acefi.h b/source/include/platform/acefi.h
> index dfa4894..30a5429 100644
> --- a/source/include/platform/acefi.h
> +++ b/source/include/platform/acefi.h
> @@ -140,7 +140,7 @@
>  
>  #define VOID        void
>  
> -#if defined(__ia64__) || defined(__x86_64__)
> +#if defined(__aarch64__) || (__ia64__) || defined(__x86_64__)

And this is of course a bug. Should be defined(__ia64__).

>  
>  #define ACPI_MACHINE_WIDTH          64
>  
> -- 
> 2.10.2
>

Patch

diff --git a/generate/efi/AcpiPkg.dsc b/generate/efi/AcpiPkg.dsc
index 323d39c..9302555 100644
--- a/generate/efi/AcpiPkg.dsc
+++ b/generate/efi/AcpiPkg.dsc
@@ -18,7 +18,7 @@ 
   PLATFORM_VERSION        = 1.0
   DSC_SPECIFICATION       = 0x00010005
   OUTPUT_DIRECTORY        = Build/Acpi
-  SUPPORTED_ARCHITECTURES = IA32|X64
+  SUPPORTED_ARCHITECTURES = AARCH64|IA32|X64
   BUILD_TARGETS           = DEBUG|RELEASE
   SKUID_IDENTIFIER        = DEFAULT
 
diff --git a/generate/efi/README b/generate/efi/README
index 7550e9d..b3ec3ff 100644
--- a/generate/efi/README
+++ b/generate/efi/README
@@ -20,6 +20,7 @@  But the porting has only been tested in a Linux environment.
 
    You can find built EFI binaries (e.x., acpidump.efi) in the following
    folders:
+     Build/Acpi/DEBUG_GCC47/AARCH64: aarch64 targets
      Build/Acpi/DEBUG_GCC47/IA32: i386 targets
      Build/Acpi/DEBUG_GCC47/X64: x86_64 targets
 
diff --git a/generate/efi/acpidump/acpidump.inf b/generate/efi/acpidump/acpidump.inf
index 8d2c979..e5f21c0 100644
--- a/generate/efi/acpidump/acpidump.inf
+++ b/generate/efi/acpidump/acpidump.inf
@@ -55,7 +55,5 @@ 
   BaseLib
 
 [BuildOptions]
-  MSFT:*_*_IA32_CC_FLAGS = /Oi- /WX- /D_EDK2_EFI /DACPI_DUMP_APP
-  MSFT:*_*_X64_CC_FLAGS  = /Oi- /WX- /D_EDK2_EFI /DACPI_DUMP_APP
-  GCC:*_*_IA32_CC_FLAGS  = -U__linux__ -U_LINUX -D_EDK2_EFI -DACPI_DUMP_APP -fno-builtin -iwithprefix include
-  GCC:*_*_X64_CC_FLAGS   = -U__linux__ -U_LINUX -D_EDK2_EFI -DACPI_DUMP_APP -fno-builtin -iwithprefix include
+  MSFT:*_*_*_CC_FLAGS = /Oi- /WX- /D_EDK2_EFI /DACPI_DUMP_APP
+  GCC:*_*_*_CC_FLAGS  = -U__linux__ -U_LINUX -D_EDK2_EFI -DACPI_DUMP_APP -fno-builtin -iwithprefix include
diff --git a/source/include/platform/acefi.h b/source/include/platform/acefi.h
index dfa4894..30a5429 100644
--- a/source/include/platform/acefi.h
+++ b/source/include/platform/acefi.h
@@ -140,7 +140,7 @@ 
 
 #define VOID        void
 
-#if defined(__ia64__) || defined(__x86_64__)
+#if defined(__aarch64__) || (__ia64__) || defined(__x86_64__)
 
 #define ACPI_MACHINE_WIDTH          64