[PATCH 1/8] common: spl: spl: Update stack pointer address

Nikhil M Jain n-jain1 at ti.com
Thu Jun 8 13:56:05 CEST 2023


Hi Devarsh,

On 12/05/23 13:39, Devarsh Thakkar wrote:
> Hi Nikhil, Vignesh, Tom,
> 
> Nikhil,
> Thanks for the patch.
> 
> On 11/05/23 15:29, Nikhil M Jain wrote:
> 
> I think more apt subject would be "Update stack pointer after relocation"
>> At SPL stage when stack is relocated, the stack pointer needs to be
>> updated,
> 
> since
> the stack pointer may point to stack in on chip memory even
>> though stack is relocated.
>>
>> Signed-off-by: Nikhil M Jain <n-jain1 at ti.com>
>> ---
>>   common/spl/spl.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/common/spl/spl.c b/common/spl/spl.c
>> index 72078a8ebc..206caf4f8b 100644
>> --- a/common/spl/spl.c
>> +++ b/common/spl/spl.c
>> @@ -992,6 +992,7 @@ ulong spl_relocate_stack_gd(void)
>>   #endif
>>   	/* Get stack position: use 8-byte alignment for ABI compliance */
>>   	ptr = CONFIG_SPL_STACK_R_ADDR - roundup(sizeof(gd_t),16);
>> +	gd->start_addr_sp = ptr;
>>   	new_gd = (gd_t *)ptr;
> 
> Seems to me you are setting gd->start_addr_sp to new gd's base address, are
> they both supposed to be same ?
> 
> Vignesh, Tom,
> 
> Could you please have a look at this patch and comment ? Does the caller of
> this function need to set gd->start_addr_sp or it's ok to set in here only?
> 

I looked at how the start_addr_sp was being updated in u-boot proper 
stage and it is done in the same way as I have done. Since the stack 
grows in opposite direction there won't be any issues.

> Regards
> Devarsh
> 
>>   	memcpy(new_gd, (void *)gd, sizeof(gd_t));
>>   #if CONFIG_IS_ENABLED(DM)

Thanks,
Nikhil


More information about the U-Boot mailing list