OvmfPkg: introduce E820.h

E820 definitions copied from IntelFrameworkModulePkg/Csm/
LegacyBiosDxe/LegacyBiosInterface.h.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: svn://svn.code.sf.net/p/edk2/code/trunk/edk2/OvmfPkg@14941 6f19259b-4bc3-4df7-8a09-765794883524
OvmfPkg: define EFI_XEN_OVMF_INFO

EFI_XEN_OVMF_INFO is defined to accept configurations from hvmloader. It
must match the definition on Xen side.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: svn://svn.code.sf.net/p/edk2/code/trunk/edk2/OvmfPkg@14942 6f19259b-4bc3-4df7-8a09-765794883524
OvmfPkg: detect Xen earlier

This is useful for initializing memory map.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: svn://svn.code.sf.net/p/edk2/code/trunk/edk2/OvmfPkg@14943 6f19259b-4bc3-4df7-8a09-765794883524
OvmfPkg: introduce PublishPeiMemory

MemDetect actully does too many things, the underlying platform might
want to have more control over memory layout.

Extract the functionality of publishing PEI memory to a dedicated
function.

Also fixed wrong comment while I was there.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: svn://svn.code.sf.net/p/edk2/code/trunk/edk2/OvmfPkg@14944 6f19259b-4bc3-4df7-8a09-765794883524
OvmfPkg: introduce XenMemMapInitialization

This function parses E820 map provided by Xen and arrange memory maps
accordingly.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
[jordan.l.justen@intel.com: XenGetE820Map: VS2010 compat; add assert]
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: svn://svn.code.sf.net/p/edk2/code/trunk/edk2/OvmfPkg@14945 6f19259b-4bc3-4df7-8a09-765794883524
OvmfPkg: enable Xen specific path

This patch sets PcdPciDisableBusEnumeration to true then makes use of
PublishPeiMemory and XenMemMapInitialization to construct memory map for
Xen guest.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: svn://svn.code.sf.net/p/edk2/code/trunk/edk2/OvmfPkg@14946 6f19259b-4bc3-4df7-8a09-765794883524