[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