From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Anderson Date: Tue, 23 Mar 2021 20:34:31 -0400 Subject: SAMA5D3 Xplained: SPL broken after panic added to /lib/time.c:94 In-Reply-To: References: <32474781-93e4-0d71-b5c0-b0b3743ea085@microchip.com> <61fa8518-41ca-cff6-c88b-a0ba5df42edd@microchip.com> Message-ID: <58bea4e0-193a-0af9-7e83-4fe49d5cd0b0@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 3/23/21 12:54 PM, Manuel Lu?s Reis wrote: > 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 You can also track down the early call to get_ticks. Whatever is doing it probably doesn't need to, considering that before this patch it was getting back garbage. --Sean > > 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. > > Cheers, > > > > > On Tue, 23 Mar 2021 at 16:26, 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 >> > 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, >> > 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, >> >>> > >> >> 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 >>> > > >>> > > >>> > > 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) >>> > > >>> > >>> >>