Hello all,

Just so you know, both ARM Trusted Firmware (TF) and UEFI have changed.

The 13.03 release has TF code that is pre v0.3.  Since v0.3, TF expects to load all other bootloader stages from a "Firmware Image Package" (aka FIP).

This includes UEFI.

Also, the upstream UEFI code for FVP has changed.  It is no longer built to run from NOR flash at address zero, but instead, it runs from RAM.

This means that you cannot use the lastest TF with an old UEFI binary and you cannot use the latest UEFI binary with the old TF.

I've updated the CI job for FVP's TF so that it now builds UEFI, then builds TF, then build the FIP blob with the UEFI binary inside it.

Currently the job builds from the release-prep branch of linaro-edk2.git.  This actually contains the upstream Tianocore code at the moment, so it will be missing a lot of the features you might want, like ethernet, or Linaro's local-FDT mods.

I'll run another job after release-prep has been updated.  And I'll have to update the hwpack to include fip.bin and so on.

You can find the CI job here:
    https://ci.linaro.org/jenkins/view/components/job/fvp-pre-boot/

And you can find the script here:
    http://git.linaro.org/ci/fvp-pre-boot.git

The basic commands to build it all distil down to something like:

git clone git://git.linaro.org/uefi/linaro-edk2.git
cd linaro-edk2
uefi-build.sh fvp_minimal
export BL33=`pwd`/`find . -name FVP_AARCH64_EFI.fd`
cd ..
git clone git://git.linaro.org/arm/models/arm-trusted-firmware.git
cd arm-trusted-firmware
CROSS_COMPILE=aarch64-linux-gnu- make PLAT=${platform} all fip

Then you will have bl1.bin and fip.bin in build/fvp/release/.

When you launch the FVP model, you specify the bl1.bin as normal.  However, instead of passing the UEFI binary to the NOR Flash arg, you pass fip.bin, eg:

-C bp.flashloader0.fname=<path to>/fip.bin

Hope that all helps.

Cheers,
Ryan.