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

Re: [Xen-devel] ARMv8: New board bring up hangs in kernel start?



On Wed, 23 Mar 2016, Konrad Rzeszutek Wilk wrote:
> On Wed, Mar 23, 2016 at 06:24:40PM +0100, Dirk Behme wrote:
> > Hi,
> 
> Hey,
> 
> CC-ing the ARM MAINTAINERs.
> 
> > 
> > trying to bring up Xen on a new ARMv8 64-bit Cortex A57 eval board, I get
> > [1] and then its hanging there.
> > 
> > I'd guess that it hangs due to missing timer interrupt, maybe missing
> > interrupts at all?
> > 
> > Any hints how to debug this? Or where to look?
> > 
> > It might be possible that the board's firmware (arm-trusted-firmware based)
> > doesn't configure anything correctly. Firmware is running at EL3, Xen at
> > EL2. The same kernel is running fine without Xen.
> > 
> > Using a JTAG debugger I've put breakpoints into xen/arch/arm/time.c
> > timer_interrupt() & vtimer_interrupt() but these don't seem to be called at
> > all (?)

I would add a few printks in arch/arm/xen/enlighten.c:xen_guest_init,
arch/arm/xen/enlighten.c:xen_percpu_init and maybe
arch/arm64/kernel/psci.c in Linux.

Try to see exactly where is getting stuck.


