tools/imximage: share DCD information via Kconfig

IMX based platforms can have the DCD table located on different
addresses due to differences in their memory maps (ie iMX7ULP).

This information is required by the user to sign the images for secure
boot so continue making it accessible via mkimage.

Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Stefano Babic <sbabic@denx.de>
This commit is contained in:
Jorge Ramirez-Ortiz 2019-12-11 10:42:36 +01:00 committed by Stefano Babic
parent 3b5aefac56
commit e97bdfa5da
2 changed files with 17 additions and 2 deletions

View File

@ -113,3 +113,14 @@ config DDRMC_VF610_CALIBRATION
config SPL_IMX_ROMAPI_LOADADDR config SPL_IMX_ROMAPI_LOADADDR
hex "Default load address to load image through ROM API" hex "Default load address to load image through ROM API"
depends on IMX8MN depends on IMX8MN
config IMX_DCD_ADDR
hex "DCD Blocks location on the image"
default 0x00910000 if !ARCH_MX7ULP
default 0x2f010000 if ARCH_MX7ULP
help
Indicates where the Device Configuration Data, a binary table used by
the ROM code to configure the device at early boot stage, is located.
This information is shared with the user via mkimage -l just so the
image can be signed.

View File

@ -11,9 +11,13 @@
#include "imagetool.h" #include "imagetool.h"
#include <image.h> #include <image.h>
#include "imximage.h" #include "imximage.h"
#include <generated/autoconf.h>
#define UNDEFINED 0xFFFFFFFF #define UNDEFINED 0xFFFFFFFF
#if !defined(CONFIG_IMX_DCD_ADDR)
#define CONFIG_IMX_DCD_ADDR 0x00910000
#endif
/* /*
* Supported commands for configuration file * Supported commands for configuration file
*/ */
@ -524,8 +528,8 @@ static void print_hdr_v2(struct imx_header *imx_hdr)
printf("HAB Blocks: 0x%08x 0x%08x 0x%08x\n", printf("HAB Blocks: 0x%08x 0x%08x 0x%08x\n",
(uint32_t)fhdr_v2->self, 0, (uint32_t)fhdr_v2->self, 0,
(uint32_t)(fhdr_v2->csf - fhdr_v2->self)); (uint32_t)(fhdr_v2->csf - fhdr_v2->self));
printf("DCD Blocks: 0x00910000 0x%08x 0x%08x\n", printf("DCD Blocks: 0x%08x 0x%08x 0x%08x\n",
offs, be16_to_cpu(dcdlen)); offs, CONFIG_IMX_DCD_ADDR, be16_to_cpu(dcdlen));
} }
} else { } else {
imx_header_v2_t *next_hdr_v2; imx_header_v2_t *next_hdr_v2;