[U-Boot] [PATCH 01/10] ddr: altera: stratix10: Move SDRAM size check to SDRAM driver

Marek Vasut marex at denx.de
Tue Mar 12 10:41:39 UTC 2019


On 3/12/19 9:31 AM, Ley Foon Tan wrote:
> Move SDRAM size check to SDRAM driver. sdram_calculate_size()
> is called in SDRAM initialization already, avoid calling
> twice in size check function.
> 
> Signed-off-by: Ley Foon Tan <ley.foon.tan at intel.com>
> ---
>  arch/arm/mach-socfpga/spl_s10.c | 11 -----------
>  drivers/ddr/altera/sdram_s10.c  | 15 +++++++++++++++
>  2 files changed, 15 insertions(+), 11 deletions(-)
> 
> diff --git a/arch/arm/mach-socfpga/spl_s10.c b/arch/arm/mach-socfpga/spl_s10.c
> index a3db20a819..a141ffe82a 100644
> --- a/arch/arm/mach-socfpga/spl_s10.c
> +++ b/arch/arm/mach-socfpga/spl_s10.c
> @@ -181,17 +181,6 @@ void board_init_f(ulong dummy)
>  		hang();
>  	}
>  
> -	gd->ram_size = sdram_calculate_size();
> -	printf("DDR: %d MiB\n", (int)(gd->ram_size >> 20));
> -
> -	/* Sanity check ensure correct SDRAM size specified */
> -	debug("DDR: Running SDRAM size sanity check\n");
> -	if (get_ram_size(0, gd->ram_size) != gd->ram_size) {
> -		puts("DDR: SDRAM size check failed!\n");
> -		hang();
> -	}
> -	debug("DDR: SDRAM size check passed!\n");
> -
>  	mbox_init();
>  
>  #ifdef CONFIG_CADENCE_QSPI
> diff --git a/drivers/ddr/altera/sdram_s10.c b/drivers/ddr/altera/sdram_s10.c
> index a48567c109..8895813440 100644
> --- a/drivers/ddr/altera/sdram_s10.c
> +++ b/drivers/ddr/altera/sdram_s10.c
> @@ -134,6 +134,17 @@ static int poll_hmc_clock_status(void)
>  				 SYSMGR_HMC_CLK_STATUS_MSK, true, 1000, false);
>  }
>  
> +static void sdram_size_check(void)
> +{
> +	/* Sanity check ensure correct SDRAM size specified */
> +	debug("DDR: Running SDRAM size sanity check\n");
> +	if (get_ram_size(0, gd->ram_size) != gd->ram_size) {
> +		puts("DDR: SDRAM size check failed!\n");
> +		hang();
> +	}
> +	debug("DDR: SDRAM size check passed!\n");
> +}
> +
>  /**
>   * sdram_mmr_init_full() - Function to initialize SDRAM MMR
>   *
> @@ -339,6 +350,8 @@ int sdram_mmr_init_full(unsigned int unused)
>  	else
>  		gd->ram_size = size;
>  
> +	printf("DDR: %d MiB\n", (int)(gd->ram_size >> 20));

Is the type cast needed?

>  	/* Enable or disable the SDRAM ECC */
>  	if (CTRLCFG1_CFG_CTRL_EN_ECC(ctrlcfg1)) {
>  		setbits_le32(SOCFPGA_SDR_ADDRESS + ECCCTRL1,
> @@ -361,6 +374,8 @@ int sdram_mmr_init_full(unsigned int unused)
>  			      DDR_HMC_ECCCTL2_AWB_EN_SET_MSK));
>  	}
>  
> +	sdram_size_check();
> +
>  	debug("DDR: HMC init success\n");
>  	return 0;
>  }
> 


-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list