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