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

Claudiu.Beznea at microchip.com Claudiu.Beznea at microchip.com
Thu Mar 25 11:25:50 CET 2021


On 23.03.2021 18:54, Manuel Luís Reis wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> Hi again,
> 
>> There are timers on the board. How come it used to work, before the
>> commit that breaks it ?
>>
>> I understand that nobody registers a driver in the UCLASS_TIMER , but
>> why was this enforced? and if this enforcement breaks our board, we can
>> either:
>> 1/ stop the enforcement
>> 2/ comply
>>
>> Either way, I think we have to see how we can get one timer to register
>> itself as an UCLASS_TIMER
> 
> I understand.
> 
>> This timer is a new hardware timer which is not present in the sama5d3 SoC.
>>
>> Sama5d3 should have old PIT timers, (programmable interrupt timer)
>> and most likely that code has not been converted to DM (UCLASSes)
>>
>> One possible approach is to convert specific old PIT code to comply with
>> DM requirements (or if that code is already available, we have to
>> use/enable it ).
>>
>> I add Claudiu in the mail thread, as he is more familiar with PIT and
>> timers than I am, and maybe he has some opinion related to this issue.
> 
> Thanks for clarifying this for me.
> 
> Look forward to hearing from Claudiu.

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?

> 
> Cheers,
> 
> 
> 
> 
> On Tue, 23 Mar 2021 at 16:26, <Eugen.Hristev at microchip.com> wrote:
>>
>> On 3/23/21 6:08 PM, Manuel Luís Reis wrote:
>>> Hi again,
>>>
>>> FYI: As a small test I commented out the change you mentioned but got
>>> the same mistake. Begs to wonder if it is
>>>   related to the issue at hand.
>>>
>>> Going back to
>>> http://u-boot.10912.n7.nabble.com/PATCH-v2-time-Fix-get-ticks-being-non-monotonic-td426172.html
>>>
>>> Sean Anderson asks:
>>>
>>> "So nothing here is probed, but additionally nothing has UCLASS_TIMER.
>>> What do you expect the timer device to be?"
>>
>> There are timers on the board. How come it used to work, before the
>> commit that breaks it ?
>>
>> I understand that nobody registers a driver in the UCLASS_TIMER , but
>> why was this enforced? and if this enforcement breaks our board, we can
>> either:
>> 1/ stop the enforcement
>> 2/ comply
>>
>> Either way, I think we have to see how we can get one timer to register
>> itself as an UCLASS_TIMER
>>
>>
>>>
>>> Is the timer missing for SAMA5D3 board? I cannot find it in
>>> /drivers/timer, other than mchp-pit64b-timer.c, which doesn't
>>> seem to be used ins this particular board as far as I could tell.
>>
>> This timer is a new hardware timer which is not present in the sama5d3 SoC.
>>
>> Sama5d3 should have old PIT timers, (programmable interrupt timer)
>> and most likely that code has not been converted to DM (UCLASSes)
>>
>> One possible approach is to convert specific old PIT code to comply with
>> DM requirements (or if that code is already available, we have to
>> use/enable it ).
>>
>> I add Claudiu in the mail thread, as he is more familiar with PIT and
>> timers than I am, and maybe he has some opinion related to this issue.
>>
>> Eugen
>>
>>>
>>> Any thoughts on how to fix this? Anything I can do to help?
>>>
>>> Cheers
>>>
>>>
>>> On Tue, 23 Mar 2021 at 13:20, Manuel Luís Reis <mluis.reis at gmail.com
>>> <mailto:mluis.reis at gmail.com>> wrote:
>>>
>>>
>>>      > The change may be dedicated to sama5d2 devices. Could you have a look
>>>      > please if your device (sama5d3) needs this change as well ? I
>>>     mean, does
>>>      > doing something similar for sama5d3 fixes your problem ?
>>>
>>>     I  am not quite sure how to check what you suggest to be honest.
>>>
>>>     The commit you've sent seems to be board independent ->
>>>     mach-at91/spl_atmel.c. Doesn't it apply to all of the at91 boards,
>>>     sama5d3 inclusive?
>>>     I don't see where else I could make a change like that.
>>>
>>>     Thanks for your patience.
>>>
>>>
>>>
>>>     On Tue, 23 Mar 2021 at 11:38, <Eugen.Hristev at microchip.com
>>>     <mailto:Eugen.Hristev at microchip.com>> wrote:
>>>
>>>         On 3/23/21 1:28 PM, Manuel Luís Reis wrote:
>>>
>>>          > Hi,
>>>          >
>>>          > Thanks for your reply.
>>>          >
>>>          >  > Can you please check if this commit is in your tree, or,
>>>         if the same has
>>>          >  > to be applied in your case (sama5d3), to make it work ?
>>>          >
>>>          > I've got that change in my tree, but I'm still getting the
>>>         error message.
>>>
>>>         The change may be dedicated to sama5d2 devices. Could you have a
>>>         look
>>>         please if your device (sama5d3) needs this change as well ? I
>>>         mean, does
>>>         doing something similar for sama5d3 fixes your problem ?
>>>
>>>         Thanks,
>>>         Eugen
>>>
>>>          >
>>>          > I am using up-to-date mainline U-Boot.
>>>          >
>>>          > Thanks
>>>          >
>>>          >
>>>          >
>>>          > On Tue, 23 Mar 2021 at 11:14, <Eugen.Hristev at microchip.com
>>>         <mailto:Eugen.Hristev at microchip.com>
>>>          > <mailto:Eugen.Hristev at microchip.com
>>>         <mailto:Eugen.Hristev at microchip.com>>> wrote:
>>>          >
>>>          >     Hi,
>>>          >
>>>          >     Can you please check if this commit is in your tree, or,
>>>         if the same
>>>          >     has
>>>          >     to be applied in your case (sama5d3), to make it work ?
>>>          >
>>>          >     Here is the commit :
>>>          >
>>>          >
>>>          >
>>>         https://source.denx.de/u-boot/custodians/u-boot-atmel/-/commit/786f35b619ddbfb88e4532d11a56413f5dab473f
>>>          >
>>>          >
>>>          >
>>>          >     On 3/23/21 1:06 PM, Manuel Luís Reis wrote:
>>>          >      > Hello,
>>>          >      >
>>>          >      > I've been having issues with SPL booting in the
>>>         SAMA5D3 Xplained
>>>          >     board
>>>          >      > getting the following error, with up-to-date mainline
>>>         U-boot and
>>>          >      > sama5d3_xplained _mmc_defconfig:
>>>          >      >
>>>          >      > -----------------------------------------------
>>>          >      > RomBOOT
>>>          >      >
>>>          >      > <debug_uart>
>>>          >      > Could not initialize timer (err -19)
>>>          >      > .....
>>>          >      > -----------------------------------------------
>>>          >      >
>>>          >      > I could trace back the error to commit 4b2be78.
>>>          >      >
>>>          >      > This topic has been raised before on
>>>          >      >
>>>          >
>>>         http://u-boot.10912.n7.nabble.com/PATCH-v2-time-Fix-get-ticks-being-non-monotonic-td426172.html
>>>          >      > Tried the suggestions there with the same result.
>>>          >      >
>>>          >      > I'm am not too knowledgeable with U-Boot nor this
>>>         board. Could
>>>          >     you shed
>>>          >      > some light on this? Any pointers would be appreciated.
>>>          >      >
>>>          >      > Let me know if you require additional information.
>>>          >      >
>>>          >      > Cheers,
>>>          >      > Manuel
>>>          >      >
>>>          >      > Output from dm_dump_all():
>>>          >      >
>>>          >      >   Class     Index  Probed  Driver                Name
>>>          >      >
>>>         -----------------------------------------------------------
>>>          >      >   root  0  [ + ]   root_driver  root_driver
>>>          >      >   simple_bus  0  [   ]   simple_bus  `-- ahb
>>>          >      >   simple_bus  1  [   ]   simple_bus      `-- apb
>>>          >      >   mmc  0  [   ]   atmel-mci          |-- mmc at f0000000
>>>          >      >   blk  0  [   ]   mmc_blk          |   `--
>>>         mmc at f0000000.blk
>>>          >      >   mmc  1  [   ]   atmel-mci          |-- mmc at f8000000
>>>          >      >   blk  1  [   ]   mmc_blk          |   `--
>>>         mmc at f8000000.blk
>>>          >      >   serial  0  [   ]   serial_atmel          |--
>>>         serial at ffffee00
>>>          >      >   pinctrl  0  [   ]   atmel_sama5d3_pinctrl          |--
>>>          >     pinctrl at fffff200
>>>          >      >   pinconfig  0  [   ]   pinconfig          |   |-- dbgu
>>>          >      >   pinconfig  1  [   ]   pinconfig          |   |   `--
>>>         dbgu-0
>>>          >      >   pinconfig  2  [   ]   pinconfig          |   |-- mmc0
>>>          >      >   pinconfig  3  [   ]   pinconfig          |   |   |--
>>>          >     mmc0_clk_cmd_dat0
>>>          >      >   pinconfig  4  [   ]   pinconfig          |   |   |--
>>>         mmc0_dat1_3
>>>          >      >   pinconfig  5  [   ]   pinconfig          |   |   `--
>>>         mmc0_dat4_7
>>>          >      >   pinconfig  6  [   ]   pinconfig          |   |-- mmc1
>>>          >      >   pinconfig  7  [   ]   pinconfig          |   |   |--
>>>          >     mmc1_clk_cmd_dat0
>>>          >      >   pinconfig  8  [   ]   pinconfig          |   |   `--
>>>         mmc1_dat1_3
>>>          >      >   pinconfig  9  [   ]   pinconfig          |   |-- spi0
>>>          >      >   pinconfig  10  [   ]   pinconfig          |   |
>>>         `-- spi0-0
>>>          >      >   pinconfig  11  [   ]   pinconfig          |   |-- spi1
>>>          >      >   pinconfig  12  [   ]   pinconfig          |   |
>>>         `-- spi1-0
>>>          >      >   pinconfig  13  [   ]   pinconfig          |   `-- board
>>>          >      >   pinconfig  14  [   ]   pinconfig          |
>>>         |-- mmc0_cd
>>>          >      >   pinconfig  15  [   ]   pinconfig          |
>>>         `-- mmc1_cd
>>>          >      >   gpio  0  [   ]   atmel_at91rm9200_gpio          |--
>>>         gpio at fffff200
>>>          >      >   gpio  1  [   ]   atmel_at91rm9200_gpio          |--
>>>         gpio at fffff400
>>>          >      >   gpio  2  [   ]   atmel_at91rm9200_gpio          |--
>>>         gpio at fffff600
>>>          >      >   gpio  3  [   ]   atmel_at91rm9200_gpio          |--
>>>         gpio at fffff800
>>>          >      >   gpio  4  [   ]   atmel_at91rm9200_gpio          |--
>>>         gpio at fffffa00
>>>          >      >   simple_bus  2  [   ]   at91-pmc          `--
>>>         pmc at fffffc00
>>>          >      >   clk  0  [   ]   at91sam9x5-utmi-clk              |--
>>>         utmick
>>>          >      >   clk  1  [   ]   at91-master-clk              |--
>>>         masterck
>>>          >      >   misc  0  [   ]   sam9x5-periph-clk              `--
>>>         periphck
>>>          >      >   clk  2  [   ]   periph-clk                  |--
>>>         dbgu_clk at 2
>>>          >      >   clk  3  [   ]   periph-clk                  |--
>>>         pioA_clk at 6
>>>          >      >   clk  4  [   ]   periph-clk                  |--
>>>         pioB_clk at 7
>>>          >      >   clk  5  [   ]   periph-clk                  |--
>>>         pioC_clk at 8
>>>          >      >   clk  6  [   ]   periph-clk                  |--
>>>         pioD_clk at 9
>>>          >      >   clk  7  [   ]   periph-clk                  |--
>>>         pioE_clk at 10
>>>          >      >   clk  8  [   ]   periph-clk                  |--
>>>         mci0_clk at 21
>>>          >      >   clk  9  [   ]   periph-clk                  |--
>>>         mci1_clk at 22
>>>          >      >   clk  10  [   ]   periph-clk                  |--
>>>         spi0_clk at 24
>>>          >      >   clk  11  [   ]   periph-clk                  `--
>>>         spi1_clk at 25
>>>          >      > Could not initialize timer (err -19)
>>>          >      >
>>>          >
>>>
>>



More information about the U-Boot mailing list