Re: [Xen-devel] [PATCH WIP 2/6] xen/arm: Introduce xen_guest_init

From: David Vrabel
Date: Thu Jul 12 2012 - 08:04:16 EST


On 12/07/12 12:49, Roger Pau Monne wrote:
> David Vrabel wrote:
>> On 09/07/12 15:45, Konrad Rzeszutek Wilk wrote:
>>> On Fri, Jun 22, 2012 at 05:14:41PM +0100, Stefano Stabellini wrote:
>>>> We used to rely on a core_initcall to initialize Xen on ARM, however
>>>> core_initcalls are actually called after early consoles are initialized.
>>>> That means that hvc_xen.c is going to be initialized before Xen.
>>>>
>>>> Given the lack of a better alternative, just call a new Xen
>>>> initialization function (xen_guest_init) from xen_cons_init.
>>>>
>>>> xen_guest_init has to be arch independant, so write both an ARM and an
>>>> x86 implementation. The x86 implementation is currently empty because we
>>>> can be sure that xen_hvm_guest_init is called early enough.
>>>>
>>>> Probably we can get rid of this as soon as we have better DT support.
>>> What is DT?
>>
>> Device Tree. It's a binary describing the hardware and some system
>> configuration that is passed to the kernel by the boot loader or (in
>> this case) the hypervisor. Vaguely analogous to ACPI except it's not
>> crazy ;).
>>
>> We really should get the device tree bindings sorted out before
>> accepting any kernel side patches. I think we can do this even if Xen's
>> device tree support is incomplete.
>
> Will this be passed from the hypervisor to the linux kernel using a
> specific mechanism (different than the native one)?

The same mechanism. The kernel is booted with the physical address of
the device tree blob in a register (r2 I think) . Xen sorts this out
for dom0 and the toolstack is responsible for this for domUs.

I would expect the device tree to include the physical address of the
shared page with something like this.

hypervisor {
xen {
shared-info = <0x00 0x12345678 0 4096>;
};
};

Arch code in ARM would check for the hypervisor node (very) early on and
call a hypervisor specific init function based on the name of the child
node (xen in this case).

David
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/