tools: add support for Marvell doimage

Add Marvell "doimage" utility support.
The "doimage" utility allows to create flash images compatible
with Marvell BootROM image format. Additionally this tool
allows the flash image parsing and verification.

Change-Id: Ie8d7ccd0cc2978684e7eecb695f375395fc749ee
Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
This commit is contained in:
Konstantin Porotchkin 2018-02-26 16:28:40 +02:00
parent f87e94491f
commit 434e029ddd
4 changed files with 1819 additions and 0 deletions

1
.gitignore vendored
View File

@ -18,6 +18,7 @@ tools/cert_create/src/*.o
tools/cert_create/src/**/*.o
tools/cert_create/cert_create
tools/cert_create/cert_create.exe
tools/doimage/doimage
# GNU GLOBAL files
GPATH

48
tools/doimage/Makefile Normal file
View File

@ -0,0 +1,48 @@
#
# Copyright (C) 2018 Marvell International Ltd.
#
# SPDX-License-Identifier: BSD-3-Clause
# https://spdx.org/licenses
PROJECT = doimage
OBJECTS = doimage.o
CFLAGS = -Wall -Werror
ifeq (${DEBUG},1)
CFLAGS += -g -O0 -DDEBUG
else
CFLAGS += -O2
endif
ifeq (${MARVELL_SECURE_BOOT},1)
DOIMAGE_CC_FLAGS := -DCONFIG_MVEBU_SECURE_BOOT
DOIMAGE_LD_FLAGS := -lconfig -lmbedtls -lmbedcrypto -lmbedx509
endif
CFLAGS += ${DOIMAGE_CC_FLAGS}
# Make soft links and include from local directory otherwise wrong headers
# could get pulled in from firmware tree.
INCLUDE_PATHS = -I.
CC := gcc
RM := rm -rf
.PHONY: all clean
all: ${PROJECT}
${PROJECT}: ${OBJECTS} Makefile
@echo " LD $@"
${Q}${CC} ${OBJECTS} ${DOIMAGE_LD_FLAGS} -o $@
@echo
@echo "Built $@ successfully"
@echo
%.o: %.c %.h Makefile
@echo " CC $<"
${Q}${CC} -c ${CFLAGS} ${INCLUDE_PATHS} $< -o $@
clean:
${Q}${RM} ${PROJECT}
${Q}${RM} ${OBJECTS}

1755
tools/doimage/doimage.c Normal file

File diff suppressed because it is too large Load Diff

15
tools/doimage/doimage.mk Normal file
View File

@ -0,0 +1,15 @@
#
# Copyright (C) 2018 Marvell International Ltd.
#
# SPDX-License-Identifier: BSD-3-Clause
# https://spdx.org/licenses
DOIMAGE_FLAGS ?= -l 0x4100000 -e 0x4100000
#NAND params
#Open and update the below when using NAND as a boot device.
CONFIG_MVEBU_NAND_BLOCK_SIZE := 256
CONFIG_MVEBU_NAND_CELL_TYPE := SLC
NAND_DOIMAGE_FLAGS := -t $(CONFIG_MVEBU_NAND_CELL_TYPE) -n $(CONFIG_MVEBU_NAND_BLOCK_SIZE)