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

Re: [Xen-devel] Xen on ARMv8



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.
I have enabled following configuration in dom0 kernel

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