TF-A Build Instructions
======================

This section describes how to compile the ARM Trusted Firmware (TF-A) project for Marvell's platforms.

Build Instructions
------------------
(1) Set the cross compiler::

		> export CROSS_COMPILE=/path/to/toolchain/aarch64-linux-gnu-

(2) Set path for FIP images:

	Set U-Boot image path (relatively to TF-A root or absolute path)::

		> export BL33=path/to/u-boot.bin

	For example: if U-Boot project (and its images) is located at ~/project/u-boot,
	BL33 should be ~/project/u-boot/u-boot.bin

	.. note::

	   u-boot.bin should be used and not u-boot-spl.bin

	Set MSS/SCP image path (mandatory only for Armada80x0)::

		> export SCP_BL2=path/to/mrvl_scp_bl2*.img

(3) Armada-37x0 build requires WTP tools installation.

	See below in the section "Tools and external components installation".
	Install ARM 32-bit cross compiler, which is required for building WTMI image for CM3::

		> sudo apt-get install gcc-arm-linux-gnueabi

(4) Clean previous build residuals (if any)::

		> make distclean

(5) Build TF-A:

	There are several build options:

	- DEBUG: default is without debug information (=0). in order to enable it use DEBUG=1
		Must be disabled when building UART recovery images due to current console driver
		implementation that is not compatible with Xmodem protocol used for boot image download.

	- LOG_LEVEL: defines the level of logging which will be purged to the default output port.

		LOG_LEVEL_NONE		0
		LOG_LEVEL_ERROR		10
		LOG_LEVEL_NOTICE	20
		LOG_LEVEL_WARNING	30
		LOG_LEVEL_INFO		40
		LOG_LEVEL_VERBOSE	50

	- USE_COHERENT_MEM: This flag determines whether to include the coherent memory region in the
		BL memory map or not.

	- LLC_ENABLE: Flag defining the LLC (L3) cache state. The cache is enabled by default (LLC_ENABLE=1).

	- MARVELL_SECURE_BOOT: build trusted(=1)/non trusted(=0) image, default is non trusted.

	- BLE_PATH:
		Points to BLE (Binary ROM extension) sources folder. Only required for A8K builds.
		The parameter is optional, its default value is "plat/marvell/a8k/common/ble".

	- MV_DDR_PATH:
		For A7/8K, use this parameter to point to mv_ddr driver sources to allow BLE build. For A37x0,
		it is used for ddr_tool build.
		Usage example: MV_DDR_PATH=path/to/mv_ddr
		The parameter is optional for A7/8K, when this parameter is not set, the mv_ddr
		sources are expected to be located at: drivers/marvell/mv_ddr. However, the parameter
		is necessary for A37x0.
		For the mv_ddr source location, check the section "Tools and external components installation"

	- DDR_TOPOLOGY: For Armada37x0 only, the DDR topology map index/name, default is 0.
		Supported Options:
			- DDR3 1CS (0): DB-88F3720-DDR3-Modular (512MB); EspressoBIN (512MB)
			- DDR4 1CS (1): DB-88F3720-DDR4-Modular (512MB)
			- DDR3 2CS (2): EspressoBIN V3-V5 (1GB)
			- DDR4 2CS (3): DB-88F3720-DDR4-Modular (4GB)
			- DDR3 1CS (4): DB-88F3720-DDR3-Modular (1GB)
			- DDR4 1CS (5): EspressoBin V7 (1GB)
			- DDR4 2CS (6): EspressoBin V7 (2GB)
			- CUSTOMER (CUST): Customer board, DDR3 1CS 512MB

	- CLOCKSPRESET: For Armada37x0 only, the clock tree configuration preset including CPU and DDR frequency,
		default is CPU_800_DDR_800.
			- CPU_600_DDR_600	-	CPU at 600 MHz, DDR at 600 MHz
			- CPU_800_DDR_800	-	CPU at 800 MHz, DDR at 800 MHz
			- CPU_1000_DDR_800	-	CPU at 1000 MHz, DDR at 800 MHz
			- CPU_1200_DDR_750	-	CPU at 1200 MHz, DDR at 750 MHz

	- BOOTDEV: For Armada37x0 only, the flash boot device, default is SPINOR,
		Currently, Armada37x0 only supports SPINOR, SPINAND, EMMCNORM and SATA:

			- SPINOR - SPI NOR flash boot
			- SPINAND - SPI NAND flash boot
			- EMMCNORM - eMMC Download Mode
				Download boot loader or program code from eMMC flash into CM3 or CA53
				Requires full initialization and command sequence
			- SATA - SATA device boot

	- PARTNUM: For Armada37x0 only, the boot partition number, default is 0. To boot from eMMC, the value
		should be aligned with the parameter in U-Boot with name of CONFIG_SYS_MMC_ENV_PART, whose
		value by default is 1.
		For details about CONFIG_SYS_MMC_ENV_PART, please refer to the U-Boot build instructions.

	- WTMI_IMG: For Armada37x0 only, the path of the WTMI image can point to an image which does
		nothing, an image which supports EFUSE or a customized CM3 firmware binary. The default image
		is wtmi.bin that built from sources in WTP folder, which is the next option. If the default
		image is OK, then this option should be skipped.

	- WTP: For Armada37x0 only, use this parameter to point to wtptools source code directory, which
		can be found as a3700_utils.zip in the release.
		Usage example: WTP=/path/to/a3700_utils

	For example, in order to build the image in debug mode with log level up to 'notice' level run::

		> make DEBUG=1 USE_COHERENT_MEM=0 LOG_LEVEL=20 PLAT=<MARVELL_PLATFORM> all fip

	And if we want to build a Armada37x0 image in debug mode with log level up to 'notice' level,
	the image has the preset CPU at 1000 MHz, preset DDR3 at 800 MHz, the DDR topology of DDR4 2CS,
	the image boot from SPI NOR flash partition 0, and the image is non trusted in WTP, the command
	line is as following::

		> make DEBUG=1 USE_COHERENT_MEM=0 LOG_LEVEL=20 CLOCKSPRESET=CPU_1000_DDR_800 \
			MARVELL_SECURE_BOOT=0 DDR_TOPOLOGY=3 BOOTDEV=SPINOR PARTNUM=0 PLAT=a3700 all fip

	Supported MARVELL_PLATFORM are:
		- a3700 (for both A3720 DB and EspressoBin)
		- a70x0
		- a70x0_amc (for AMC board)
		- a80x0
		- a80x0_mcbin (for MacciatoBin)

