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

Re: [Xen-devel] Xen on ARMv8



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?

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