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:
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user