SAMA5D3 Xplained: SPL broken after panic added to /lib/time.c:94

Manuel Reis mluis.reis at gmail.com
Sun Apr 4 18:25:20 CEST 2021


Hi again,

I guess I misunderstood things a bit. Apologies for that.
Nevertheless, timer_init in board_init_f is pointing to the weak 
timer_init in /lib/time.c, which is empty.

Is there a way we can force start the pit timer?
Any pointer would be very helpful. Let me know if you'd like me to do 
something in particular.

Thanks



On sex, 2 abr, 2021 at 18:15, Manuel Luís Reis <mluis.reis at gmail.com> 
wrote:
> FYI:
> 
> the output from serial port:
> <debug_uart>
> board_init_f spl_atmel.c 130 mem_init 182 ddr2_init mpddr.c 66udelay
> lib time.c 196__udelay lib time.c 177Could not initialize timer (err
> -11)
> 
> udelay lib time.c 196__udelay lib time.c 177Could not initialize 
> timer (err -11)
> 
> udelay lib time.c 196__udelay lib time.c 177Could not initialize 
> timer (err -11)
> ...
> 
> 
> 
> 
> On Fri, 2 Apr 2021 at 18:12, Manuel Luís Reis <mluis.reis at gmail.com> 
> wrote:
>> 
>>  > As it seems from the dump of dm_dump_all() the atmel_pit_timer is 
>> not
>>  > probed. I did a bit of debug and the dm_timer_init() ->
>>  > uclass_first_device() -> uclass_find_first_device() found zero 
>> timers
>>  > registered for UCLASS_TIMER. The driver is compiled.  Also 
>> checked that
>>  > atmel_pit_timer probe function is not called at all. The question 
>> should be
>>  > why it is not probed at all?
>> 
>>  Hi,
>> 
>>  So, I put objdump and puts to some good use and could backtrace the
>>  initial error to a udelay call in ddr2_init function on mpddr.c 
>> file.
>>  This function is called from mem_init on
>>  sama5d3_xplained/sama5d3_xplained.c, which in turn is called from
>>  board_init_f on spl_atmel.c.
>>  I couldn't, however, find which timer_init function is being called
>>  here. I still have a few to try, but disassembly gives me a pretty
>>  empty function:
>> 
>>  00303690 <timer_init>:
>>    303690:       e3a00000        mov     r0, #0
>>    303694:       e12fff1e        bx      lr
>> 
>>  This work didn't give me many answers, but I got a couple of newbie 
>> questions:
>> 
>>  Why is it calling board_init_f from spl_atmel.c and not spl_at91.c?
>>  Isn't the latter the appropriate architecture for this board?
>>  Do you know which timer_init function it is getting here?  Could 
>> this
>>  be the reason timer isn't getting probed?
>> 
>>  Cheers,




More information about the U-Boot mailing list