[U-Boot] [PATCH 01/10] ddr: altera: stratix10: Move SDRAM size check to SDRAM driver
Ley Foon Tan
lftan.linux at gmail.com
Thu Mar 21 05:59:44 UTC 2019
On Wed, Mar 20, 2019 at 6:05 PM Marek Vasut <marex at denx.de> wrote:
>
> On 3/20/19 2:30 AM, Ley Foon Tan wrote:
> > On Tue, Mar 19, 2019 at 5:47 PM Marek Vasut <marex at denx.de> wrote:
> >>
> >> On 3/19/19 10:46 AM, Ley Foon Tan wrote:
> >>> On Tue, Mar 19, 2019 at 5:39 PM Marek Vasut <marex at denx.de> wrote:
> >>>>
> >>>> On 3/19/19 4:26 AM, Ley Foon Tan wrote:
> >>>>> On Tue, Mar 12, 2019 at 7:03 PM Marek Vasut <marex at denx.de> wrote:
> >>>>>>
> >>>>>> 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?
> >>>>> Yes, otherwise there is warning.
> >>>>
> >>>> Maybe the warning is justified and needs to be fixed instead of hidden ?
> >>>>
> >>>
> >>> drivers/ddr/altera/sdram_s10.c:461:16: warning: format ‘%d’ expects
> >>> argument of type ‘int’, but argument 2 has type ‘phys_size_t {aka
> >>> volatile long long unsigned int}’ [-Wformat=]
> >>> printf("DDR: %d MiB\n", gd->ram_size >> 20);
> >>> ~^ ~~~~~~~~~~~~~~~~~~
> >>
> >> That's %lld then.
> > Same as %llx, tiny printf in SPL doesn't support %ll.
>
> That shouldn't be hard to add, and it fixes a typecast which might hide
> bugs.
>
I will send separate patch to add %ll support in tiny printf.
Regards
Ley Foon
More information about the U-Boot
mailing list