board_f: Drop return value from initdram()

At present we cannot use this function as an init sequence call without a
wrapper, since it returns the RAM size. Adjust it to set the RAM size in
global_data instead, and return 0 on success.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
Simon Glass
2017-03-31 08:40:25 -06:00
committed by Tom Rini
parent 52c411805c
commit 088454cde2
136 changed files with 631 additions and 304 deletions

View File

@@ -874,7 +874,7 @@ void update_early_mmu_table(void)
__weak int dram_init(void)
{
gd->ram_size = initdram();
initdram();
#if !defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD)
/* This will break-before-make MMU for DDR */
update_early_mmu_table();

View File

@@ -9,8 +9,12 @@
#include <asm/addrspace.h>
#include <mach/ddr.h>
phys_size_t initdram(void)
DECLARE_GLOBAL_DATA_PTR;
int initdram(void)
{
ddr_tap_tuning();
return get_ram_size((void *)KSEG1, SZ_256M);
gd->ram_size = get_ram_size((void *)KSEG1, SZ_256M);
return 0;
}

View File

@@ -110,12 +110,14 @@ static void ddr2_pmd_ungate(void)
}
/* initialize the DDR2 Controller and DDR2 PHY */
phys_size_t initdram(void)
int initdram(void)
{
ddr2_pmd_ungate();
ddr2_phy_init();
ddr2_ctrl_init();
return ddr2_calculate_size();
gd->ram_size = ddr2_calculate_size();
return 0;
}
int misc_init_r(void)

View File

@@ -401,17 +401,19 @@ void mpc85xx_reginfo(void)
#ifndef CONFIG_FSL_CORENET
#if (defined(CONFIG_SYS_RAMBOOT) || defined(CONFIG_SPL)) && \
!defined(CONFIG_SYS_INIT_L2_ADDR)
phys_size_t initdram(void)
int initdram(void)
{
#if defined(CONFIG_SPD_EEPROM) || defined(CONFIG_DDR_SPD) || \
defined(CONFIG_ARCH_QEMU_E500)
return fsl_ddr_sdram_size();
gd->ram_size = fsl_ddr_sdram_size();
#else
return (phys_size_t)CONFIG_SYS_SDRAM_SIZE * 1024 * 1024;
gd->ram_size = (phys_size_t)CONFIG_SYS_SDRAM_SIZE * 1024 * 1024;
#endif
return 0;
}
#else /* CONFIG_SYS_RAMBOOT */
phys_size_t initdram(void)
int initdram(void)
{
phys_size_t dram_size = 0;
@@ -460,7 +462,9 @@ phys_size_t initdram(void)
#endif
debug("DDR: ");
return dram_size;
gd->ram_size = dram_size;
return 0;
}
#endif /* CONFIG_SYS_RAMBOOT */
#endif

View File

@@ -33,6 +33,8 @@
#include "ecc.h"
DECLARE_GLOBAL_DATA_PTR;
#define PPC4xx_IBM_DDR2_DUMP_REGISTER(mnemonic) \
do { \
u32 data; \
@@ -414,7 +416,7 @@ static unsigned char spd_read(uchar chip, uint addr)
* banks appropriately. If Auto Memory Configuration is
* not used, it is assumed that no DIMM is plugged
*-----------------------------------------------------------------------------*/
phys_size_t initdram(void)
int initdram(void)
{
unsigned char iic0_dimm_addr[] = SPD_EEPROM_ADDRESS;
unsigned long dimm_populated[MAXDIMMS] = {SDRAM_NONE, SDRAM_NONE};
@@ -429,7 +431,9 @@ phys_size_t initdram(void)
* Reduce RAM size to avoid overwriting memory used by
* current stack? Not sure what is happening.
*/
return sdram_memsize() / 2;
gd->ram_size = sdram_memsize() / 2;
return 0;
}
num_dimm_banks = sizeof(iic0_dimm_addr);
@@ -650,7 +654,9 @@ phys_size_t initdram(void)
*/
set_mcsr(get_mcsr());
return sdram_memsize();
gd->ram_size = sdram_memsize();
return 0;
}
static void get_spd_info(unsigned long *dimm_populated,
@@ -2855,7 +2861,7 @@ static void test(void)
* time parameters.
* Configures the PPC405EX(r) and PPC460EX/GT
*---------------------------------------------------------------------------*/
phys_size_t initdram(void)
int initdram(void)
{
unsigned long val;
@@ -3011,7 +3017,9 @@ phys_size_t initdram(void)
set_mcsr(get_mcsr());
#endif /* CONFIG_PPC4xx_DDR_AUTOCALIBRATION */
return (CONFIG_SYS_MBYTES_SDRAM << 20);
gd->ram_size = CONFIG_SYS_MBYTES_SDRAM << 20;
return 0;
}
#endif /* CONFIG_SPD_EEPROM */

View File

@@ -30,6 +30,8 @@
#include <asm/mmu.h>
#include <asm/cache.h>
DECLARE_GLOBAL_DATA_PTR;
#if defined(CONFIG_SPD_EEPROM) && \
(defined(CONFIG_440EPX) || defined(CONFIG_440GRX))
@@ -998,7 +1000,7 @@ static void program_ddr0_44(unsigned long dimm_ranks[],
* banks appropriately. If Auto Memory Configuration is
* not used, it is assumed that no DIMM is plugged
*-----------------------------------------------------------------------------*/
phys_size_t initdram(void)
int initdram(void)
{
unsigned char const iic0_dimm_addr[] = SPD_EEPROM_ADDRESS;
unsigned long dimm_ranks[MAXDIMMS];
@@ -1212,7 +1214,9 @@ phys_size_t initdram(void)
#endif /* defined(CONFIG_ZERO_SDRAM) || defined(CONFIG_DDR_ECC) */
program_tlb(0, CONFIG_SYS_SDRAM_BASE, dram_size, MY_TLB_WORD2_I_ENABLE);
return dram_size;
gd->ram_size = dram_size;
return 0;
}
void board_add_ram_info(int use_default)

View File

@@ -17,6 +17,8 @@
#include "sdram.h"
#include "ecc.h"
DECLARE_GLOBAL_DATA_PTR;
#ifdef CONFIG_SDRAM_BANK0
#ifndef CONFIG_440
@@ -148,7 +150,7 @@ static ulong compute_rtr(ulong speed, ulong rows, ulong refresh)
/*
* Autodetect onboard SDRAM on 405 platforms
*/
phys_size_t initdram(void)
int initdram(void)
{
ulong speed;
ulong sdtr1;
@@ -226,11 +228,13 @@ phys_size_t initdram(void)
/*
* OK, size detected -> all done
*/
return size;
gd->ram_size = size;
return 0;
}
}
return 0;
return -ENXIO;
}
#else /* CONFIG_440 */
@@ -349,7 +353,7 @@ static void sdram_tr1_set(int ram_address, int* tr1_value)
* so this should be extended for other future boards
* using this routine!
*/
phys_size_t initdram(void)
int initdram(void)
{
int i;
int tr1_bank1;
@@ -440,11 +444,13 @@ phys_size_t initdram(void)
/*
* OK, size detected -> all done
*/
return size;
gd->ram_size = size;
return 0;
}
}
return 0; /* nothing found ! */
return -ENXIO; /* nothing found ! */
}
#endif /* CONFIG_440 */