From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <5165C015.4060209@xenomai.org> Date: Wed, 10 Apr 2013 21:40:05 +0200 From: Gilles Chanteperdrix MIME-Version: 1.0 References: <51613CE2.6010900@wanadoo.fr> <51618B70.7070809@xenomai.org> <5161CE7B.1040404@wanadoo.fr> <5162711E.7080505@xenomai.org> <51627A31.80801@xenomai.org> <516316C0.7000400@wanadoo.fr> <51632EC4.7000108@xenomai.org> <5163B4E6.6040507@wanadoo.fr> <5163C4E7.8080007@xenomai.org> <5165650D.309@wanadoo.fr> In-Reply-To: <5165650D.309@wanadoo.fr> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Xenomai] Kernel 3.5.7 not booting in qemu for vexpress-a9 with xenomai-2.6.2.1 List-Id: Discussions about the Xenomai project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Thierry Bultel Cc: "Xenomai@xenomai.org" On 04/10/2013 03:11 PM, Thierry Bultel wrote: > Le 09/04/2013 09:36, Gilles Chanteperdrix a =C3=A9crit : >> On 04/09/2013 08:27 AM, Thierry Bultel wrote: >> >>> Le 08/04/2013 22:55, Gilles Chanteperdrix a =C3=A9crit : >>>> On 04/08/2013 09:13 PM, Thierry Bultel wrote: >>>> >>>>> Le 08/04/2013 10:05, Gilles Chanteperdrix a =C3=A9crit : >>>>>> On 04/08/2013 09:26 AM, Gilles Chanteperdrix wrote: >>>>>> >>>>>>> On 04/07/2013 09:52 PM, Thierry Bultel wrote: >>>>>>> >>>>>>>> Le 07/04/2013 17:06, Gilles Chanteperdrix a =C3=A9crit : >>>>>>>>> On 04/07/2013 11:31 AM, Thierry Bultel wrote: >>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> I am using a vanilla 3.5.7 kernel in qemu-1.4.0 >>>>>>>>>> The base defconfig is the vexpress. >>>>>>>>>> >>>>>>>>>> I want to use xenomai-2.6.2.1 with it. >>>>>>>>>> >>>>>>>>>> The non-patched kernel boots fine, the patched one doesnot, th= ere is >>>>>>>>>> nothing on the console, >>>>>>>>>> the boot logo does not comeand Qemu then takes 100% CPU. >>>>>>>>>> >>>>>>>>>> Here is my command line >>>>>>>>>> ./qemu-1.4.0/arm-softmmu/qemu-system-arm -M vexpress-a9 -kerne= l >>>>>>>>>> ./Buildroot/output.linaro.vexpress-a9/build/linux-3.5.7/arch/a= rm/boot/uImage >>>>>>>>>> -append "console=3DttyAMA0" -m 1024M -serial stdio >>>>>>>>>> >>>>>>>>>> Any ideas ? May I have missed something ? >>>>>>>>> >>>>>>>>> >>>>>>>>> Well, vexpress is not in the list of machines supported by Xeno= mai. So, >>>>>>>>> someone needs to port the I-pipe kernel to it. >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> Hi Gilles, >>>>>>>> >>>>>>>> We already talked about the vexpress, it was at the beginning of= the >>>>>>>> rtcan discussion. >>>>>>>> It used to work (and pretty well), my configuration was: >>>>>>>> >>>>>>>> linux-3.2.21+ipipe-core-3.2.21-arm-1.patch >>>>>>>> >>>>>>>> and I have just successfully tested >>>>>>>> >>>>>>>> linux-3.2.21+ipipe-core-3.2.21-arm-4.patch >>>>>>>> as well. >>>>>>>> >>>>>>>> There is likely not much missing for having it working on the 3.= 5.7 >>>>>>>> kernel. I am taking a look. >>>>>>> >>>>>>> >>>>>>> Someone did the port of the I-pipe patch to vexpress (but did not= >>>>>>> contribute it), the difference between vexpress and other cortex = A9 >>>>>>> based SOCs is that it does not support global timers, the one use= d by >>>>>>> the I-pipe patch as clocksource. The difference between 3.2 and l= ater >>>>>>> patches is probably that later patches unconditionally use the gl= obal >>>>>>> timer. The fix around this is to add code do detect the cortex a9= >>>>>>> revision and do not register the global timers when the revision = is too old. >>>>>>> >>>>>> >>>>>> >>>>>> Found the mail: "I just got a reply from ARM support and obviously= I >>>>>> missed the thing that my release of Cortex-A9 does NOT have a glob= al >>>>>> timer (they added it from r1p0, mine is r0p1)." >>>>>> >>>>>> You know what version your processor is by reading the first few l= ines >>>>>> printed by the kernel: >>>>>> CPU: ARMv7 Processor [411fc092] revision 2 (ARMv7), cr=3D10c53c7d >>>>>> >>>>>> 41 is used by all cores from ARM >>>>>> fc09 represents the cortex a9 >>>>>> >>>>>> The remaining 1 and 2 mean that this cortex a9 is an r1p2 >>>>>> >>>>> >>>>> >>>>> Many thanks, >>>>> I confirm that this fix makes vexpress boot in qemu: >>>> >>>> >>>> Merged thanks. I believe you should keep the calculation of >>>> twd_timer_rate, otherwise the twd timers will not be calibratd >>>> correctly. The following: >>>> >>>> http://git.xenomai.org/?p=3Dipipe-gch.git;a=3Dcommitdiff;h=3D9a776ad= 3c41fa1aef1b60d0cce5de3ca9dece42d;hp=3D82b6948fed3581e65bcce64b91b1614068= 6263a7 >>>> >>>> Works for me. >>>> >>>> >>> >>> It works on what platform ? It does not in qemu. The boot hangs the s= ame=20 >>> way. >> >> >> It works on omap4, a platform with global timers... So, what you are >> saying is that it is in fact the twd calibration which hangs? >> >=20 > Probably related, I first did not notice it, > the twd_get_clock() call fails in my case (See below; smp_twd: clock > not found: -2): >=20 > Is it safe to call twd_calibrate_rate in this case ? See: http://www.xenomai.org/index.php/I-pipe-core:ArmPorting#The_Cortex-A9_cas= e The issues are probably unrelated. From my point of view, if you want vexpress to really work with I-pipe, someone has to consider the work to be done as a real port of the I-pipe kernel to this architecture. You can use this page as a check list. --=20 Gilles.