[U-Boot] [PATCH 02/22] ddr: imx8m: fix ddr firmware location when enable SPL OF

Schrempf Frieder frieder.schrempf at kontron.de
Wed Aug 14 08:04:48 UTC 2019


On 14.08.19 09:59, Peng Fan wrote:
> Hi,
> 
>> Subject: Re: [PATCH 02/22] ddr: imx8m: fix ddr firmware location when enable
>> SPL OF
>>
>> On 09.08.19 06:14, Peng Fan wrote:
>>> With SPL_OF_SPERATE, the device tree will be padded to
>>
>>          ^ Do you mean CONFIG_SPL_OF_CONTROL?
> Yes. Thanks.
>>
>>> end of the u-boot-spl-nodtb.bin, however we also put the ddr firmware
>>> file to this location, so need to adapt the code with SPL OF and align
>>> to 16bytes to ease copy firmware.
>>
>>                                       ^ I think this should be 4 bytes
> Yes.
> 
>>
>>>
>>> Signed-off-by: Peng Fan <peng.fan at nxp.com>
>>
>> I think this patch should be merged with the previous one (01/22), because if
>> one is applied without the other it would break things.
> 
> Currently only i.MX8MQ EVK is using the code, i.MX8MQ not enable SPL OF,
> so it will not break things.

Ok, so with the changes to the commit message above:

Reviewed-by: Frieder Schrempf <frieder.schrempf at kontron.de>
Tested-by: Frieder Schrempf <frieder.schrempf at kontron.de>

> 
> Thanks,
> Peng.
> 
>>
>>> ---
>>>    drivers/ddr/imx/imx8m/helper.c | 12 +++++++++++-
>>>    1 file changed, 11 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/ddr/imx/imx8m/helper.c
>>> b/drivers/ddr/imx/imx8m/helper.c index 61cd4f6db1..3e605353ea 100644
>>> --- a/drivers/ddr/imx/imx8m/helper.c
>>> +++ b/drivers/ddr/imx/imx8m/helper.c
>>> @@ -31,7 +31,17 @@ void ddr_load_train_firmware(enum fw_type type)
>>>    	unsigned long pr_to32, pr_from32;
>>>    	unsigned long fw_offset = type ? IMEM_2D_OFFSET : 0;
>>>    	unsigned long imem_start = (unsigned long)&_end + fw_offset;
>>> -	unsigned long dmem_start = imem_start + IMEM_LEN;
>>> +	unsigned long dmem_start;
>>> +
>>> +#ifdef CONFIG_SPL_OF_CONTROL
>>> +	if (gd->fdt_blob && !fdt_check_header(gd->fdt_blob)) {
>>> +		imem_start = roundup((unsigned long)&_end +
>>> +				     fdt_totalsize(gd->fdt_blob), 4) +
>>> +			fw_offset;
>>> +	}
>>> +#endif
>>> +
>>> +	dmem_start = imem_start + IMEM_LEN;
>>>
>>>    	pr_from32 = imem_start;
>>>    	pr_to32 = DDR_TRAIN_CODE_BASE_ADDR + 4 *
>> IMEM_OFFSET_ADDR;
>>>


More information about the U-Boot mailing list