The ACPI spec predates the AARCH64 architecture by 5 versions, so there
is no point in supporting anything below v5.0. So set the PCD that
controls the ACPI table generation to the appropriate value.
Based on the commit e0692789058e ("ArmVirtPkg/ArmVirtQemu: limit ACPI
support to v5.0 and higher") in the upstream TianoCore by Ard Biesheuvel
Contributed-under: TianoCore Contribution Agreement 1.0
Cc: Leif Lindholm <leif.lindholm(a)linaro.org>
Reviewed-by: Ard Biesheuvel <ard.biesheu...(a)linaro.org>
Signed-off-by: Sudeep Holla <sudeep.holla(a)arm.com>
---
Platforms/ARM/Juno/ArmJuno.dsc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Platforms/ARM/Juno/ArmJuno.dsc b/Platforms/ARM/Juno/ArmJuno.dsc
index 45d9950decba..2e9ccfbad396 100644
--- a/Platforms/ARM/Juno/ArmJuno.dsc
+++ b/Platforms/ARM/Juno/ArmJuno.dsc
@@ -174,6 +174,8 @@
gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }
+ gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiExposedTableVersions|0x20
+
[PcdsPatchableInModule]
# Console Resolution (Full HD)
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|1920
--
2.7.4
v3-v4: Rebase/Split patch for newer edk2/OpenPlatformPkg
v2-v3: Add JunoR2 support, replace CPU MIDR code with board revision detection
v1->v2: General cleanups, move juno revision macro info platform.h
SMBIOS data is consumed by a wide range of enterprise applications.
Fill in the basic requirements of the SMBIOS specification by hardcoding
the minimum required structures and data using Juno information. With
this change both the EFI shell, BDS and linux dmidecode commands return
useful information.
This patch set is actually against both edk2 and OpenPlatformPkg. The first
three patches apply against edk2, the last three against OpenPlatformPkg.
Jeremy Linton (3):
ArmPlatformPkg: Add A72 CPU type
Code to detect what juno revision we are running on.
Convert ArmJunoDxe to use common juno revision code
Jeremy Linton (3):
Platforms/ARM/Juno: Create SMBIOS/DMI data for Juno
Platforms/ARM/Juno: Add the module build information
Platforms/ARM/Juno: Add the SMBIOS/DMI module to the Juno Platform
ArmPkg/Include/Chipset/AArch64.h | 1 +
.../ArmJunoPkg/Drivers/ArmJunoDxe/ArmJunoDxe.c | 62 +++++++---------------
ArmPlatformPkg/ArmJunoPkg/Include/ArmPlatform.h | 30 ++++++++++-
3 files changed, 48 insertions(+), 45 deletions(-)
Platforms/ARM/Juno/ArmJuno.dsc | 12 +
Platforms/ARM/Juno/ArmJuno.fdf | 6 +
.../ARM/Juno/SmbiosPlatformDxe/SmbiosPlatformDxe.c | 864 +++++++++++++++++++++
.../Juno/SmbiosPlatformDxe/SmbiosPlatformDxe.inf | 68 ++
4 files changed, 950 insertions(+)
create mode 100644 Platforms/ARM/Juno/SmbiosPlatformDxe/SmbiosPlatformDxe.c
create mode 100644 Platforms/ARM/Juno/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
--
2.5.5
OK,
You are also right that
GCC:*_*_ARM_PLATFORM_FLAGS = -march=armv8-a
should be used (this was my original modification, which was changed later).
Alexei.
-----Original Message-----
From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]
Sent: 27 July 2016 17:27
To: Alexei Fedorov
Subject: Re: [Linaro-uefi] [PATCH] Platforms/ARM/Juno: Add GCC ARMv8 target architecture flag
On 27 July 2016 at 17:58, Alexei Fedorov <Alexei.Fedorov(a)arm.com> wrote:
> See below:
>
> "C:\Linaro_GCC\bin\arm-none-eabi-gcc" -mthumb
> -Iq:\edk2/ArmPlatformPkg/ArmVExpressPkg/Include
> -Iq:\edk2/ArmPlatformPkg/ArmJunoPkg/Include -g -fshort-wchar
> -fno-strict-aliasing -Wall -Werror -Wno-array-bounds
> -ffunction-sections -fdata-sections -c -include AutoGen.h -fno-common
> -DSTRING_ARRAY_NAME=BaseMemoryLibStmStrings -g -Os -fshort-wchar
> -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -c -include
> AutoGen.h -fno-common -mlittle-endian -mabi=aapcs -fno-short-enums
> -save-temps -funsigned-char -ffunction-sections -fdata-sections
> -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft
> -fstack-protector -mword-relocations -mno-unaligned-access -O0 -o
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\BaseMemoryLibStm\
> BaseMemoryLibStm\OUTPUT\.\SetMem64Wrapper.obj -Iq:\edk2\ArmPkg\Lib
> rary\BaseMemoryLibStm\Arm -Iq:\edk2\ArmPkg\Library\BaseMemoryLibStm
> -Iq:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\BaseMemoryLibSt
> m\BaseMemoryLibStm\DEBUG -Iq:\edk2\MdePkg -Iq:\edk2\MdePkg\Include
> -Iq:\edk2\MdePkg\Include\Arm -Iq:\edk2\ArmPkg -Iq:\edk2\ArmPkg\Include
> q:\edk2\ArmPkg\Library\BaseMemoryLibStm\SetMem64Wrapper.c
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii: Assembler messages:
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:21: Error: attempt to use an ARM instruction on a Thumb-only processor -- `push {r4-r8}'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:23: Error: attempt to use an ARM instruction on a Thumb-only processor -- `push {r0}'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:26: Error: attempt to use an ARM instruction on a Thumb-only processor -- `ldr r7,[r0,#28]'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:27: Error: attempt to use an ARM instruction on a Thumb-only processor -- `ldr r6,[r0,#24]'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:28: Error: attempt to use an ARM instruction on a Thumb-only processor -- `ldr r5,[r0,#20]'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:29: Error: attempt to use an ARM instruction on a Thumb-only processor -- `ldr r4,[r0,#16]'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:30: Error: attempt to use an ARM instruction on a Thumb-only processor -- `ldr r3,[r0,#12]'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:31: Error: attempt to use an ARM instruction on a Thumb-only processor -- `ldr r2,[r0,#8]'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:32: Error: attempt to use an ARM instruction on a Thumb-only processor -- `ldr r1,[r0,#4]'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:33: Error: attempt to use an ARM instruction on a Thumb-only processor -- `ldr r0,[r0,#0]'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:35: Error: attempt to use an ARM instruction on a Thumb-only processor -- `smc #0'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:38: Error: attempt to use an ARM instruction on a Thumb-only processor -- `pop {r8}'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:42: Error: attempt to use an ARM instruction on a Thumb-only processor -- `str r3,[r8,#12]'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:43: Error: attempt to use an ARM instruction on a Thumb-only processor -- `str r2,[r8,#8]'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:44: Error: attempt to use an ARM instruction on a Thumb-only processor -- `str r1,[r8,#4]'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:45: Error: attempt to use an ARM instruction on a Thumb-only processor -- `str r0,[r8,#0]'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:47: Error: attempt to use an ARM instruction on a Thumb-only processor -- `mov r0,r8'
> Mqakefile:290: recipe for target
> 'q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmc
> Lib\OUTPUT\Arm\ArmSmc.obj' failed
> :\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:50: Error: attempt to use an ARM instruction on a Thumb-only processor -- `pop {r4-r8}'
> q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmcLib\OUTPUT\Arm\ArmSmc.iii:52: Error: attempt to use an ARM instruction on a Thumb-only processor -- `bx lr'
> make: ***
> [q:\edk2\Build\ArmJuno\DEBUG_GCC49\ARM\ArmPkg\Library\ArmSmcLib\ArmSmc
> Lib\OUTPUT\Arm\ArmSmc.obj] Error 1
>
> This error is reported by:
> arm-none-eabi-gcc.exe (GNU Tools for ARM Embedded Processors) 4.9.3
> 20141119 (release) [ARM/embedded-4_9-branch revision 218278
>
> but doesn't occur with:
> arm-eabi-gcc.exe (Linaro GCC 4.9-2015.05) 4.9.3 20150413 (prerelease)
>
> , so looks like GCC internal issue.
>
These GCCs are simply built for different default targets.
So adding -march=armv8-a to ARM's platform flags is fine by me
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
From: Alexei <Alexei.Fedorov(a)arm.com>
This commit adds the GCC compiler "-march=armv8-a" flag
for the Juno platform with ARMv8 CPU.
This compilation flag also fixes assembler errors like
Error: attempt to use an ARM instruction on a Thumb-only processor
-- `push {r4-r8}'
which are reported by GCC compilers prior to
Linaro GCC 4.9-2015.05 4.9.3 20150413 (i.e. 4.9.3 20141119).
Code is available at:
https://github.com/EvanLloyd/OpenPlatformPkg/tree/JunoBuild_v1
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Alexei Fedorov <alexei.fedorov(a)arm.com>
Signed-off-by: Evan Lloyd <evan.lloyd(a)arm.com>
---
Platforms/ARM/Juno/ArmJuno.dsc | 1 +
1 file changed, 1 insertion(+)
diff --git a/Platforms/ARM/Juno/ArmJuno.dsc b/Platforms/ARM/Juno/ArmJuno.dsc
index 4f41fb159f193b3593048ce118fd0e8e97843809..87b8d517f292e81297dcf6577e5376fd7a3c8569 100644
--- a/Platforms/ARM/Juno/ArmJuno.dsc
+++ b/Platforms/ARM/Juno/ArmJuno.dsc
@@ -75,6 +75,7 @@ [LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.UEFI_APPLICATION, Libr
[BuildOptions]
*_*_*_PLATFORM_FLAGS == -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmJunoPkg/Include
+ *_*_*_PLATFORM_FLAGS = -march=armv8-a
################################################################################
#
--
Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")