From mboxrd@z Thu Jan 1 00:00:00 1970 From: bharat gohil Subject: Re: ARM64:Porting xen to new hardware Date: Mon, 4 Sep 2017 09:43:07 +0530 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7762983049267637146==" Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Oleksandr Tyshchenko Cc: Julien Grall , Stefano Stabellini , Xen Devel List-Id: xen-devel@lists.xenproject.org --===============7762983049267637146== Content-Type: multipart/alternative; boundary="001a11411f8800f18c055855544c" --001a11411f8800f18c055855544c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello Oleksandr, I have corrected GIC settings but no success.Following line disappear from log. *>>XEN) GICv2: WARNING: The GICC size is too small: 0x1000 expected 0x2000 * Is anything else which can I try. I don=E2=80=99t know much about xen internal for ARM architecture. As you m= entioned, >>Wrong GIC settings might lead to that IPIs won't work as expected. And >>boot CPU will get stuck waiting for another CPU. Can you explain it with some boot sequence and relation with IPI? Thanks, Bharat On Thu, Aug 31, 2017 at 5:28 PM, Oleksandr Tyshchenko wrote: > On Thu, Aug 31, 2017 at 2:13 PM, bharat gohil wrote: > > Hello Oleksandr, > Hi Bharat > > > > > I had removed A72 cluster and tried to boot only two A35 but I got same > > error. > > > > Is anything added or missing in A35 compare to A53? > Unfortunately, I don't know. > > BTW, did you check your GIC settings in the device-tree? > > > > > Regards, > > Bharat > > > > On Wed, Aug 30, 2017 at 8:00 PM, bharat gohil > wrote: > >> > >> Hello Oleksandr, > >> Thank you very much for your input. > >> > >> Yes. agree. I will check by removing A72 core from DT. > >> > >> Thanks, > >> Bharat > >> > >> On Wed, Aug 30, 2017 at 7:44 PM, Oleksandr Tyshchenko > >> wrote: > >>> > >>> Hi, > >>> > >>> Not sure that I am a competent person, just my assumptions. > >>> > >>> CCed ARM guys. > >>> > >>> On Tue, Aug 29, 2017 at 5:21 PM, bharat gohil > wrote: > >>> > Hello All > >>> > > >>> > I am trying to run Xen on new hardware which has two A35 and one A7= 2 > >>> > core. > >>> > Xen booted intially but it hangs at > >>> > smp_call_function(setup_virt_paging_one, > >>> > (void *)val, 1) function call. > >>> > >>> It might be a consequence of that CPU cores are different. And they > >>> might have different set of features, or even settings. > >>> And these features/settings the boot CPU has don't compatible with > >>> other (non-boot) CPUs. > >>> Can you try not to bringup A72 core (remove it from DT or another > >>> way), leave only two A35 and see what will happen. > >>> > >>> > Find following log of Xen booting,same set of features. > >>> > > >>> > - UART enabled - > >>> > - CPU 00000000 booting - > >>> > - Current EL 00000008 - > >>> > - Xen starting at EL2 - > >>> > - Zero BSS - > >>> > - Setting up control registers - > >>> > - Turning on paging - > >>> > - Ready - > >>> > (XEN) Checking for initrd in /chosen > >>> > (XEN) RAM: 0000000040000000 - 00000000bfffffff > >>> > (XEN) > >>> > (XEN) MODULE[0]: 0000000044000000 - 000000004400fd5a Device Tree > >>> > (XEN) > >>> > (XEN) Command line: > >>> Why? Does your device-tree have bootargs? > >>> > >>> > (XEN) Placing Xen at 0x00000000bfe00000-0x00000000c0000000 > >>> > (XEN) Update BOOTMOD_XEN from 0000000040080000-0000000040194e01 =3D= > > >>> > 00000000bfe01 > >>> > (XEN) Domain heap initialised > >>> > (XEN) Booting using Device Tree > >>> > (XEN) Platform: Generic System > >>> > (XEN) Taking dtuart configuration from /chosen/stdout-path > >>> > (XEN) Looking for dtuart at "serial0", options "" > >>> > __ __ _ _ _ ___ _ _ > _ > >>> > \ \/ /___ _ __ | || | / |/ _ \ _ _ _ __ ___| |_ __ _| |__ > | | > >>> > ___ > >>> > \ // _ \ '_ \ | || |_ | | | | |__| | | | '_ \/ __| __/ _` | '_ = \| > >>> > |/ _ \ > >>> > / \ __/ | | | |__ _|| | |_| |__| |_| | | | \__ \ || (_| | |_) > | | > >>> > __/ > >>> > /_/\_\___|_| |_| |_|(_)_|\___/ \__,_|_| > >>> > |_|___/\__\__,_|_.__/|_|\___| > >>> > > >>> > (XEN) Xen version 4.10-unstable (bgohil@) (aarch64-linux-gnu-gcc > >>> > (Ubuntu/Linaro7 > >>> > (XEN) Latest ChangeSet: Fri Aug 11 19:02:51 2017 +0100 > >>> > git:9053a74-dirty > >>> > (XEN) Processor: 410fd041: "ARM Limited", variant: 0x0, part 0xd04, > rev > >>> > 0x1 > >>> > (XEN) 64-bit Execution: > >>> > (XEN) Processor Features: 0000000000002222 0000000000000000 > >>> > (XEN) Exception Levels: EL3:64+32 EL2:64+32 EL1:64+32 EL0:64+32 > >>> > (XEN) Extensions: FloatingPoint AdvancedSIMD > >>> > (XEN) Debug Features: 0000000010305106 0000000000000000 > >>> > (XEN) Auxiliary Features: 0000000000000000 0000000000000000 > >>> > (XEN) Memory Model Features: 0000000000101122 0000000000000000 > >>> > (XEN) ISA Features: 0000000000011120 0000000000000000 > >>> > (XEN) 32-bit Execution: > >>> > (XEN) Processor Features: 00000131:00011011 > >>> > (XEN) Instruction Sets: AArch32 A32 Thumb Thumb-2 Jazelle > >>> > (XEN) Extensions: GenericTimer Security > >>> > (XEN) Debug Features: 03010066 > >>> > (XEN) Auxiliary Features: 00000000 > >>> > (XEN) Memory Model Features: 10201105 40000000 01260000 02102211 > >>> > (XEN) ISA Features: 02101110 13112111 21232042 01112131 00011142 > >>> > 00011121 > >>> > (XEN) Using PSCI-1.0 for SMP bringup > >>> > (XEN) SMP: Allowing 3 CPUs > >>> > (XEN) Generic Timer IRQ: phys=3D30 hyp=3D26 virt=3D27 Freq: 13000 K= Hz > >>> > (XEN) GICv2: WARNING: The GICC size is too small: 0x1000 expected > >>> > 0x2000 > >>> Sounds like GIC settings are not completely correct. > >>> Wrong GIC settings might lead to that IPIs won't work as expected. An= d > >>> boot CPU will > >>> get stuck waiting for another CPU. > >>> Just double check. > >>> > >>> > (XEN) GICv2 initialization: > >>> > (XEN) gic_dist_addr=3D0000000010510000 > >>> > (XEN) gic_cpu_addr=3D0000000010520000 > >>> > (XEN) gic_hyp_addr=3D0000000010540000 > >>> > (XEN) gic_vcpu_addr=3D0000000010560000 > >>> > (XEN) gic_maintenance_irq=3D25 > >>> > (XEN) GICv2: 384 lines, 6 cpus, secure (IID 0200143b). > >>> > (XEN) Using scheduler: SMP Credit Scheduler (credit) > >>> > (XEN) Allocated console ring of 32 KiB. > >>> > (XEN) Bringing up CPU1 > >>> > - CPU 00000001 booting - > >>> > - Current EL 00000008 - > >>> > - Xen starting at EL2 - > >>> > - Setting up control registers - > >>> > - Turning on paging - > >>> > - Ready - > >>> > (XEN) CPU 1 booted. > >>> > (XEN) Bringing up CPU2 > >>> > - CPU 00000200 booting - > >>> > - Current EL 00000008 - > >>> > - Xen starting at EL2 - > >>> > - Setting up control registers - > >>> > - Turning on paging - > >>> > - Ready - > >>> > (XEN) CPU 2 booted. > >>> > (XEN) Brought up 3 CPUs > >>> > (XEN) P2M: 40-bit IPA with 40-bit PA and 8-bit VMID > >>> > (XEN) P2M: 3 levels with order-1 root, VTCR 0x80023558 > >>> > > >>> > Can anyone guide me how to debug this problem or what could be wron= g > >>> > here? > >>> > > >>> > It looks, writing into VTCR_EL2 hang the system. > >>> > > >>> > -- > >>> > Regards, > >>> > Bharat Gohil > >>> > > >>> > > >>> > _______________________________________________ > >>> > Xen-devel mailing list > >>> > Xen-devel@lists.xen.org > >>> > https://lists.xen.org/xen-devel > >>> > > >>> > >>> -- > >>> Regards, > >>> > >>> Oleksandr Tyshchenko > >> > >> > >> > >> > >> -- > >> Regards, > >> Bharat Gohil > >> Sr.Software Engineer > >> bharat.gohil@harman.com > >> +919427054633 > > > > > > > > > > -- > > Regards, > > Bharat Gohil > > Sr.Software Engineer > > bharat.gohil@harman.com > > +919427054633 > > > > -- > Regards, > > Oleksandr Tyshchenko > --=20 Regards, Bharat Gohil Sr.Software Engineer bharat.gohil@harman.com +919427054633 --001a11411f8800f18c055855544c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello Oleksandr,

