]> git.sur5r.net Git - u-boot/blobdiff - drivers/ddr/fsl/main.c
Revert "drivers/ddr/fsl: Dual-license DDR driver"
[u-boot] / drivers / ddr / fsl / main.c
index 72ec1be65d12c6e1e1034e8261762519a61c1210..d0a7b3f107630e67b2bb0d2f4248b10774e7efaf 100644 (file)
@@ -1,9 +1,7 @@
 /*
  * Copyright 2008-2014 Freescale Semiconductor, Inc.
  *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * Version 2 as published by the Free Software Foundation.
+ * SPDX-License-Identifier:    GPL-2.0
  */
 
 /*
@@ -17,6 +15,8 @@
 #include <fsl_ddr_sdram.h>
 #include <fsl_ddr.h>
 
+DECLARE_GLOBAL_DATA_PTR;
+
 /*
  * CONFIG_SYS_FSL_DDR_SDRAM_BASE_PHY is the physical address from the view
  * of DDR controllers. It is the same as CONFIG_SYS_DDR_SDRAM_BASE for
@@ -42,35 +42,35 @@ void fsl_ddr_set_intl3r(const unsigned int granule_size);
 #if defined(SPD_EEPROM_ADDRESS) || \
     defined(SPD_EEPROM_ADDRESS1) || defined(SPD_EEPROM_ADDRESS2) || \
     defined(SPD_EEPROM_ADDRESS3) || defined(SPD_EEPROM_ADDRESS4)
-#if (CONFIG_NUM_DDR_CONTROLLERS == 1) && (CONFIG_DIMM_SLOTS_PER_CTLR == 1)
-u8 spd_i2c_addr[CONFIG_NUM_DDR_CONTROLLERS][CONFIG_DIMM_SLOTS_PER_CTLR] = {
+#if (CONFIG_SYS_NUM_DDR_CTLRS == 1) && (CONFIG_DIMM_SLOTS_PER_CTLR == 1)
+u8 spd_i2c_addr[CONFIG_SYS_NUM_DDR_CTLRS][CONFIG_DIMM_SLOTS_PER_CTLR] = {
        [0][0] = SPD_EEPROM_ADDRESS,
 };
-#elif (CONFIG_NUM_DDR_CONTROLLERS == 1) && (CONFIG_DIMM_SLOTS_PER_CTLR == 2)
-u8 spd_i2c_addr[CONFIG_NUM_DDR_CONTROLLERS][CONFIG_DIMM_SLOTS_PER_CTLR] = {
+#elif (CONFIG_SYS_NUM_DDR_CTLRS == 1) && (CONFIG_DIMM_SLOTS_PER_CTLR == 2)
+u8 spd_i2c_addr[CONFIG_SYS_NUM_DDR_CTLRS][CONFIG_DIMM_SLOTS_PER_CTLR] = {
        [0][0] = SPD_EEPROM_ADDRESS1,   /* controller 1 */
        [0][1] = SPD_EEPROM_ADDRESS2,   /* controller 1 */
 };
