All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Wei Liu <wei.liu2@citrix.com>
Cc: xen-devel@lists.xen.org
Subject: Re: [PATCH RFC v2 3/4] hvmloader/ovmf: setup ovmf_info
Date: Tue, 19 Nov 2013 16:35:38 -0500	[thread overview]
Message-ID: <20131119213538.GA8435@phenom.dumpdata.com> (raw)
In-Reply-To: <1384895504-13723-4-git-send-email-wei.liu2@citrix.com>

On Tue, Nov 19, 2013 at 09:11:43PM +0000, Wei Liu wrote:
> OVMF info contains E820 map allocated by hvmloader. This info is passed
> to OVMF to help it do proper initialization.
> 
> Currently only E820 is necessary, but we reserve spaces for other tables
> in ovmf_info for later usage.
> 
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> ---
>  tools/firmware/hvmloader/ovmf.c |   49 +++++++++++++++++++++++++++++++++++++--
>  1 file changed, 47 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/firmware/hvmloader/ovmf.c b/tools/firmware/hvmloader/ovmf.c
> index 7826095..1564263 100644
> --- a/tools/firmware/hvmloader/ovmf.c
> +++ b/tools/firmware/hvmloader/ovmf.c
> @@ -46,10 +46,55 @@
>  #define LOWCHUNK_SIZE           0x00010000
>  #define LOWCHUNK_MAXOFFSET      0x0000FFFF
>  #define LOWCHUNK_END            (OVMF_BEGIN + OVMF_SIZE)
> +#define OVMF_INFO_PHYSICAL_ADDRESS 0X00001000
                                       ^-x

>  
>  extern unsigned char dsdt_anycpu[];
>  extern int dsdt_anycpu_len;
>  
> +#define OVMF_INFO_MAX_TABLES 4
> +struct ovmf_info {
> +    char signature[11]; /* XenHVMOVMF\0 */
> +    char pad[3];

/* Need comment */

> +    uint8_t length;     /* Length of this struct */
> +    uint8_t checksum;   /* Set such that the sum over bytes 0..length == 0 */
> +    /*
> +     * Physical address of an array of tables_nr elements.
> +     *
> +     * Each element is a 32 bit value contianing the physical address
> +     * of a BIOS table.
> +     */
> +    uint32_t tables;
> +    uint32_t tables_nr;
> +    /*
> +     * Physical address of the e820 table, contains e820_nr entries.
> +     */
> +    uint32_t e820;
> +    uint32_t e820_nr;
> +} __attribute__ ((packed));
> +
> +static void ovmf_setup_bios_info(void)
> +{
> +    struct ovmf_info *info = (void *)OVMF_INFO_PHYSICAL_ADDRESS;
> +
> +    memset(info, 0, sizeof(*info));
> +
> +    memcpy(info->signature, "XenHVMOVMF", sizeof(info->signature));
> +    info->length = sizeof(*info);
> +}
> +
> +static void ovmf_finish_bios_info(void)
> +{
> +    struct ovmf_info *info = (void *)OVMF_INFO_PHYSICAL_ADDRESS;
> +    uint32_t i;
> +    uint8_t checksum;
> +
> +    checksum = 0;
> +    for ( i = 0; i < info->length; i++ )
> +        checksum += ((uint8_t *)(info))[i];
> +
> +    info->checksum = -checksum;
> +}
> +
>  static void ovmf_load(const struct bios_config *config)
>  {
>      xen_pfn_t mfn;
> @@ -104,8 +149,8 @@ struct bios_config ovmf_config =  {
>  
>      .load_roms = 0,
>  
> -    .bios_info_setup = NULL,
> -    .bios_info_finish = NULL,
> +    .bios_info_setup = ovmf_setup_bios_info,
> +    .bios_info_finish = ovmf_finish_bios_info,
>  
>      .e820_setup = NULL,
>  
> -- 
> 1.7.10.4
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

  reply	other threads:[~2013-11-19 21:35 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-19 21:11 [PATCH RFC v2 0/4] hvmloader: make OVMF work with Xen Wei Liu
2013-11-19 21:11 ` [PATCH RFC v2 1/4] hvmloader/ovmf: increase blob size to 2MB Wei Liu
2013-11-19 21:11 ` [PATCH RFC v2 2/4] hvmloader/ovmf: show OVMF_BEGIN as bios address Wei Liu
2013-11-19 21:11 ` [PATCH RFC v2 3/4] hvmloader/ovmf: setup ovmf_info Wei Liu
2013-11-19 21:35   ` Konrad Rzeszutek Wilk [this message]
2013-11-19 21:11 ` [PATCH RFC v2 4/4] hvmloader/ovmf: setup E820 map Wei Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20131119213538.GA8435@phenom.dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.