[U-Boot] [PATCH 01/10] ddr: altera: stratix10: Move SDRAM size check to SDRAM driver
Marek Vasut
marex at denx.de
Wed Mar 20 09:41:51 UTC 2019
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.
--
Best regards,
Marek Vasut
More information about the U-Boot
mailing list