mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-25 23:06:15 +00:00
tools: imx8image: add possibility to skip dcd
Currently U-Boot always adds DCD Image to boot container. On imx8qxp SoC it is possible to init RAM from within SCFW, and adding a DCD image type to the boot container in this case breaks booting (No debug output anymore from SCFW! Nor any output from SPL), so we need to configure a dcd skip somehow. This patch adds a new imx8image_cmd entry CMD_DCD_SKIP and a new entry in imximage.cfg "DCD_SKIP". If set to "true" no DCD image type will be added to the container. Signed-off-by: Heiko Schocher <hs@denx.de> Reviewed-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
parent
6bc9d4407c
commit
254c00803b
2 changed files with 7 additions and 1 deletions
|
@ -146,6 +146,7 @@ struct image_array {
|
||||||
enum imx8image_cmd {
|
enum imx8image_cmd {
|
||||||
CMD_INVALID,
|
CMD_INVALID,
|
||||||
CMD_BOOT_FROM,
|
CMD_BOOT_FROM,
|
||||||
|
CMD_DCD_SKIP,
|
||||||
CMD_FUSE_VERSION,
|
CMD_FUSE_VERSION,
|
||||||
CMD_SW_VERSION,
|
CMD_SW_VERSION,
|
||||||
CMD_MSG_BLOCK,
|
CMD_MSG_BLOCK,
|
||||||
|
|
|
@ -14,6 +14,7 @@ static soc_type_t soc;
|
||||||
static int container = -1;
|
static int container = -1;
|
||||||
static int32_t core_type = CFG_CORE_INVALID;
|
static int32_t core_type = CFG_CORE_INVALID;
|
||||||
static bool emmc_fastboot;
|
static bool emmc_fastboot;
|
||||||
|
static bool dcd_skip;
|
||||||
static image_t param_stack[IMG_STACK_SIZE];
|
static image_t param_stack[IMG_STACK_SIZE];
|
||||||
static uint8_t fuse_version;
|
static uint8_t fuse_version;
|
||||||
static uint16_t sw_version;
|
static uint16_t sw_version;
|
||||||
|
@ -41,6 +42,7 @@ static int imx8image_check_image_types(uint8_t type)
|
||||||
|
|
||||||
static table_entry_t imx8image_cmds[] = {
|
static table_entry_t imx8image_cmds[] = {
|
||||||
{CMD_BOOT_FROM, "BOOT_FROM", "boot command", },
|
{CMD_BOOT_FROM, "BOOT_FROM", "boot command", },
|
||||||
|
{CMD_DCD_SKIP, "DCD_SKIP", "skip DCD init", },
|
||||||
{CMD_FUSE_VERSION, "FUSE_VERSION", "fuse version", },
|
{CMD_FUSE_VERSION, "FUSE_VERSION", "fuse version", },
|
||||||
{CMD_SW_VERSION, "SW_VERSION", "sw version", },
|
{CMD_SW_VERSION, "SW_VERSION", "sw version", },
|
||||||
{CMD_MSG_BLOCK, "MSG_BLOCK", "msg block", },
|
{CMD_MSG_BLOCK, "MSG_BLOCK", "msg block", },
|
||||||
|
@ -88,6 +90,9 @@ static void parse_cfg_cmd(image_t *param_stack, int32_t cmd, char *token,
|
||||||
if (!strncmp("emmc_fastboot", token, 13))
|
if (!strncmp("emmc_fastboot", token, 13))
|
||||||
emmc_fastboot = true;
|
emmc_fastboot = true;
|
||||||
break;
|
break;
|
||||||
|
case CMD_DCD_SKIP:
|
||||||
|
if (!strncmp("true", token, 4))
|
||||||
|
dcd_skip = true;
|
||||||
case CMD_FUSE_VERSION:
|
case CMD_FUSE_VERSION:
|
||||||
fuse_version = (uint8_t)(strtoll(token, NULL, 0) & 0xFF);
|
fuse_version = (uint8_t)(strtoll(token, NULL, 0) & 0xFF);
|
||||||
break;
|
break;
|
||||||
|
@ -1024,7 +1029,7 @@ int imx8image_copy_image(int outfd, struct image_tool_params *mparams)
|
||||||
fprintf(stdout, "CONTAINER SW VERSION:\t0x%04x\n", sw_version);
|
fprintf(stdout, "CONTAINER SW VERSION:\t0x%04x\n", sw_version);
|
||||||
|
|
||||||
build_container(soc, sector_size, emmc_fastboot,
|
build_container(soc, sector_size, emmc_fastboot,
|
||||||
img_sp, false, fuse_version, sw_version, outfd);
|
img_sp, dcd_skip, fuse_version, sw_version, outfd);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue