123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- 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
- ~~~~~~~~~~~~~~
- - 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
|