From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <5396DF5D.7070005@xenomai.org> Date: Tue, 10 Jun 2014 12:35:09 +0200 From: Gilles Chanteperdrix MIME-Version: 1.0 References: <20140606135912.GJ5765@lukather> <20140606140031.GK5765@lukather> <539322FA.5030004@xenomai.org> <20140610094057.GJ9791@lukather> <5396D469.7060701@xenomai.org> <20140610095422.GK9791@lukather> <5396D780.4020704@xenomai.org> In-Reply-To: <5396D780.4020704@xenomai.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai] Xenomai on Atmel SAMA5D3 with a 3.14 kernel List-Id: Discussions about the Xenomai project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Maxime Ripard Cc: Michael Opdenacker , Thomas Petazzoni , Boris Brezillon , Alexandre Belloni , xenomai@xenomai.org, =?UTF-8?B?QW50b2luZSBUw6luYXJ0?= -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 06/10/2014 12:01 PM, Gilles Chanteperdrix wrote: > On 06/10/2014 11:54 AM, Maxime Ripard wrote: >> On Tue, Jun 10, 2014 at 11:48:25AM +0200, Gilles Chanteperdrix >> wrote: >>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 >>> >>> On 06/10/2014 11:40 AM, Maxime Ripard wrote: >>>> On Sat, Jun 07, 2014 at 04:34:34PM +0200, Gilles >>>> Chanteperdrix wrote: >>>>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 >>>>> >>>>> On 06/06/2014 04:00 PM, Maxime Ripard wrote: >>>>>> On Fri, Jun 06, 2014 at 03:59:12PM +0200, Maxime Ripard >>>>>> wrote: >>>>>>> Hi Gilles, >>>>>>> >>>>>>> I've been experimenting these days with the i-pipe 3.14 >>>>>>> kernel, and current xenomai master branch on the Atmel >>>>>>> SAMA5D3 SoC. >>>>>>> >>>>>>> There's a few issues there, the first one being that >>>>>>> at91_ipipe_early_init crashes because of a NULL pointer >>>>>>> dereference. This is due to the clk_get_rate call on >>>>>>> the clock returned by clk_get(NULL, "mck"). >>>>>>> >>>>>>> This clk_get call cannot since 3.14 because the clock >>>>>>> code has been rewritten, and you can't use clkdev >>>>>>> anymore. >>>>>>> >>>>>>> This is quite simple to fix, and after actually fixing >>>>>>> it, you get a more interesting issue: either the >>>>>>> timers or the interrupts don't work at all. >>>>>>> >>>>>>> The first symptom is that it get stuck at the delay >>>>>>> loop calibration. Setting the loops per jiffy in the >>>>>>> command line make the boot go further, until the switch >>>>>>> to the ipipe_tsc clocksource. This actually makes me >>>>>>> think that it's more the timers that are broken rather >>>>>>> than the interrupts. Changing the timer counter block >>>>>>> doesn't solve anything. >>>>>>> >>>>>>> Do you have an idea of what could be going on? >>>>>> >>>>>> >>>>>> Actually, the boot seem just to be *much* slower, so >>>>>> maybe the timers are working after all, but it's just yet >>>>>> another issue with the clocks. >>>>>> >>>>> Does __ipipe_tsc_update get called in Linux timer >>>>> interrupt? >>>> >>>> Here is what's happening: http://pastebin.com/m2mz66pU >>>> >>>> You can see that at line 35, the timer interrupt (a spurious >>>> one?) gets called, and calls __ipipe_tsc_update. At that >>>> point, ipipe_tsc_value seems to be NULL, and hence >>>> __ipipe_tsc_update returns. >>>> >>>> The thing is, the timer interrupt doesn't seem to be called >>>> again. The fact that it was actually called once makes me >>>> think that it's rather the timer clock that is not running... >>>> I will dig into it. >>> >>> If you have CONFIG_NO_HZ enabled, try to turn it off. > >> CONFIG_NO_HZ is disabled, here is the full config: >> http://pastebin.com/fmVGTX4W > > If you compile the kernel without I-pipe and Xenomai support and > enable the tcb_clksrc clocksource driver does it work? Looking at this code, I see that some AT91s, presumably the recent ones, have a 32 bits counter. at91_ipipe.c will not work correctly with these. Could you check in the processor datasheet the width of its TC? That said, it should only be a problem for the timer, not for the clock source, and the timer only starts being used when a Xenomai task is started, since Linux has its own timer separated from the one of Xenomai on these processors. - -- Gilles. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Icedove - http://www.enigmail.net/ iD8DBQFTlt9dGpcgE6m/fboRAn8bAJsG9Y7AsmKy6w9jTgtTqahNSYc/QwCfapta nOA9PdPD5T9mgnIGSmWz3b4= =GpC+ -----END PGP SIGNATURE-----