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

Re: [Xen-devel] Xen on ARMv8



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

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