> > Best regards
> > 
> > Dirk
> > 
> > [1]
> > 
> > - 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: 0000000048000000 - 000000007fffffff
> > (XEN)
> > (XEN) MODULE[0]: 0000000048000000 - 00000000480058a2 Device Tree
> > (XEN) MODULE[1]: 0000000048200000 - 0000000048c00000 Kernel
> > (XEN)
> > (XEN) Command line: console=dtuart dom0_mem=512M loglvl=all
> > (XEN) Placing Xen at 0x000000007fe00000-0x0000000080000000
> > (XEN) Update BOOTMOD_XEN from 0000000049000000-0000000049112e01 =>
> > 000000007fe00000-000000007ff12e01
> > (XEN) Domain heap initialised
> > (XEN) Platform: ARMv8 Cortex A57 64-bit eval board
> > (XEN) Taking dtuart configuration from /chosen/stdout-path
> > (XEN) Looking for dtuart at "/soc/serial@e6e88000", options ""
> >  Xen 4.7-unstable
> > (XEN) Xen version 4.7-unstable (dirk@build) (aarch64-poky-linux-gcc (Linaro
> > GCC 4.9-2015.03) 4.9.3 20150311 (prerelease)) debug=y Mon Mar 21 09:15:03
> > CET 2016
> > (XEN) Latest ChangeSet: Tue Feb 9 09:37:15 2016 +0100 git:b0a2893
> > (XEN) Processor: 411fd073: "ARM Limited", variant: 0x1, part 0xd07, rev 0x3
> > (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: 0000000000001124 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) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 16660 KHz
> > (XEN) GICv2 initialization:
> > (XEN)         gic_dist_addr=00000000f1010000
> > (XEN)         gic_cpu_addr=00000000f1020000
> > (XEN)         gic_hyp_addr=00000000f1040000
> > (XEN)         gic_vcpu_addr=00000000f1060000
> > (XEN)         gic_maintenance_irq=25
> > (XEN) GICv2: 512 lines, 8 cpus, secure (IID 0200043b).
> > (XEN) Using scheduler: SMP Credit Scheduler (credit)
> > (XEN) Allocated console ring of 16 KiB.
> > (XEN) Brought up 1 CPUs
> > (XEN) P2M: 44-bit IPA with 44-bit PA
> > (XEN) P2M: 4 levels with order-0 root, VTCR 0x80043594
> > (XEN) I/O virtualisation disabled
> > (XEN) *** LOADING DOMAIN 0 ***
> > (XEN) Loading kernel from boot module @ 0000000048200000
> > (XEN) Allocating 1:1 mappings totalling 512MB for dom0:
> > (XEN) BANK[0] 0x00000050000000-0x00000070000000 (512MB)
> > (XEN) Grant table range: 0x0000007fe00000-0x0000007fe5c000
> > (XEN) Loading zImage from 0000000048200000 to
> > 0000000050080000-0000000050a80000
> > (XEN) Allocating PPI 16 for event channel interrupt
> > (XEN) Loading dom0 DTB to 0x0000000058000000-0x000000005800568a
> > (XEN) Scrubbing Free RAM on 1 nodes using 1 CPUs
> > (XEN) .......done.
> > (XEN) Initial low memory virq threshold set at 0x4000 pages.
> > (XEN) Std. Loglevel: All
> > (XEN) Guest Loglevel: All
> > (XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to
> > Xen)
> > (XEN) Freed 288kB init memory.
> > Booting Linux on physical CPU 0x0
> > Linux version 4.4.0+ (dirk@build) (gcc version 4.9.3 20150311 (prerelease)
> > (Linaro GCC 4.9-2015.03) ) #1 SMP PREEMPT Mon Mar 21 09:12:13 CET 2016
> > Boot CPU: AArch64 Processor [411fd073]
> > debug: ignoring loglevel setting.
> > efi: Getting EFI parameters from FDT:
> > efi: UEFI not found.
> > cma: Reserved 16 MiB at 0x000000006f000000
> > On node 0 totalpages: 131072
> >   DMA zone: 2048 pages used for memmap
> >   DMA zone: 0 pages reserved
> >   DMA zone: 131072 pages, LIFO batch:31
> > psci: probing for conduit method from DT.
> > psci: PSCIv0.2 detected in firmware.
> > psci: Using standard PSCI v0.2 function IDs
> > psci: Trusted OS migration not required
> > Xen 4.7 support found
> > PERCPU: Embedded 20 pages/cpu @ffffffc01efc9000 s42112 r8192 d31616 u81920
> > pcpu-alloc: s42112 r8192 d31616 u81920 alloc=20*4096
> > pcpu-alloc: [0] 0
> > Detected PIPT I-cache on CPU0
> > Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129024
> > Kernel command line: console=hvc0 ignore_loglevel
> > PID hash table entries: 2048 (order: 2, 16384 bytes)
> > Dentry cache hash table entries: 65536 (order: 7, 524288 bytes)
> > Inode-cache hash table entries: 32768 (order: 6, 262144 bytes)
> > software IO TLB [mem 0x69c00000-0x6dc00000] (64MB) mapped at
> > [ffffffc019c00000-ffffffc01dbfffff]
> > Memory: 414204K/524288K available (6000K kernel code, 582K rwdata, 2780K
> > rodata, 704K init, 228K bss, 93700K reserved, 16384K cma-reserved)
> > Virtual kernel memory layout:
> >     vmalloc : 0xffffff8000000000 - 0xffffffbdbfff0000   (   246 GB)
> >     vmemmap : 0xffffffbdc0000000 - 0xffffffbfc0000000   (     8 GB maximum)
> >               0xffffffbdc1400000 - 0xffffffbdc1c00000   (     8 MB actual)
> >     fixed   : 0xffffffbffa7fd000 - 0xffffffbffac00000   (  4108 KB)
> >     PCI I/O : 0xffffffbffae00000 - 0xffffffbffbe00000   (    16 MB)
> >     modules : 0xffffffbffc000000 - 0xffffffc000000000   (    64 MB)
> >     memory  : 0xffffffc000000000 - 0xffffffc020000000   (   512 MB)
> >       .init : 0xffffffc000916000 - 0xffffffc0009c6000   (   704 KB)
> >       .text : 0xffffffc000080000 - 0xffffffc0009151f4   (  8789 KB)
> >       .data : 0xffffffc0009c6000 - 0xffffffc000a57800   (   582 KB)
> > SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
> > Preemptible hierarchical RCU implementation.
> >  Build-time adjustment of leaf fanout to 64.
> >  RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=1.
> > RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=1
> > NR_IRQS:64 nr_irqs:64 0
> > Architected cp15 timer(s) running at 16.66MHz (virt).
> > clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles:
> > 0x3d7a162dd, max_idle_ns: 440795202225 ns
> > sched_clock: 56 bits at 16MHz, resolution 60ns, wraps every 2199023255551ns
> > Console: colour dummy device 80x25
> > console [hvc0] enabled
> > Calibrating delay loop (skipped), value calculated using timer frequency..
> > 33.32 BogoMIPS (lpj=66640)
> > pid_max: default: 32768 minimum: 301
> > Security Framework initialized
> > Mount-cache hash table entries: 1024 (order: 1, 8192 bytes)
> > Mountpoint-cache hash table entries: 1024 (order: 1, 8192 bytes)
> > ASID allocator initialised with 65536 entries
> > xen:grant_table: Grant tables using version 1 layout
> > Grant table initialized
> > xen:events: Using FIFO-based ABI
> > Xen: initializing cpu0
> > <hang>
> > 
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@xxxxxxxxxxxxx
> > http://lists.xen.org/xen-devel
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

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