• Paul Beesley's avatar
    doc: Reformat platform port documents · 24dba2b3
    Paul Beesley authored
    
    The platform port documents are not very standardised right now and
    they don't integrate properly into the document tree so:
    
    1) Make sure each port has a proper name and title (incl. owner)
    2) Correct use of headings, subheadings, etc in each port
    3) Resolve any naming conflicts between documents
    
    Change-Id: I4c2da6f57172b7f2af3512e766ae9ce3b840b50f
    Signed-off-by: default avatarPaul Beesley <paul.beesley@arm.com>
    24dba2b3
synquacer.rst 3.77 KB

Socionext Synquacer

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

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:

    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:

    export WORKSPACE=$HOME/build/developerbox-firmware
    mkdir -p $WORKSPACE
  • Run the following commands to clone the source code:

    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:

    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:

    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:.

    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.