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

Re: [Xen-devel] Xen on ARMv8



On Tue, 2013-12-10 at 18:18 +0530, Vijay Kilari wrote:
> On Tue, Dec 10, 2013 at 5:59 PM, Vijay Kilari <vijay.kilari@xxxxxxxxx> wrote:
> > On Mon, Dec 9, 2013 at 7:34 PM, Ian Campbell <Ian.Campbell@xxxxxxxxxx> 
> > wrote:
> >> On Mon, 2013-12-09 at 19:22 +0530, Vijay Kilari wrote:
> >>> On Fri, Dec 6, 2013 at 8:55 PM, Ian Campbell <Ian.Campbell@xxxxxxxxxx> 
> >>> wrote:
> >>> I don't have any work around as of now. I just reverted changes made
> >>> to pl011 driver in staging branch on top of stable 4.3. I see couple of
> >>> patches that has changed pl011 registers initialization.
> >>>
> >>> I will check once I get the my setup is up & running.
> >>
> >> OK, thanks.
> >>
> >>>
> >>> >> (XEN) Using PSCI for SMP bringup
> >>> [..]
> >>> >> (XEN) Panic on CPU 0:
> >>> >> (XEN) Unable to copy the DTB to dom0 memory (rc = 18446744073709551602)
> >>> >> (XEN) ****************************************
> >>> >
> >>> > It looks like you are trying to load an ELF format kernel, which
> >>> > probably doesn't work for Linux. Try passing it the
> >>> > arch/arm64/boot/Image and it should work.
> >>> >
> >>> > (ELF is useful for *BSD I think, which is why we don't just nuke this
> >>> > support right now)
> >>> >
> >>> Yes, I have set my Image to vmlinux (stripped) for 4.3 stable as it  was 
> >>> failing
> >>> to load plain arch/arm64/boot/Image
> >>> I forget to revert back this change with staging branch. Now I could
> >>> boot Xen hypervisor.
> >>
> >> Excellent!
> >>
> >>> Thanks for this help.
> >>>
> >>> But my console on dom0 is not showing any logs.
> >>> However ARMv8 simulator shows that dom0 is booted and
> >>> cpu has entered idle loop.
> >>
> >> Do you have console=hvc0 on your dom0 command line and CONFIG_HVC_XEN in
> >> your kernel build?
> >>
> >
> > Changing console=hvc0 works.
> >
> > Kernel boot still fails. I have my rootfs of IDE(ATA) on AHCI. Because 
> > there is
> > no link up interrupt from IDE and hence it fails to boot and mount rootfs.
> > Where as the same kernel boots fine without Xen
> >
> > From HW traces, I see that GIC does not raise IRQ.
> >
> > I am using kernel 3.10.14+. Can you please let me know Dom0 kernel
> > configuration.

> Missed to mention. On top of 3.10.14 I added following patches for arm64
> 
> 1e33368 arm/xen: define xen_remap as ioremap_cached
> 71750f7 arm64/xen: introduce asm/xen header files on arm64
> a554a92 xen/arm and xen/arm64: implement HYPERVISOR_tmem_op
> b80ef86 arm64/xen: introduce CONFIG_XEN and hypercall.S on ARM64
> 7605d0c xen/arm: disable cpuidle and cpufreq when linux is running as dom0

3.10.x plus those might be ok.

The big thing which comes to mind that you will be missing here is the
swiotlb stuff which Stefano did, which went into v3.13-rc1 (with some
subsequent fixups). Stefano probably remembers better than I what went
into the kernel since 3.10.

I'm mostly tracking mainline myself and you might find it easier to move
up to something more recent rather than backport the swiotlb stuff.

You might also want to investigate Stefano's "interrupt handling fixes"
to the hypervisor side -- IIRC they are related to failures similar to
the one you are seeing.

> > I have enabled following configuration in dom0 kernel

Your config looks fine.

> >
> > CONFIG_XEN_DOM0=y
> > CONFIG_XEN=y
> > CONFIG_XEN_NETDEV_FRONTEND=y
> > CONFIG_XEN_NETDEV_BACKEND=y
> > CONFIG_HVC_DRIVER=y
> > CONFIG_HVC_IRQ=y
> > CONFIG_HVC_XEN=y
> > CONFIG_HVC_XEN_FRONTEND=y
> > CONFIG_XEN_DEV_EVTCHN=y
> > CONFIG_XEN_BACKEND=y
> > CONFIG_XENFS=y
> > CONFIG_XEN_COMPAT_XENFS=y
> > CONFIG_XEN_XENBUS_FRONTEND=y
> > CONFIG_XEN_GNTDEV=y
> > CONFIG_XEN_PRIVCMD=y
> >
> >
> >> You might also want to try enabling earlyprintk, either via a second
> >> UART not used by Xen, or the vuart which Xen replaces its console with
> >> for dom0 (assuming your Xen console driver exports the right hooks) or
> >> with something like:
> >>
> >> diff --git a/arch/arm64/kernel/early_printk.c 
> >> b/arch/arm64/kernel/early_printk.c
> >> index fbb6e18..9302d7a 100644
> >> --- a/arch/arm64/kernel/early_printk.c
> >> +++ b/arch/arm64/kernel/early_printk.c
> >> @@ -26,6 +26,8 @@
> >>  #include <linux/amba/serial.h>
> >>  #include <linux/serial_reg.h>
> >>
> >> +#include <asm/xen/hypercall.h>
> >> +
> >>  static void __iomem *early_base;
> >>  static void (*printch)(char ch);
> >>
> >> @@ -52,6 +54,11 @@ static void smh_printch(char ch)
> >>                      : : "r" (&ch) : "x0", "x1", "memory");
> >>  }
> >>
> >> +static void xen_printch(char ch)
> >> +{
> >> +       HYPERVISOR_console_io(CONSOLEIO_write, 1, &ch);
> >> +}
> >> +
> >>  /*
> >>   * 8250/16550 (8-bit aligned registers) single character TX.
> >>   */
> >> @@ -80,6 +87,7 @@ struct earlycon_match {
> >>  static const struct earlycon_match earlycon_match[] __initconst = {
> >>         { .name = "pl011", .printch = pl011_printch, },
> >>         { .name = "smh", .printch = smh_printch, },
> >> +       { .name = "xen", .printch = xen_printch, },
> >>         { .name = "uart8250-8bit", .printch = uart8250_8bit_printch, },
> >>         { .name = "uart8250-32bit", .printch = uart8250_32bit_printch, },
> >>         {}
> >>
> >>



_______________________________________________
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®.