mc : Reduce MC memory size to 128M
authorMeenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
Wed, 27 Feb 2019 09:11:02 +0000 (14:41 +0530)
committerPrabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Fri, 15 Mar 2019 06:22:00 +0000 (11:52 +0530)
ls2088, ls1088 : minimum MC Memory size is 128 MB
lx2 : minimum MC memory size is 256 MB

Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
drivers/net/fsl-mc/mc.c
include/configs/ls1088a_common.h
include/configs/ls2080a_common.h
include/configs/lx2160a_common.h

index e6cf7f3..cc59b21 100644 (file)
@@ -28,6 +28,7 @@
 #define MC_MEM_SIZE_ENV_VAR    "mcmemsize"
 #define MC_BOOT_TIMEOUT_ENV_VAR        "mcboottimeout"
 #define MC_BOOT_ENV_VAR                "mcinitcmd"
+#define MC_DRAM_BLOCK_DEFAULT_SIZE (512UL * 1024 * 1024)
 
 DECLARE_GLOBAL_DATA_PTR;
 static int mc_memset_resv_ram;
@@ -682,7 +683,8 @@ int mc_init(u64 mc_fw_addr, u64 mc_dpc_addr)
        size_t mc_ram_size = mc_get_dram_block_size();
 
        mc_ram_num_256mb_blocks = mc_ram_size / MC_RAM_SIZE_ALIGNMENT;
-       if (mc_ram_num_256mb_blocks < 1 || mc_ram_num_256mb_blocks > 0xff) {
+
+       if (mc_ram_num_256mb_blocks >= 0xff) {
                error = -EINVAL;
                printf("fsl-mc: ERROR: invalid MC private RAM size (%lu)\n",
                       mc_ram_size);
@@ -690,6 +692,12 @@ int mc_init(u64 mc_fw_addr, u64 mc_dpc_addr)
        }
 
        /*
+        * To support 128 MB DDR Size for MC
+        */
+       if (mc_ram_num_256mb_blocks == 0)
+               mc_ram_num_256mb_blocks = 0xFF;
+
+       /*
         * Management Complex cores should be held at reset out of POR.
         * U-Boot should be the first software to touch MC. To be safe,
         * we reset all cores again by setting GCR1 to 0. It doesn't do
@@ -729,8 +737,14 @@ int mc_init(u64 mc_fw_addr, u64 mc_dpc_addr)
        /*
         * Tell MC what is the address range of the DRAM block assigned to it:
         */
-       reg_mcfbalr = (u32)mc_ram_addr |
-                     (mc_ram_num_256mb_blocks - 1);
+       if (mc_ram_num_256mb_blocks < 0xFF) {
+               reg_mcfbalr = (u32)mc_ram_addr |
+                               (mc_ram_num_256mb_blocks - 1);
+       } else {
+               reg_mcfbalr = (u32)mc_ram_addr |
+                               (mc_ram_num_256mb_blocks);
+       }
+
        out_le32(&mc_ccsr_regs->reg_mcfbalr, reg_mcfbalr);
        out_le32(&mc_ccsr_regs->reg_mcfbahr,
                 (u32)(mc_ram_addr >> 32));
@@ -880,7 +894,7 @@ unsigned long mc_get_dram_block_size(void)
                               "\' environment variable: %lu\n",
                               dram_block_size);
 
-                       dram_block_size = CONFIG_SYS_LS_MC_DRAM_BLOCK_MIN_SIZE;
+                       dram_block_size = MC_DRAM_BLOCK_DEFAULT_SIZE;
                }
        }
 
index a80ce92..50c18f1 100644 (file)
@@ -147,7 +147,7 @@ unsigned long long get_qixis_addr(void);
  */
 
 #if defined(CONFIG_FSL_MC_ENET)
-#define CONFIG_SYS_LS_MC_DRAM_BLOCK_MIN_SIZE           (512UL * 1024 * 1024)
+#define CONFIG_SYS_LS_MC_DRAM_BLOCK_MIN_SIZE           (128UL * 1024 * 1024)
 #endif
 /* Command line configuration */
 #define CONFIG_CMD_CACHE
index 60a0b42..454c9e9 100644 (file)
@@ -152,7 +152,7 @@ unsigned long long get_qixis_addr(void);
  * 512MB aligned, so the min size to hide is 512MB.
  */
 #ifdef CONFIG_FSL_MC_ENET
-#define CONFIG_SYS_LS_MC_DRAM_BLOCK_MIN_SIZE           (512UL * 1024 * 1024)
+#define CONFIG_SYS_LS_MC_DRAM_BLOCK_MIN_SIZE           (128UL * 1024 * 1024)
 #endif
 
 /* Command line configuration */
index 4b5608b..637619c 100644 (file)
  * 512MB aligned, so the min size to hide is 512MB.
  */
 #ifdef CONFIG_FSL_MC_ENET
-#define CONFIG_SYS_LS_MC_DRAM_BLOCK_MIN_SIZE   (512UL * 1024 * 1024)
+#define CONFIG_SYS_LS_MC_DRAM_BLOCK_MIN_SIZE   (256UL * 1024 * 1024)
 #endif
 
 /* I2C bus multiplexer */