7b1a411743
The new atmelimage converts a machine code BLOB to bootable ROM image. Atmel ROM has no sophisticated image format, it only checks the first 7 ARM vectors. The vectors can contain valid B or LDR opcodes, the 6'th vector contains the image size to load. Additionally the PMECC header can be written by the atmelimage target. The parameters must be given via the -n switch as a coma separated list. For example: mkimage -T atmelimage \ -n usePmecc=1,sectorPerPage=4,sectorSize=512,spareSize=64,eccBits=4,eccOffset=36 \ -d spl/u-boot-spl.bin boot.bin A provided image can be checked for correct header setup. It prints out the PMECC header parameters if it has one and the 6'th interrupt vector content. ---8<--- Image Type: ATMEL ROM-Boot Image with PMECC Header PMECC header ==================== eccOffset: 36 sectorSize: 512 eccBitReq: 4 spareSize: 64 nbSectorPerPage: 4 usePmecc: 1 ==================== 6'th vector has 17044 set --->8--- A SPL binary modified with the atmelimage mkimage target was succesfully booted on a sama5d34ek via MMC and NAND. Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com> Cc: Bo Shen <voice.shen@atmel.com> Cc: Heiko Schocher <hs@denx.de> Tested-by: Bo Shen <voice.shen@atmel.com>
63 lines
1.6 KiB
C
63 lines
1.6 KiB
C
/*
|
|
* (C) Copyright 2013
|
|
*
|
|
* Written by Guilherme Maciel Ferreira <guilherme.maciel.ferreira@gmail.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#include "imagetool.h"
|
|
|
|
/*
|
|
* Callback function to register a image type within a tool
|
|
*/
|
|
static imagetool_register_t register_func;
|
|
|
|
/*
|
|
* register_image_tool -
|
|
*
|
|
* The tool provides its own registration function in order to all image
|
|
* types initialize themselves.
|
|
*/
|
|
void register_image_tool(imagetool_register_t image_register)
|
|
{
|
|
/*
|
|
* Save the image tool callback function. It will be used to register
|
|
* image types within that tool
|
|
*/
|
|
register_func = image_register;
|
|
|
|
/* Init ATMEL ROM Boot Image generation/list support */
|
|
init_atmel_image_type();
|
|
/* Init Freescale PBL Boot image generation/list support */
|
|
init_pbl_image_type();
|
|
/* Init Kirkwood Boot image generation/list support */
|
|
init_kwb_image_type();
|
|
/* Init Freescale imx Boot image generation/list support */
|
|
init_imx_image_type();
|
|
/* Init Freescale mxs Boot image generation/list support */
|
|
init_mxs_image_type();
|
|
/* Init FIT image generation/list support */
|
|
init_fit_image_type();
|
|
/* Init TI OMAP Boot image generation/list support */
|
|
init_omap_image_type();
|
|
/* Init Default image generation/list support */
|
|
init_default_image_type();
|
|
/* Init Davinci UBL support */
|
|
init_ubl_image_type();
|
|
/* Init Davinci AIS support */
|
|
init_ais_image_type();
|
|
/* Init TI Keystone boot image generation/list support */
|
|
init_gpimage_type();
|
|
}
|
|
|
|
/*
|
|
* register_image_type -
|
|
*
|
|
* Register a image type within a tool
|
|
*/
|
|
void register_image_type(struct image_type_params *tparams)
|
|
{
|
|
register_func(tparams);
|
|
}
|