[U-Boot] [PATCH v5] board/fsl/lx2160a: Fix MC firmware loading during SD boot
Pankaj Bansal
pankaj.bansal at nxp.com
Mon Mar 25 11:57:37 UTC 2019
during SD boot, following error comes:
MMC read: dev # 0, block # 20480, count 2048 ... 2048 blocks read: OK
MMC read: dev # 0, block # 28672, count 2048 ... 2048 blocks read: OK
fsl-mc: ERR: Bad firmware image (bad FIT header)
Hit any key to stop autoboot: 0
it's occurring because mc 10.14.3 file size is 1064880, which means 0x820
SD blocks which is more than 0x800 blocks (1MB). This results in DPC
loading address 0x80100000 overlapping with MC loading address 0x80000000.
so, update the MC/dpl/dpc addresses as per their addresses in SD card.
Assuming that SD card block size is 512 bytes and 0x0 block in SD card
would get loaded at 0x80000000 (DDR base address), this gives following
addresses for various binaries:
Binary | SD block | DDR offset
------------------------------
MC | 0x5000 | 0x80a00000
DPL | 0x6800 | 0x80d00000
DPC | 0x7000 | 0x80e00000
Signed-off-by: Pankaj Bansal <pankaj.bansal at nxp.com>
---
Notes:
V5:
- Add 2019 in Copyright year
V4:
- Modify the commit message to remove any reference to Flexspi flash
V3:
- modify the commit message.
- remove issue/cause/fix from message.
V2:
- reduce the mc firmware size blocks from 0x1800 to 0x1200, to save on
boot time
- Fix the commit message to indicate that the patch is for LX2160A boards
only and for SD boot only
include/configs/lx2160a_common.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/include/configs/lx2160a_common.h b/include/configs/lx2160a_common.h
index 637619cb55..17e8f272a1 100644
--- a/include/configs/lx2160a_common.h
+++ b/include/configs/lx2160a_common.h
@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
- * Copyright 2018 NXP
+ * Copyright 2018-2019 NXP
*/
#ifndef __LX2_COMMON_H
@@ -200,14 +200,14 @@ unsigned long get_board_ddr_clk(void);
"fsl_mc start mc 0x20a00000 0x20e00000\0"
#define SD_MC_INIT_CMD \
- "mmc read 0x80000000 0x5000 0x800;" \
- "mmc read 0x80100000 0x7000 0x800;" \
+ "mmc read 0x80a00000 0x5000 0x1200;" \
+ "mmc read 0x80e00000 0x7000 0x800;" \
"env exists secureboot && " \
"mmc read 0x80700000 0x3800 0x10 && " \
"mmc read 0x80740000 0x3A00 0x10 && " \
"esbc_validate 0x80700000 && " \
"esbc_validate 0x80740000 ;" \
- "fsl_mc start mc 0x80000000 0x80100000\0"
+ "fsl_mc start mc 0x80a00000 0x80e00000\0"
#define EXTRA_ENV_SETTINGS \
"hwconfig=fsl_ddr:bank_intlv=auto\0" \
@@ -272,11 +272,11 @@ unsigned long get_board_ddr_clk(void);
#define SD_BOOTCOMMAND \
"env exists mcinitcmd && mmcinfo; " \
- "mmc read 0x80001000 0x6800 0x800; " \
+ "mmc read 0x80d00000 0x6800 0x800; " \
"env exists mcinitcmd && env exists secureboot " \
" && mmc read 0x80780000 0x3C00 0x10 " \
"&& esbc_validate 0x80780000;env exists mcinitcmd " \
- "&& fsl_mc lazyapply dpl 0x80001000;" \
+ "&& fsl_mc lazyapply dpl 0x80d00000;" \
"run distro_bootcmd;run sd_bootcmd;" \
"env exists secureboot && esbc_halt;"
--
2.17.1
More information about the U-Boot
mailing list