[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] ARM64:Porting xen to new hardware



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@xxxxxxxxx> 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@xxxxxxxxx> 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 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: <NULL>
Why? Does your device-tree have bootargs?

> (XEN) Placing Xen at 0x00000000bfe00000-0x00000000c0000000
> (XEN) Update BOOTMOD_XEN from 0000000040080000-0000000040194e01 =>
> 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=30 hyp=26 virt=27 Freq: 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 expected. And
boot CPU will
get stuck waiting for another CPU.
Just double check.

> (XEN) GICv2 initialization:
> (XEN)         gic_dist_addr=0000000010510000
> (XEN)         gic_cpu_addr=0000000010520000
> (XEN)         gic_hyp_addr=0000000010540000
> (XEN)         gic_vcpu_addr=0000000010560000
> (XEN)         gic_maintenance_irq=25
> (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 wrong here?
>
> It looks, writing into VTCR_EL2 hang the system.
>
> --
> Regards,
> Bharat Gohil
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> https://lists.xen.org/xen-devel
>

--
Regards,

Oleksandr Tyshchenko



--
Regards,
Bharat Gohil
Sr.Software Engineer
+919427054633
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.