armv8: ls2088ardb: Fix MC firmware loading during SD boot
authorWasim Khan <wasim.khan@nxp.com>
Mon, 10 Jun 2019 10:17:29 +0000 (10:17 +0000)
committerPrabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Wed, 19 Jun 2019 07:24:57 +0000 (12:54 +0530)
During SD boot, MC firmware and DPC are copied from SD card to DDR.
Size reserved between MC and DPC firmware on DDR is 1MB.
If the size of MC firmware(load address 0x80000000) is more than 1 MB
then part of MC firmware will be overwritten by DPC firmware (load
address 0x80100000).

Fix: Update the MC/DPL/DPC firmware's DDR address as per their
respective addresses in SD card.

Signed-off-by: Wasim Khan <wasim.khan@nxp.com>
Reviewed-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
include/configs/ls2080ardb.h

index 2e8a8bbdb7491294429e72a30905b81ec2dbe4a9..bfb54be79b998a3c842498375307fbc791b91565 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /*
- * Copyright 2017 NXP
+ * Copyright 2017, 2019 NXP
  * Copyright 2015 Freescale Semiconductor
  */
 
@@ -342,14 +342,14 @@ unsigned long get_board_sys_clk(void);
        "esbc_validate 0x20740000;"             \
        "fsl_mc start mc 0x20a00000 0x20e00000 \0"
 #define SD_MC_INIT_CMD                         \
-       "mmcinfo;mmc read 0x80000000 0x5000 0x800;" \
-       "mmc read 0x80100000 0x7000 0x800;"     \
+       "mmcinfo;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 IFC_MC_INIT_CMD                                \
        "env exists secureboot && "     \
        "esbc_validate 0x580700000 && "         \
@@ -528,8 +528,8 @@ unsigned long get_board_sys_clk(void);
                        "&& mmcinfo && mmc read $load_addr 0x3c00 0x800 " \
                        "&& esbc_validate $load_addr; "                 \
                        "env exists mcinitcmd && run mcinitcmd "        \
-                       "&& mmc read 0x88000000 0x6800 0x800 "          \
-                       "&& fsl_mc lazyapply dpl 0x88000000; "          \
+                       "&& mmc read 0x80d00000 0x6800 0x800 "          \
+                       "&& fsl_mc lazyapply dpl 0x80d00000; "          \
                        "run distro_bootcmd;run sd_bootcmd; "           \
                        "env exists secureboot && esbc_halt;"