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

Re: [Xen-devel] [Draft C] Boot ABI for HVM guests without a device-model



>>> On 04.09.15 at 14:11, <roger.pau@xxxxxxxxxx> wrote:
>  * cs: must be a 32-bit read/execute code segment with an offset of â0â
>    and a limit of â0xFFFFFFFFâ. The selector value is unspecified.
> 
>  * ds, es: must be a 32-bit read/write data segment with an offset of
>    â0â and a limit of â0xFFFFFFFFâ. The selector values are all unspecified.

In both cases s/offset/base/.

>  * tr: must be a 32-bit TSS (active) with a base of '0' and a limit of '0xFF'.

Already on the previous version I asked about this strange 0xFF,
and I don't recall any answer.

>  * eflags: bit 17 (VM) must be cleared. Bit 9 (IF) must be cleared.
>    Other bits are all unspecified.

At the very least I'd also require TF to be clear.

> The format of the structure passed in the %ebx register is the following:

Even if it may sound like splitting hair: Please use precise wording. It's
not the structure that's contained in %ebx, but %ebx hold the address
of that structure.

> struct hvm_start_info {
> #define HVM_START_MAGIC_VALUE 0x336ec578
>     uint32_t magic;             /* Contains the magic value 0x336ec578       
> */
>                                 /* ("xEn3" with the 0x80 bit of the "E" 
> set).*/
>     uint32_t flags;             /* SIF_xxx flags.                            
> */

Do really mean to re-use the SIF_* flags here?

> AP startup
> ==========
> 
> AP startup is performed using hypercalls. The following VCPU operations
> are used in order to bring up secondary vCPUs:
> 
>  * VCPUOP_initialise is used to set the initial state of the vCPU. The
>    argument passed to the hypercall must be of the type vcpu_hvm_context.

VCPUOP_initialise takes a struct vcpu_guest_context; I don't think
we can or should change that.

Jan

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