mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00
Merge changes from topic "mrvl_bootimage" into integration
* changes: docs: marvell: Update build documentation to reflect mrvl_bootimage and mrvl_flash changes plat: marvell: armada: Add new target mrvl_bootimage plat: marvell: armada: a3k: Add support for building $(DOIMAGETOOL)
This commit is contained in:
commit
20c378920e
4 changed files with 85 additions and 51 deletions
|
@ -61,17 +61,17 @@ There are several build options:
|
|||
|
||||
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
|
||||
- 0 - LOG_LEVEL_NONE
|
||||
- 10 - LOG_LEVEL_ERROR
|
||||
- 20 - LOG_LEVEL_NOTICE (default for DEBUG=0)
|
||||
- 30 - LOG_LEVEL_WARNING
|
||||
- 40 - LOG_LEVEL_INFO (default for DEBUG=1)
|
||||
- 50 - LOG_LEVEL_VERBOSE
|
||||
|
||||
- USE_COHERENT_MEM
|
||||
|
||||
This flag determines whether to include the coherent memory region in the
|
||||
BL memory map or not.
|
||||
BL memory map or not. Enabled by default.
|
||||
|
||||
- LLC_ENABLE
|
||||
|
||||
|
@ -122,25 +122,25 @@ There are several build options:
|
|||
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 2CS)
|
||||
- DDR4 2CS (3): DB-88F3720-DDR4-Modular (4GB)
|
||||
- DDR3 1CS (4): DB-88F3720-DDR3-Modular (1GB); EspressoBIN V3-V5 (1GB 1CS)
|
||||
- DDR4 1CS (5): EspressoBin V7 (1GB)
|
||||
- DDR4 2CS (6): EspressoBin V7 (2GB)
|
||||
- DDR3 2CS (7): EspressoBin V3-V5 (2GB)
|
||||
- CUSTOMER (CUST): Customer board, DDR3 1CS 512MB
|
||||
- 0 - DDR3 1CS: DB-88F3720-DDR3-Modular (512MB); EspressoBIN (512MB)
|
||||
- 1 - DDR4 1CS: DB-88F3720-DDR4-Modular (512MB)
|
||||
- 2 - DDR3 2CS: EspressoBIN V3-V5 (1GB 2CS)
|
||||
- 3 - DDR4 2CS: DB-88F3720-DDR4-Modular (4GB)
|
||||
- 4 - DDR3 1CS: DB-88F3720-DDR3-Modular (1GB); EspressoBIN V3-V5 (1GB 1CS)
|
||||
- 5 - DDR4 1CS: EspressoBin V7 (1GB)
|
||||
- 6 - DDR4 2CS: EspressoBin V7 (2GB)
|
||||
- 7 - DDR3 2CS: EspressoBin V3-V5 (2GB)
|
||||
- CUST - CUSTOMER: 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
|
||||
- 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
|
||||
|
||||
|
@ -176,33 +176,48 @@ There are several build options:
|
|||
|
||||
- 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 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
|
||||
- CRYPTOPP_PATH
|
||||
|
||||
.. code:: shell
|
||||
For Armada37x0 only, use this parameter tp point to Crypto++ source code
|
||||
directory, which is required for building WTP image tool.
|
||||
|
||||
> 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
|
||||
For example, in order to build the image in debug mode with log level up to 'notice' level run
|
||||
|
||||
.. code:: shell
|
||||
.. code:: shell
|
||||
|
||||
> 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
|
||||
> make DEBUG=1 USE_COHERENT_MEM=0 LOG_LEVEL=20 PLAT=<MARVELL_PLATFORM> mrvl_flash
|
||||
|
||||
Supported MARVELL_PLATFORM are:
|
||||
- a3700 (for both A3720 DB and EspressoBin)
|
||||
- a70x0
|
||||
- a70x0_amc (for AMC board)
|
||||
- a80x0
|
||||
- a80x0_mcbin (for MacchiatoBin)
|
||||
- t9130 (OcteonTX2 CN913x)
|
||||
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
|
||||
|
||||
.. code:: shell
|
||||
|
||||
> 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 \
|
||||
MV_DDR_PATH=/path/to/mv-ddr-marvell/ WTP=/path/to/A3700-utils-marvell/ \
|
||||
CRYPTOPP_PATH=/path/to/cryptopp/ BL33=/path/to/u-boot.bin \
|
||||
all fip mrvl_bootimage mrvl_flash
|
||||
|
||||
To build just TF-A without WTMI image (useful for A3720 Turris MOX board), run following command:
|
||||
|
||||
.. code:: shell
|
||||
|
||||
> make USE_COHERENT_MEM=0 PLAT=a3700 BL33=/path/to/u-boot.bin CROSS_COMPILE=aarch64-linux-gnu- mrvl_bootimage
|
||||
|
||||
Supported MARVELL_PLATFORM are:
|
||||
- a3700 (for both A3720 DB and EspressoBin)
|
||||
- a70x0
|
||||
- a70x0_amc (for AMC board)
|
||||
- a80x0
|
||||
- a80x0_mcbin (for MacchiatoBin)
|
||||
- t9130 (OcteonTX2 CN913x)
|
||||
|
||||
Special Build Flags
|
||||
--------------------
|
||||
|
@ -224,7 +239,7 @@ For more information about build options, please refer to the
|
|||
|
||||
Build output
|
||||
------------
|
||||
Marvell's TF-A compilation generates 7 files:
|
||||
Marvell's TF-A compilation generates 8 files:
|
||||
|
||||
- ble.bin - BLe image
|
||||
- bl1.bin - BL1 image
|
||||
|
@ -234,6 +249,12 @@ Marvell's TF-A compilation generates 7 files:
|
|||
- 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.
|
||||
- uart-images.tgz.bin - GZIPed TAR archive which contains Armada37x0 images
|
||||
for booting via UART. Could be loaded via Marvell's WtpDownload tool from
|
||||
A3700-utils-marvell repository.
|
||||
|
||||
Additional make target ``mrvl_bootimage`` produce ``boot-image.bin`` file and target
|
||||
``mrvl_flash`` produce final ``flash-image.bin`` and ``uart-images.tgz.bin`` files.
|
||||
|
||||
|
||||
Tools and external components installation
|
||||
|
@ -269,6 +290,10 @@ Armada37x0 Builds require installation of 3 components
|
|||
|
||||
https://github.com/MarvellEmbeddedProcessors/A3700-utils-marvell.git
|
||||
|
||||
(4) Crypto++ library available at the following repository:
|
||||
|
||||
https://github.com/weidai11/cryptopp.git
|
||||
|
||||
Armada70x0 and Armada80x0 Builds require installation of an additional component
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
|
|
@ -15,6 +15,8 @@ MARVELL_DRV_BASE := drivers/marvell
|
|||
MARVELL_COMMON_BASE := $(MARVELL_PLAT_BASE)/common
|
||||
HANDLE_EA_EL3_FIRST := 1
|
||||
|
||||
include plat/marvell/marvell.mk
|
||||
|
||||
#*********** A3700 *************
|
||||
|
||||
# GICV3
|
||||
|
@ -65,9 +67,7 @@ BL31_SOURCES += lib/cpus/aarch64/cortex_a53.S \
|
|||
ifneq (${WTP},)
|
||||
|
||||
DOIMAGEPATH := $(WTP)
|
||||
DOIMAGETOOL := $(DOIMAGEPATH)/wtptp/linux/tbb_linux
|
||||
|
||||
include plat/marvell/marvell.mk
|
||||
DOIMAGETOOL := $(DOIMAGEPATH)/wtptp/src/TBB_Linux/release/TBB_linux
|
||||
|
||||
ifeq ($(MARVELL_SECURE_BOOT),1)
|
||||
DOIMAGE_CFG := $(DOIMAGEPATH)/atf-tim.txt
|
||||
|
@ -120,10 +120,12 @@ TIMBLDUARTARGS := $(MARVELL_SECURE_BOOT) UART $(IMAGESPATH) $(DOIMAGEPATH) $(CL
|
|||
$(DDR_TOPOLOGY) 0 0 $(DOIMAGE_CFG) $(TIMNCFG) $(TIMNSIG) 0
|
||||
DOIMAGE_FLAGS := -r $(DOIMAGE_CFG) -v -D
|
||||
|
||||
mrvl_flash: ${BUILD_PLAT}/${FIP_NAME} ${DOIMAGETOOL}
|
||||
$(shell truncate -s %128K ${BUILD_PLAT}/bl1.bin)
|
||||
$(shell cat ${BUILD_PLAT}/bl1.bin ${BUILD_PLAT}/${FIP_NAME} > ${BUILD_PLAT}/${BOOT_IMAGE})
|
||||
$(shell truncate -s %4 ${BUILD_PLAT}/${BOOT_IMAGE})
|
||||
$(DOIMAGETOOL):
|
||||
$(if $(value CRYPTOPP_PATH),,$(error "Platform '${PLAT}' for WTP image tool requires CRYPTOPP_PATH. Please set CRYPTOPP_PATH to point to the right directory"))
|
||||
$(Q)$(MAKE) --no-print-directory -C $(CRYPTOPP_PATH) -f GNUmakefile
|
||||
$(Q)$(MAKE) --no-print-directory -C $(DOIMAGEPATH)/wtptp/src/TBB_Linux -f TBB_linux.mak LIBDIR=$(CRYPTOPP_PATH)
|
||||
|
||||
mrvl_flash: ${BUILD_PLAT}/${BOOT_IMAGE} ${DOIMAGETOOL}
|
||||
$(if $(value MV_DDR_PATH),,$(error "Platform '${PLAT}' for target '$@' requires MV_DDR_PATH. Please set MV_DDR_PATH to point to the right directory"))
|
||||
${Q}${MAKE} --no-print-directory -C ${DOIMAGEPATH} WTMI_IMG=$(WTMI_IMG) MV_DDR_PATH=$(MV_DDR_PATH)
|
||||
$(shell truncate -s %4 $(WTMI_IMG))
|
||||
|
|
|
@ -160,8 +160,6 @@ ${DOIMAGETOOL}: mrvl_clean
|
|||
@$(DOIMAGE_LIBS_CHECK)
|
||||
${Q}${MAKE} --no-print-directory -C ${DOIMAGEPATH}
|
||||
|
||||
mrvl_flash: ${BUILD_PLAT}/${FIP_NAME} ${DOIMAGETOOL} ${BUILD_PLAT}/ble.bin
|
||||
$(shell truncate -s %128K ${BUILD_PLAT}/bl1.bin)
|
||||
$(shell cat ${BUILD_PLAT}/bl1.bin ${BUILD_PLAT}/${FIP_NAME} > ${BUILD_PLAT}/${BOOT_IMAGE})
|
||||
mrvl_flash: ${BUILD_PLAT}/${BOOT_IMAGE} ${DOIMAGETOOL}
|
||||
${DOIMAGETOOL} ${DOIMAGE_FLAGS} ${BUILD_PLAT}/${BOOT_IMAGE} ${BUILD_PLAT}/${FLASH_IMAGE}
|
||||
|
||||
|
|
|
@ -85,3 +85,12 @@ endif
|
|||
ifeq (${MSS_SUPPORT}, 1)
|
||||
include $(MARVELL_PLAT_BASE)/common/mss/mss_common.mk
|
||||
endif
|
||||
|
||||
$(BUILD_PLAT)/$(BOOT_IMAGE): $(BUILD_PLAT)/bl1.bin $(BUILD_PLAT)/$(FIP_NAME)
|
||||
@cp $(BUILD_PLAT)/bl1.bin $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; }
|
||||
@truncate -s %128K $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; }
|
||||
@cat $(BUILD_PLAT)/$(FIP_NAME) >> $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; }
|
||||
@truncate -s %4 $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; }
|
||||
@echo "Built $@ successfully"
|
||||
|
||||
mrvl_bootimage: $(BUILD_PLAT)/$(BOOT_IMAGE)
|
||||
|
|
Loading…
Add table
Reference in a new issue