Special Build Flags
--------------------
	- PLAT_RECOVERY_IMAGE_ENABLE: When set this option to enable secondary recovery function when build
		atf. In order to build UART recovery image this operation should be disabled for a70x0 and a80x0
		because of hardware limitation (boot from secondary image can interrupt UART recovery process).
		This MACRO definition is set in plat/marvell/a8k/common/include/platform_def.h file

(for more information about build options, please refer to section 'Summary of build options' in  TF-A user-guide:
 https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/user-guide.md)


Build output
-------------
Marvell's TF-A compilation generates 7 files:
	- ble.bin		- BLe image
	- bl1.bin		- BL1 image
	- bl2.bin		- BL2 image
	- bl31.bin		- BL31 image
	- fip.bin		- FIP image (contains BL2, BL31 & BL33 (U-Boot) images)
	- boot-image.bin	- TF-A image (contains BL1 and FIP images)
	- flash-image.bin	- Image which contains boot-image.bin and SPL image;
				  should be placed on the boot flash/device.


Tools and external components installation
==========================================

Armada37x0 Builds require installation of 3 components
-------------------------------------------------------

(1) ARM cross compiler capable of building images for the service CPU (CM3).
    This component is usually included in the Linux host packages.
    On Debian/Ubuntu hosts the default GNU ARM tool chain can be installed
    using the following command::

		> sudo apt-get install gcc-arm-linux-gnueabi

    Only if required, the default tool chain prefix "arm-linux-gnueabi-" can be
    overwritten using the environment variable CROSS_CM3.
    Example for BASH shell::

		> export CROSS_CM3=/opt/arm-cross/bin/arm-linux-gnueabi

(2) DDR initialization library sources (mv_ddr) available at the following repository
    (use the "mv_ddr-armada-atf-mainline" branch)::
    https://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell.git

(3) Armada3700 tools available at the following repository (use the latest release branch)::
    https://github.com/MarvellEmbeddedProcessors/A3700-utils-marvell.git

Armada70x0 and Armada80x0 Builds require installation of an additional component
--------------------------------------------------------------------------------

(1) DDR initialization library sources (mv_ddr) available at the following repository
    (use the "mv_ddr-armada-atf-mainline" branch)::
    https://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell.git

