VEA5: Add Versatile Express CTA5s BSP

Add the BSP for the Versatile Express CTA5s Core Tile

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA5: fix memory init

The A5 BSP was initialising memory in the wrong place since the BSP was updated to support the latest submissions.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA5: create dedicated A5 CPU library

The A5 was using the A9 CPU library which has some TrustZone related code.
So I decided to create a dedicated library for A5, which is how the other
CPU types operate.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA5: general tidyups

Use the A5 library rather than the A9 library and whatever

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA5: default to EDK2_ARMVE_STANDALONE=1

We always build with EDK2_ARMVE_STANDALONE=1, and building with it =0 fails anyway, so let's default to building as standalone.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA5: Fix problems booting linaro kernels

I copied the A15x2 BSP to the A5s and added in the init needed specifically for A5.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA5: use Linaro default config

This patch updates the default config to boot the kernel (uImage, uInitrd) with a local device tree (v2p-ca5s.dtb) using a command line that is suitable for both Android and Ubuntu.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA5: rename PcdFdtLocalDevicePath to PcdDefaultFdtLocalDevicePath

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA5: Update default kernel commandline

This patch should be squashed down for 13.06.

Remove "console=tty0" from the kernel commandline as it is no longer required.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA5: Fix A5 build for latest upstream changes

Fixed compile errors with the Versatile Express A5 BSP when built with
the latest upstream code.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA5: remove #include of ArmV7ArchTimerLib.h

Removed an unused #include because it made certain build configurations
fail to compile.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA5: fix ROM size

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA5: Fix boot failure

This patch fixes a failure of the Versatile Express A5 to boot due to
the ROM not starting at address zero.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA5: ARM Packages: Renamed PL390Gic driver into ArmGic driver

Updated the A5 BSP since this change:
017baa1: ARM Packages: Renamed PL390Gic driver into ArmGic driver

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA5: update default kernel commandline

The kernel commandline has been simplified to remove deprecated and
unwanted options.

Contributed-under: TianoCore Contribution Agreement 1.0

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA5: change PcdGet32 to PcdGet64

The latest code uses PcdGet64 instead of PcdGet32.  Fix the VEA5 BSP to
account for this change.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
VEA9: Add single binary config

Allow a single UEFI binary to be built, containing both the secure and
non-secure images in one.

This is achieved at build time by passing the option:
    -D EDK2_ARMVE_SINGLE_BINARY

Eg:
    build -a ARM -p ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc \
        -t ARMLINUXGCC
        -D EDK2_ARMVE_STANDALONE=1
        -D EDK2_ARMVE_SINGLE_BINARY=1

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA9: allow custom output directory

Allow the build to set the output directory using the EDK2_OUT_DIR
parameter.

Eg.
    build -a ARM -p ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc
        -t ARMLINUXGCC \
        -D EDK2_ARMVE_STANDALONE=1 \
        -D EDK2_OUT_DIR=Build/vea9

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
VEA9: default to EDK2_ARMVE_SINGLE_BINARY=1

We always build with the single binary option, so make it the default.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
Revert A9 part of "ArmPkg/ArmCpuLib: Fixed SMP Cortex-A9 and Cortex-A15"

This reverts the A9 changes from this commit:

> commit 9d59a88be171f74ae08ad63b3e8d1b77a87522e8
> Author: oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
> Date:   Wed May 2 20:14:55 2012 +0000
>
>     ArmPkg/ArmCpuLib: Fixed SMP Cortex-A9 and Cortex-A15
>
>     Signed-off-by: Olivier Martin <olivier.martin@arm.com>
>
>     git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13261 6f19259b-4bc3-4df7-8a09-765794883524

Reverting this change not only fixes ATAGs boot for A9, but Device Tree boot works too.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Steven Kinney <steven.kinney@linaro.org>