I have correc= ted=C2=A0 GIC settings but no success.Following line disappear from log.>>XEN) GICv2: WARNING: The GICC size is too small: 0x1000 expecte= d 0x2000=C2=A0=C2=A0

Is anything else which can I tr= y.

I don=E2=80=99t know much about xen internal for ARM a= rchitecture. As you mentioned,
>>Wrong GIC settings might lead to = that IPIs won't work as expected. And
>>boot CPU will get stuck waiting for another CPU.

= Can you explain it with some boot sequence and relation with IPI?
=

Thanks,
Bharat

On Thu, Aug 31, 2017 at 5:28 PM, Oleksandr Tyshche= nko <olekstysh@gmail.com> wrote:
On Thu, Aug 31, 2017 at 2:13 PM, bharat gohil <= ;ghl.bhrt@gmail.com> wrote: > Hello Oleksandr,
Hi Bharat

>
> I had removed A72 cluster and tried to boot only two A35 but I got sam= e
> error.
>
> Is anything added or missing in A35 compare to A53?
Unfortunately, I don't know.

BTW, did you check your GIC settings in the device-tree?

>
> Regards,
> Bharat
>
> On Wed, Aug 30, 2017 at 8:00 PM, bharat gohil <ghl.bhrt@gmail.com> wrote:
>>
>> Hello Oleksandr,
>> Thank you very much for your input.
>>
>> Yes. agree. I will check by removing A72 core from DT.
>>
>> Thanks,
>> Bharat
>>
>> On Wed, Aug 30, 2017 at 7:44 PM, Oleksandr Tyshchenko
>> <olekstysh@gmail.com= > wrote:
>>>
>>> Hi,
>>>
>>> Not sure that I am a competent person, just my assumptions. >>>
>>> CCed ARM guys.
>>>
>>> On Tue, Aug 29, 2017 at 5:21 PM, bharat gohil <ghl.bhrt@gmail.com> wrote:
>>> > Hello All
>>> >
>>> > I am trying to run Xen on new hardware which has two A35 = and one A72
>>> > core.
>>> > Xen booted intially but it hangs at
>>> > smp_call_function(setup_virt_paging_one,
>>> > (void *)val, 1) function call.
>>>
>>> It might be a consequence of that CPU cores are different. And= they
>>> might have different set of features, or even settings.
>>> And these features/settings the boot CPU has don't compati= ble with
>>> other (non-boot) CPUs.
>>> Can you try not to bringup A72 core (remove it from DT or anot= her
>>> way), leave only two A35 and see what will happen.
>>>
>>> > Find following log of Xen booting,same set of features. >>> >
>>> > - UART enabled -
>>> > - CPU 00000000 booting -
>>> > - Current EL 00000008 -
>>> > - Xen starting at EL2 -
>>> > - Zero BSS -
>>> > - Setting up control registers -
>>> > - Turning on paging -
>>> > - Ready -
>>> > (XEN) Checking for initrd in /chosen
>>> > (XEN) RAM: 0000000040000000 - 00000000bfffffff
>>> > (XEN)
>>> > (XEN) MODULE[0]: 0000000044000000 - 000000004400fd5a Devi= ce Tree
>>> > (XEN)
>>> > (XEN) Command line: <NULL>
>>> Why? Does your device-tree have bootargs?
>>>
>>> > (XEN) Placing Xen at 0x00000000bfe00000-0x00000000c0= 000000
>>> > (XEN) Update BOOTMOD_XEN from 0000000040080000-00000= 00040194e01 =3D>
>>> > 00000000bfe01
>>> > (XEN) Domain heap initialised
>>> > (XEN) Booting using Device Tree
>>> > (XEN) Platform: Generic System
>>> > (XEN) Taking dtuart configuration from /chosen/stdout-pat= h
>>> > (XEN) Looking for dtuart at "serial0", options = ""
>>> >=C2=A0 __=C2=A0 __=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 _=C2=A0 _=C2=A0 =C2=A0 _=C2=A0 ___=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0_=C2=A0 =C2=A0 =C2=A0 =C2=A0 _=C2= =A0 =C2=A0 =C2=A0_
>>> >=C2=A0 \ \/ /___ _ __=C2=A0 =C2=A0| || |=C2=A0 / |/ _ \=C2= =A0 =C2=A0 _=C2=A0 =C2=A0_ _ __=C2=A0 ___| |_ __ _| |__ | |
>>> > ___
>>> >=C2=A0 =C2=A0\=C2=A0 // _ \ '_ \=C2=A0 | || |_ | | | |= |__| | | | '_ \/ __| __/ _` | '_ \|
>>> > |/ _ \
>>> >=C2=A0 =C2=A0/=C2=A0 \=C2=A0 __/ | | | |__=C2=A0 =C2=A0_||= | |_| |__| |_| | | | \__ \ || (_| | |_) | |
>>> > __/
>>> >=C2=A0 /_/\_\___|_| |_|=C2=A0 =C2=A0 |_|(_)_|\___/=C2=A0 = =C2=A0 \__,_|_|
>>> > |_|___/\__\__,_|_.__/|_|\___|
>>> >
>>> > (XEN) Xen version 4.10-unstable (bgohil@) (aarch64-linux-= gnu-gcc
>>> > (Ubuntu/Linaro7
>>> > (XEN) Latest ChangeSet: Fri Aug 11 19:02:51 2017 +0100 >>> > git:9053a74-dirty
>>> > (XEN) Processor: 410fd041: "ARM Limited", varia= nt: 0x0, part 0xd04, rev
>>> > 0x1
>>> > (XEN) 64-bit Execution:
>>> > (XEN)=C2=A0 =C2=A0Processor Features: 0000000000002222 00= 00000000000000
>>> > (XEN)=C2=A0 =C2=A0 =C2=A0Exception Levels: EL3:64+32 EL2:= 64+32 EL1:64+32 EL0:64+32
>>> > (XEN)=C2=A0 =C2=A0 =C2=A0Extensions: FloatingPoint Advanc= edSIMD
>>> > (XEN)=C2=A0 =C2=A0Debug Features: 0000000010305106 000000= 0000000000
>>> > (XEN)=C2=A0 =C2=A0Auxiliary Features: 0000000000000000 00= 00000000000000
>>> > (XEN)=C2=A0 =C2=A0Memory Model Features: 0000000000101122= 0000000000000000
>>> > (XEN)=C2=A0 =C2=A0ISA Features:=C2=A0 0000000000011120 00= 00000000000000
>>> > (XEN) 32-bit Execution:
>>> > (XEN)=C2=A0 =C2=A0Processor Features: 00000131:00011011 >>> > (XEN)=C2=A0 =C2=A0 =C2=A0Instruction Sets: AArch32 A32 Th= umb Thumb-2 Jazelle
>>> > (XEN)=C2=A0 =C2=A0 =C2=A0Extensions: GenericTimer Securit= y
>>> > (XEN)=C2=A0 =C2=A0Debug Features: 03010066
>>> > (XEN)=C2=A0 =C2=A0Auxiliary Features: 00000000
>>> > (XEN)=C2=A0 =C2=A0Memory Model Features: 10201105 4000000= 0 01260000 02102211
>>> > (XEN)=C2=A0 ISA Features: 02101110 13112111 21232042 0111= 2131 00011142
>>> > 00011121
>>> > (XEN) Using PSCI-1.0 for SMP bringup
>>> > (XEN) SMP: Allowing 3 CPUs
>>> > (XEN) Generic Timer IRQ: phys=3D30 hyp=3D26 virt=3D27 Fre= q: 13000 KHz
>>> > (XEN) GICv2: WARNING: The GICC size is too small: 0x1000 = expected
>>> > 0x2000
>>> Sounds like GIC settings are not completely correct.
>>> Wrong GIC settings might lead to that IPIs won't work as e= xpected. And
>>> boot CPU will
>>> get stuck waiting for another CPU.
>>> Just double check.
>>>
>>> > (XEN) GICv2 initialization:
>>> > (XEN)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0gic_dist_addr=3D00= 00000010510000
>>> > (XEN)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0gic_cpu_addr=3D000= 0000010520000
>>> > (XEN)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0gic_hyp_addr=3D000= 0000010540000
>>> > (XEN)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0gic_vcpu_addr=3D00= 00000010560000
>>> > (XEN)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0gic_maintenance_ir= q=3D25
>>> > (XEN) GICv2: 384 lines, 6 cpus, secure (IID 0200143b). >>> > (XEN) Using scheduler: SMP Credit Scheduler (credit)
>>> > (XEN) Allocated console ring of 32 KiB.
>>> > (XEN) Bringing up CPU1
>>> > - CPU 00000001 booting -
>>> > - Current EL 00000008 -
>>> > - Xen starting at EL2 -
>>> > - Setting up control registers -
>>> > - Turning on paging -
>>> > - Ready -
>>> > (XEN) CPU 1 booted.
>>> > (XEN) Bringing up CPU2
>>> > - CPU 00000200 booting -
>>> > - Current EL 00000008 -
>>> > - Xen starting at EL2 -
>>> > - Setting up control registers -
>>> > - Turning on paging -
>>> > - Ready -
>>> > (XEN) CPU 2 booted.
>>> > (XEN) Brought up 3 CPUs
>>> > (XEN) P2M: 40-bit IPA with 40-bit PA and 8-bit VMID
>>> > (XEN) P2M: 3 levels with order-1 root, VTCR 0x80023558 >>> >
>>> > Can anyone guide me how to debug this problem or what cou= ld be wrong
>>> > here?
>>> >
>>> > It looks, writing into VTCR_EL2 hang the system.
>>> >
>>> > --
>>> > Regards,
>>> > Bharat Gohil
>>> >
>>> >
>>> > _______________________________________________
>>> > Xen-devel mailing list
>>> > Xen-devel@list= s.xen.org
>>> > https://lists.xen.org/xen-devel
>>> >
>>>
>>> --
>>> Regards,
>>>
>>> Oleksandr Tyshchenko
>>
>>
>>
>>
>> --
>> Regards,
>> Bharat Gohil
>> Sr.Software Engineer
>> bharat.gohil@harman.com=
>> +919427054= 633
>
>
>
>
> --
> Regards,
> Bharat Gohil
> Sr.Software Engineer
> bharat.gohil@harman.com=
> +919427054633<= /a>



--
Regards,

Oleksandr Tyshchenko



--
--001a11411f8800f18c055855544c-- --===============7762983049267637146== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg== --===============7762983049267637146==--