ArmPlatformPkg: Added Juno platform

Change-Id: I11176b5e6730cc7aab535affa91237d47c144803
EmbeddedPkg: Introduced AcpiLib

AcpiLib is a library to help working with ACPI Tables.

In this initial implementation, the library provides:
- a helper function to locate and install the ACPI Tables within
  a Firmware Volume
- Some helper macros to initialize some ACPI structures

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-By: Graeme Gregory <graeme.gregory@linaro.org>

Change-Id: Ie2d4a579ad725025db2b4b3fac26810f1b2e6d52
ArmPlatformPkg/ArmJunoPkg: Added ACPI support

This support makes the Juno UEFI Firmware to look into the Firmware Volume
for the ACPI Tables. But it does not provide the ACPI Tables.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-By: Graeme Gregory <graeme.gregory@linaro.org>

Change-Id: I7d6ec0efb0e27e217ae93a9b343eb67464482bc5
ArmPlatformPkg/ArmJunoPkg: Added the ACPI 5.0 Tables

These tables are:
- Differentiated System Description Table Fields (DSDT)
- Firmware ACPI Control Structure (FACS)
- Fixed ACPI Description Table (FADT)
- Generic Timer Description Table (GTDT)
- Multiple APIC Description Table (MADT)
- Secondary System Description Table Fields (SSDT)

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-By: Graeme Gregory <graeme.gregory@linaro.org>

Change-Id: Ic83483fb2b1c5ebf070d01903a26a7ceba3efe83
EmbeddedPkg/AcpiLib.h: Added some helper macros for ACPI 5.1

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-By: Graeme Gregory <graeme.gregory@linaro.org>

Change-Id: I25f5212e6cae0dab8a4b75ab93e0d53821ee040e
ArmPlatformPkg/ArmJunoPkg/AcpiTables: Updated with new ACPI 5.1 Tables & Definitions

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-By: Graeme Gregory <graeme.gregory@linaro.org>

Change-Id: I4cdd9ee135535e73ebc2ae71d7b6210545653477
BaseTools/tools_def.template: Add the PLATFORM_FLAGS to the ARM GCC48 ASLPP_FLAGS

Some platforms might want to add platform specific flags at the preprocessor stage.
It is better if the same platform specific flags are propagated accross the different
preprocessor stages.

Change-Id: Iae7be8c0bcaea0b90cbe9829957cf9e2f4082f33
BaseTools/tools_def.template: Fixed ACPI flags for ARMGCC and ARMLINUXGCC

Change-Id: I81dcff44324b27ebb6693e1009f67820045fe127