[U-Boot] [PATCH v2] arm: socfpga: Move Stratix 10 SDRAM driver to DM

Marek Vasut marex at denx.de
Thu May 2 10:17:33 UTC 2019


On 5/2/19 5:46 AM, Ley Foon Tan wrote:
> On Tue, Apr 30, 2019 at 5:56 PM Marek Vasut <marex at denx.de> wrote:
>>
>> On 4/30/19 9:40 AM, Ley Foon Tan wrote:
>> [...]
>>>>>>> +static int altera_sdram_probe(struct udevice *dev)
>>>>>>> +{
>>>>>>> +     int ret;
>>>>>>> +     struct reset_ctl_bulk resets;
>>>>>>> +
>>>>>>> +     ret = reset_get_bulk(dev, &resets);
>>>>>>> +     if (ret) {
>>>>>>> +             dev_err(dev, "Can't get reset: %d\n", ret);
>>>>>>> +             return -ENODEV;
>>>>>>> +     }
>>>>>>> +     reset_deassert_bulk(&resets);
>>>>>>> +
>>>>>>> +     if (sdram_mmr_init_full(dev) != 0) {
>>>>>>> +             puts("SDRAM init failed.\n");
>>>>>>> +             goto failed;
>>>>>>> +     }
>>>>>>> +
>>>>>>> +     return 0;
>>>>>>> +
>>>>>>> +failed:
>>>>>>> +     reset_release_bulk(&resets);
>>>>>>> +     return -ENODEV;
>>>>>>>  }
>>>>>> Are you missing altera_sdram_remove() , which would assert reset here ?
>>>>> Will add it.
>>>>
>>>> But won't that prevent the DRAM controller from working ?
>>> Added assert reset in _remove, SDRAM controller still can work after
>>> boot to Uboot.
>>> Seem _remove is not called when boot to Uboot.
>>
>> Look at DM_FLAG_OS_PREPARE
> Tested add DM_FLAG_OS_PREPARE flag, but still didn't see it call to _remove().
> 
> BTW, I think we shouldn't assert SDRAM controller. Otherwise, SDRAM is
> not working in next boot stage.

Hence my question above -- "But won't that prevent the DRAM controller
from working ?"

I think you're right.

-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list