From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <5165650D.309@wanadoo.fr> Date: Wed, 10 Apr 2013 15:11:41 +0200 From: Thierry Bultel 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> In-Reply-To: <5163C4E7.8080007@xenomai.org> 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: Gilles Chanteperdrix Cc: "Xenomai@xenomai.org" Le 09/04/2013 09:36, Gilles Chanteperdrix a =C3=A9crit : > On 04/09/2013 08:27 AM, Thierry Bultel wrote: >=20 >> 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, the= re 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 -kernel >>>>>>>>> ./Buildroot/output.linaro.vexpress-a9/build/linux-3.5.7/arch/ar= m/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 Xenom= ai. 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 A= 9 >>>>>> based SOCs is that it does not support global timers, the one used= by >>>>>> the I-pipe patch as clocksource. The difference between 3.2 and la= ter >>>>>> patches is probably that later patches unconditionally use the glo= bal >>>>>> 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 i= s 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 globa= l >>>>> timer (they added it from r1p0, mine is r0p1)." >>>>> >>>>> You know what version your processor is by reading the first few li= nes >>>>> 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=3D9a776ad3= c41fa1aef1b60d0cce5de3ca9dece42d;hp=3D82b6948fed3581e65bcce64b91b16140686= 263a7 >>> >>> Works for me. >>> >>> >> >> It works on what platform ? It does not in qemu. The boot hangs the sa= me=20 >> way. >=20 >=20 > 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): Is it safe to call twd_calibrate_rate in this case ? tbultel@laois:~/Qemu/qemu-1.4.0$ ./arm-softmmu/qemu-system-arm -M vexpress-a9 -kernel /shared/Buildroot/output.linaro.vexpress-a9/images/uImage -m 1024M -serial stdio -append "console=3DttyAMA0" Booting Linux on physical CPU 0 Initializing cgroup subsys cpuset Linux version 3.5.7-ipipe (tbultel@laois) (gcc version 4.7.3 20121001 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2012.10-20121022 - Linaro GCC 2012.10) ) #6 SMP Wed Apr 10 15:00:16 CEST 2013 CPU: ARMv7 Processor [410fc090] revision 0 (ARMv7), cr=3D10c53c7d CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache Machine: ARM-Versatile Express Memory policy: ECC disabled, Data cache writealloc sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms PERCPU: Embedded 9 pages/cpu @84626000 s14848 r8192 d13824 u36864 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 2600= 96 Kernel command line: console=3DttyAMA0 PID hash table entries: 4096 (order: 2, 16384 bytes) Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) Memory: 1024MB =3D 1024MB total Memory: 975912k/975912k available, 72664k reserved, 0K highmem Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) vmalloc : 0xc0800000 - 0xff000000 (1000 MB) lowmem : 0x80000000 - 0xc0000000 (1024 MB) modules : 0x7f000000 - 0x80000000 ( 16 MB) .text : 0x80008000 - 0x805a0570 (5730 kB) .init : 0x805a1000 - 0x83d7da00 (57203 kB) .data : 0x83d7e000 - 0x83db98f8 ( 239 kB) .bss : 0x83db991c - 0x83e1f9ac ( 409 kB) SLUB: Genslabs=3D11, HWalign=3D64, Order=3D0-3, MinObjects=3D0, CPUs=3D1,= Nodes=3D1 Hierarchical RCU implementation. NR_IRQS:256 smp_twd: clock not found: -2 I-pipe, 1.000 MHz clocksource