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

Re: [Xen-devel] [PATCH v3 3/8] OvmfPkg: define EFI_XEN_OVMF_INFO and extend XenInfo



On Wed, Nov 27, 2013 at 5:09 PM, Jordan Justen <jljusten@xxxxxxxxx> wrote:
> On Tue, Nov 26, 2013 at 11:25 AM, Wei Liu <wei.liu2@xxxxxxxxxx> wrote:
>> EFI_XEN_OVMF_INFO is defined to accept configurations from hvmloader. It
>> must match the definition on Xen side.
>>
>> XenInfo is extended to include necessary bits as well. Currently only E820
>> map is in use.
>>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
>> ---
>>  OvmfPkg/Include/Guid/XenInfo.h |    7 +++++++
>>  OvmfPkg/PlatformPei/Xen.h      |   44 
>> ++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 51 insertions(+)
>>  create mode 100644 OvmfPkg/PlatformPei/Xen.h
>>
>> diff --git a/OvmfPkg/Include/Guid/XenInfo.h b/OvmfPkg/Include/Guid/XenInfo.h
>> index d512b0b..6146080 100644
>> --- a/OvmfPkg/Include/Guid/XenInfo.h
>> +++ b/OvmfPkg/Include/Guid/XenInfo.h
>> @@ -15,6 +15,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER 
>> EXPRESS OR IMPLIED.
>>  #ifndef __XEN_INFO_H__
>>  #define __XEN_INFO_H__
>>
>> +#include <Uefi/UefiBaseType.h>
>> +
>
> I don't think we want this #include in Guid/XenInfo.h.
>
> Can you make sure that the locations that #include Guid/XenInfo.h
> include PiPei.h, PiDxe.h, or Uefi.h before Guid/XenInfo.h?
>
>>  #define EFI_XEN_INFO_GUID \
>>      { 0xd3b46f3b, 0xd441, 0x1244, {0x9a, 0x12, 0x0, 0x12, 0x27, 0x3f, 0xc1, 
>> 0x4d } }
>>
>> @@ -35,6 +37,11 @@ typedef struct {
>>    /// Hypervisor minor version.
>>    ///
>>    UINT16 VersionMinor;
>> +  ///
>> +  /// E820 map
>> +  ///
>> +  EFI_PHYSICAL_ADDRESS E820;
>> +  UINT32 E820EntriesCount;
>
> Can you add this chunk into the next patch which initializes
> E820/E820EntriesCount?

Actually ... this doesn't need to be added into EFI_XEN_INFO, since
PlatformPei is the only thing looking at the tables, right?

So, maybe you just need a new function:
EFI_STATUS
XenGetE820Entries (
  EFI_E820_ENTRY64 **Entries,
  UINTN *Count
  );

-Jordan

> With those 2 changes, patches 3 & 4 are
> Reviewed-by: Jordan Justen <jordan.l.justen@xxxxxxxxx>
>
>>  } EFI_XEN_INFO;
>>
>>  extern EFI_GUID gEfiXenInfoGuid;
>> diff --git a/OvmfPkg/PlatformPei/Xen.h b/OvmfPkg/PlatformPei/Xen.h
>> new file mode 100644
>> index 0000000..1885ede
>> --- /dev/null
>> +++ b/OvmfPkg/PlatformPei/Xen.h
>> @@ -0,0 +1,44 @@
>> +/** @file
>> +  Ovmf info structure passed by Xen
>> +
>> +Copyright (c) 2013, Wei Liu <wei.liu2@xxxxxxxxxx>
>> +This program and the accompanying materials are licensed and made available 
>> under
>> +the terms and conditions of the BSD License that accompanies this 
>> distribution.
>> +The full text of the license may be found at
>> +http://opensource.org/licenses/bsd-license.php.
>> +
>> +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
>> +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR 
>> IMPLIED.
>> +
>> +**/
>> +
>> +#ifndef __XEN_H__
>> +#define __XEN_H__
>> +
>> +#include <Uefi/UefiBaseType.h>
>> +
>> +// Physical address of OVMF info
>> +#define OVMF_INFO_PHYSICAL_ADDRESS 0x00001000
>> +
>> +// This structure must match the definition on Xen side
>> +#pragma pack(1)
>> +typedef struct {
>> +  CHAR8 Signature[14]; // XenHVMOVMF\0
>> +  UINT8 Length;        // Length of this structure
>> +  UINT8 Checksum;      // Set such that the sum over bytes 0..length == 0
>> +  //
>> +  // Physical address of an array of TablesCount elements.
>> +  //
>> +  // Each element contains the physical address of a BIOS table.
>> +  //
>> +  EFI_PHYSICAL_ADDRESS Tables;
>> +  UINT32 TablesCount;
>> +  //
>> +  // Physical address of the E820 table, contains E820EntriesCount entries.
>> +  //
>> +  EFI_PHYSICAL_ADDRESS E820;
>> +  UINT32 E820EntriesCount;
>> +} EFI_XEN_OVMF_INFO;
>> +#pragma pack()
>> +
>> +#endif /* __XEN_H__ */
>> --
>> 1.7.10.4
>>
>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxx
>> http://lists.xen.org/xen-devel

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