-#elif (CONFIG_NUM_DDR_CONTROLLERS == 2) && (CONFIG_DIMM_SLOTS_PER_CTLR == 1)
-u8 spd_i2c_addr[CONFIG_NUM_DDR_CONTROLLERS][CONFIG_DIMM_SLOTS_PER_CTLR] = {
+#elif (CONFIG_SYS_NUM_DDR_CTLRS == 2) && (CONFIG_DIMM_SLOTS_PER_CTLR == 1)
+u8 spd_i2c_addr[CONFIG_SYS_NUM_DDR_CTLRS][CONFIG_DIMM_SLOTS_PER_CTLR] = {
        [0][0] = SPD_EEPROM_ADDRESS1,   /* controller 1 */
        [1][0] = SPD_EEPROM_ADDRESS2,   /* controller 2 */
 };
-#elif (CONFIG_NUM_DDR_CONTROLLERS == 2) && (CONFIG_DIMM_SLOTS_PER_CTLR == 2)
-u8 spd_i2c_addr[CONFIG_NUM_DDR_CONTROLLERS][CONFIG_DIMM_SLOTS_PER_CTLR] = {
+#elif (CONFIG_SYS_NUM_DDR_CTLRS == 2) && (CONFIG_DIMM_SLOTS_PER_CTLR == 2)
+u8 spd_i2c_addr[CONFIG_SYS_NUM_DDR_CTLRS][CONFIG_DIMM_SLOTS_PER_CTLR] = {
        [0][0] = SPD_EEPROM_ADDRESS1,   /* controller 1 */
        [0][1] = SPD_EEPROM_ADDRESS2,   /* controller 1 */
        [1][0] = SPD_EEPROM_ADDRESS3,   /* controller 2 */
        [1][1] = SPD_EEPROM_ADDRESS4,   /* controller 2 */
 };
-#elif (CONFIG_NUM_DDR_CONTROLLERS == 3) && (CONFIG_DIMM_SLOTS_PER_CTLR == 1)
-u8 spd_i2c_addr[CONFIG_NUM_DDR_CONTROLLERS][CONFIG_DIMM_SLOTS_PER_CTLR] = {
+#elif (CONFIG_SYS_NUM_DDR_CTLRS == 3) && (CONFIG_DIMM_SLOTS_PER_CTLR == 1)
+u8 spd_i2c_addr[CONFIG_SYS_NUM_DDR_CTLRS][CONFIG_DIMM_SLOTS_PER_CTLR] = {
        [0][0] = SPD_EEPROM_ADDRESS1,   /* controller 1 */
        [1][0] = SPD_EEPROM_ADDRESS2,   /* controller 2 */
        [2][0] = SPD_EEPROM_ADDRESS3,   /* controller 3 */
 };
-#elif (CONFIG_NUM_DDR_CONTROLLERS == 3) && (CONFIG_DIMM_SLOTS_PER_CTLR == 2)
-u8 spd_i2c_addr[CONFIG_NUM_DDR_CONTROLLERS][CONFIG_DIMM_SLOTS_PER_CTLR] = {
+#elif (CONFIG_SYS_NUM_DDR_CTLRS == 3) && (CONFIG_DIMM_SLOTS_PER_CTLR == 2)
+u8 spd_i2c_addr[CONFIG_SYS_NUM_DDR_CTLRS][CONFIG_DIMM_SLOTS_PER_CTLR] = {
        [0][0] = SPD_EEPROM_ADDRESS1,   /* controller 1 */
        [0][1] = SPD_EEPROM_ADDRESS2,   /* controller 1 */
        [1][0] = SPD_EEPROM_ADDRESS3,   /* controller 2 */
@@ -148,7 +148,7 @@ void fsl_ddr_get_spd(generic_spd_eeprom_t *ctrl_dimms_spd,
        unsigned int i;
        unsigned int i2c_address = 0;
 
-       if (ctrl_num >= CONFIG_NUM_DDR_CONTROLLERS) {
+       if (ctrl_num >= CONFIG_SYS_NUM_DDR_CTLRS) {
                printf("%s unexpected ctrl_num = %u\n", __FUNCTION__, ctrl_num);
                return;
        }
@@ -432,7 +432,7 @@ fsl_ddr_compute(fsl_ddr_info_t *pinfo, unsigned int start_step,
                assert_reset = pinfo->board_need_mem_reset();
 
        /* data bus width capacity adjust shift amount */
-       unsigned int dbw_capacity_adjust[CONFIG_NUM_DDR_CONTROLLERS];
+       unsigned int dbw_capacity_adjust[CONFIG_SYS_NUM_DDR_CTLRS];
 
        for (i = first_ctrl; i <= last_ctrl; i++)
                dbw_capacity_adjust[i] = 0;
@@ -722,7 +722,7 @@ phys_size_t __fsl_ddr_sdram(fsl_ddr_info_t *pinfo)
                                                &pinfo->common_timing_params[i],
                                                law_memctl, i);
                                }
-#if CONFIG_NUM_DDR_CONTROLLERS > 3
+#if CONFIG_SYS_NUM_DDR_CTLRS > 3
                                else if (i == 2) {
                                        law_memctl = LAW_TRGT_IF_DDR_INTLV_34;
                                        fsl_ddr_set_lawbar(
@@ -786,7 +786,7 @@ phys_size_t __fsl_ddr_sdram(fsl_ddr_info_t *pinfo)
                print_size(total_memory, " of memory\n");
                printf("       This U-Boot only supports < 4G of DDR\n");
                printf("       You could rebuild it with CONFIG_PHYS_64BIT\n");
-               printf("       "); /* re-align to match init_func_ram print */
+               printf("       "); /* re-align to match init_dram print */
                total_memory = CONFIG_MAX_MEM_MAPPED;
        }
 #endif
@@ -796,7 +796,7 @@ phys_size_t __fsl_ddr_sdram(fsl_ddr_info_t *pinfo)
 
 /*
  * fsl_ddr_sdram(void) -- this is the main function to be
- * called by initdram() in the board file.
+ * called by dram_init() in the board file.
  *
  * It returns amount of memory configured in bytes.
  */
@@ -813,6 +813,7 @@ phys_size_t fsl_ddr_sdram(void)
        info.board_need_mem_reset = board_need_mem_reset;
        info.board_mem_reset = board_assert_mem_reset;
        info.board_mem_de_reset = board_deassert_mem_reset;
+       remove_unused_controllers(&info);
 
        return __fsl_ddr_sdram(&info);
 }
@@ -858,6 +859,7 @@ fsl_ddr_sdram_size(void)
        info.num_ctrls = CONFIG_SYS_FSL_DDR_MAIN_NUM_CTRLS;
        info.dimm_slots_per_ctrl = CONFIG_DIMM_SLOTS_PER_CTLR;
        info.board_need_mem_reset = NULL;
+       remove_unused_controllers(&info);
 
        /* Compute it once normally. */
        total_memory = fsl_ddr_compute(&info, STEP_GET_SPD, 1);