[U-Boot] [PATCH v2] board/fsl/lx2160a: Fix MC firmware loading during SD boot
Meenakshi Aggarwal
meenakshi.aggarwal at nxp.com
Tue Mar 12 04:58:27 UTC 2019
+1
> -----Original Message-----
> From: Pankaj Bansal
> Sent: Tuesday, March 12, 2019 10:27 AM
> To: Meenakshi Aggarwal <meenakshi.aggarwal at nxp.com>; Priyanka Jain
> <priyanka.jain at nxp.com>; Prabhakar Kushwaha
> <prabhakar.kushwaha at nxp.com>
> Cc: u-boot at lists.denx.de; Pankaj Bansal <pankaj.bansal at nxp.com>
> Subject: [PATCH v2] board/fsl/lx2160a: Fix MC firmware loading during SD boot
>
> Issue: 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
>
> Cause: mc 10.14.3 file size is 1064880, the value is 0x820 blocks which is more
> than 0x800. The default DPC loading address 0x80100000 has overlap with MC
> loading address 0x80000000, since the size of MC is over 1MB.
>
> Fix: update the MC and dpc address as per their addresses in XSPI flash.
> i.e. in xspi flash MC address is 0x20a00000 so corresponding address in dram
> when loading MC firmware from mmc is 0x80a00000. similarly dpc is @
> 0x20e00000 in xspi flash and 0x80e00000 in dram when loaded from mmc.
>
> This same approach is being followed in other cases also in same file, e.g.
> esbc_validate 0x80740000 <=> esbc_validate 0x20740000
>
> On same lines modify the address of dpl to 0x80d00000
>
> Signed-off-by: Pankaj Bansal <pankaj.bansal at nxp.com>
> ---
>
> Notes:
> 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 | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/include/configs/lx2160a_common.h
> b/include/configs/lx2160a_common.h
> index 17cfd7bfd7..98af24a45d 100644
> --- a/include/configs/lx2160a_common.h
> +++ b/include/configs/lx2160a_common.h
> @@ -217,14 +217,14 @@ int select_i2c_ch_pca9547_sec(unsigned char ch);
> "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" \
> @@ -289,11 +289,11 @@ int select_i2c_ch_pca9547_sec(unsigned char ch);
>
> #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