Trusted Firmware-A for Socionext Synquacer SoCs
===============================================

Socionext's Synquacer SC2A11 is a multi-core processor with 24 cores of Arm
Cortex-A53. The Developerbox, of 96boards, is a platform that contains this
processor. This port of the Trusted Firmware only supports this platform at
the moment.

More information are listed in `link`_.

How to build
============

Code Locations
--------------

-  Trusted Firmware-A:
   `link <https://github.com/ARM-software/arm-trusted-firmware>`__

-  edk2:
   `link <https://github.com/tianocore/edk2>`__

-  edk2-platforms:
   `link <https://github.com/tianocore/edk2-platforms>`__

-  edk2-non-osi:
   `link <https://github.com/tianocore/edk2-non-osi>`__

Boot Flow
---------

SCP firmware --> TF-A BL31 --> UEFI(edk2)

Build Procedure
---------------

-  Firstly, in addition to the “normal” build tools you will also need a
   few specialist tools. On a Debian or Ubuntu operating system try:

   .. code:: shell

       sudo apt install acpica-tools device-tree-compiler uuid-dev

-  Secondly, create a new working directory and store the absolute path to this
   directory in an environment variable, WORKSPACE. It does not matter where
   this directory is created but as an example:

   .. code:: shell

       export WORKSPACE=$HOME/build/developerbox-firmware
       mkdir -p $WORKSPACE

-  Run the following commands to clone the source code:

   .. code:: shell

       cd $WORKSPACE
       git clone https://github.com/ARM-software/arm-trusted-firmware -b master
       git clone https://github.com/tianocore/edk2.git -b master
       git clone https://github.com/tianocore/edk2-platforms.git -b master
       git clone https://github.com/tianocore/edk2-non-osi.git -b master

-  Build ATF:

   .. code:: shell

       cd $WORKSPACE/arm-trusted-firmware
       make -j`nproc` PLAT=synquacer PRELOADED_BL33_BASE=0x8200000 bl31 fiptool
       tools/fiptool/fiptool create \
             --tb-fw ./build/synquacer/release/bl31.bin \
             --soc-fw ./build/synquacer/release/bl31.bin \
             --scp-fw ./build/synquacer/release/bl31.bin \
             ../edk2-non-osi/Platform/Socionext/DeveloperBox/fip_all_arm_tf.bin

-  Build EDK2:

   .. code:: shell

       cd $WORKSPACE
       export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/edk2-platforms:$WORKSPACE/edk2-non-osi
       export ACTIVE_PLATFORM="Platform/Socionext/DeveloperBox/DeveloperBox.dsc"
       export GCC5_AARCH64_PREFIX=aarch64-linux-gnu-
       unset ARCH

       . edk2/edksetup.sh
       make -C edk2/BaseTools

       build -p $ACTIVE_PLATFORM -b RELEASE -a AARCH64 -t GCC5 -n `nproc` -D DO_X86EMU=TRUE

-  The firmware image, which comprises the option ROM, ARM trusted firmware and
   EDK2 itself, can be found $WORKSPACE/../Build/DeveloperBox/RELEASE_GCC5/FV/.
   Use SYNQUACERFIRMWAREUPDATECAPSULEFMPPKCS7.Cap for UEFI capsule update and
   SPI_NOR_IMAGE.fd for the serial flasher.

   Note #1: -t GCC5 can be loosely translated as “enable link-time-optimization”;
   any version of gcc >= 5 will support this feature and may be used to build EDK2.

   Note #2: Replace -b RELEASE with -b DEBUG to build a debug.

Install the System Firmware
---------------------------

-  Providing your Developerbox is fully working and has on operating system
   installed then you can adopt your the newly compiled system firmware using
   the capsule update method:.

   .. code:: shell

       sudo apt install fwupdate
       sudo fwupdate --apply {50b94ce5-8b63-4849-8af4-ea479356f0e3} \
                     SYNQUACERFIRMWAREUPDATECAPSULEFMPPKCS7.Cap
       sudo reboot

-  Alternatively you can install SPI_NOR_IMAGE.fd using the `board recovery method`_.

.. _link: https://www.96boards.org/product/developerbox/
.. _board recovery method: https://www.96boards.org/documentation/enterprise/developerbox/installation/board-recovery.md.html
