All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/19] Introducing Xen PV block driver to OVMF
@ 2014-10-17 17:03 Anthony PERARD
  0 siblings, 0 replies; only message in thread
From: Anthony PERARD @ 2014-10-17 17:03 UTC (permalink / raw)
  To: EDK2 devel; +Cc: Anthony PERARD, Xen Devel

Hi all,

This patch series is implementing the necessary in order to access a PV block
device. For that, one need a XenStore client, a XenBus client, and the PV block
driver.

There are two new drivers, XenbusDxe and XenPvBlkDxe. The first one implement a
bus drivers, and the second is a block drivers.

The GUID for the drivers XenBusDxe and XenPvBlkDxe and for the protocol XenBus
have been genereted using the UefiDriverWizard.

* What's new in V3?

- 32bit support:
It's done by adding a few #ifdef __i386__; #pragma pack(4); when necessary in
the Xen headers. More detail about this in the description of the patch
"OvmfPkg: Add public headers from Xen Project".

- Licenses:
The MIT licence is added to the OvmfPkg/Licence.txt file, with a mentions of
which directories might use them. This is the first patch, "OvmfPkg: Add the
MIT license to License.txt".

Other changes have been listed after a '---' line in every patches.

Anthony PERARD (19):
  OvmfPkg: Add the MIT license to License.txt.
  OvmfPkg: Add public headers from Xen Project.
  OvmfPkg: Add basic skeleton for the XenBus bus driver.
  OvmfPkg/XenBusDxe: Add device state struct and create an ExitBoot
    services event.
  OvmfPkg/XenBusDxe: Add support to make Xen Hypercalls.
  OvmfPkg/XenBusDxe: Open PciIo protocol.
  OvmfPkg: Introduce XenBus Protocol.
  OvmfPkg/XenBusDxe: Add InterlockedCompareExchange16.
  OvmfPkg/XenBusDxe: Add Grant Table functions.
  OvmfPkg/XenBusDxe: Add Event Channel Notify.
  OvmfPkg/XenBusDxe: Add TestAndClearBit.
  OvmfPkg/XenBusDxe: Add XenStore client implementation
  OvmfPkg/XenBusDxe: Add an helper AsciiStrDup.
  OvmfPkg/XenBusDxe: Add XenStore function into the XenBus protocol
  OvmfPkg/XenBusDxe: Indroduce XenBus support itself.
  OvmfPkg/XenBusDxe: Add Event Channel into XenBus protocol.
  OvmfPkg/XenPvBlkDxe: Xen PV Block device, initial skeleton
  OvmfPkg/XenPvBlkDxe: Add BlockFront client.
  OvmfPkg/XenPvBlkDxe: Add BlockIo.

 .../IndustryStandard/Xen/arch-x86/xen-x86_32.h     |   59 +
 .../IndustryStandard/Xen/arch-x86/xen-x86_64.h     |   59 +
 .../Include/IndustryStandard/Xen/arch-x86/xen.h    |  112 ++
 .../Include/IndustryStandard/Xen/event_channel.h   |  118 ++
 OvmfPkg/Include/IndustryStandard/Xen/grant_table.h |  444 ++++++
 OvmfPkg/Include/IndustryStandard/Xen/hvm/hvm_op.h  |   37 +
 OvmfPkg/Include/IndustryStandard/Xen/hvm/params.h  |  150 ++
 OvmfPkg/Include/IndustryStandard/Xen/io/blkif.h    |  619 ++++++++
 .../Include/IndustryStandard/Xen/io/protocols.h    |   40 +
 OvmfPkg/Include/IndustryStandard/Xen/io/ring.h     |  312 ++++
 OvmfPkg/Include/IndustryStandard/Xen/io/xenbus.h   |   80 +
 OvmfPkg/Include/IndustryStandard/Xen/io/xs_wire.h  |  149 ++
 OvmfPkg/Include/IndustryStandard/Xen/memory.h      |   94 ++
 OvmfPkg/Include/IndustryStandard/Xen/xen-compat.h  |   44 +
 OvmfPkg/Include/IndustryStandard/Xen/xen.h         |  341 +++++
 OvmfPkg/Include/Protocol/XenBus.h                  |  432 ++++++
 OvmfPkg/License.txt                                |   25 +
 OvmfPkg/OvmfPkg.dec                                |    1 +
 OvmfPkg/OvmfPkgIa32.dsc                            |    2 +
 OvmfPkg/OvmfPkgIa32.fdf                            |    2 +
 OvmfPkg/OvmfPkgIa32X64.dsc                         |    2 +
 OvmfPkg/OvmfPkgIa32X64.fdf                         |    2 +
 OvmfPkg/OvmfPkgX64.dsc                             |    2 +
 OvmfPkg/OvmfPkgX64.fdf                             |    2 +
 OvmfPkg/XenBusDxe/ComponentName.c                  |  190 +++
 OvmfPkg/XenBusDxe/ComponentName.h                  |  110 ++
 OvmfPkg/XenBusDxe/DriverBinding.h                  |  144 ++
 OvmfPkg/XenBusDxe/EventChannel.c                   |  104 ++
 OvmfPkg/XenBusDxe/EventChannel.h                   |  104 ++
 OvmfPkg/XenBusDxe/GrantTable.c                     |  217 +++
 OvmfPkg/XenBusDxe/GrantTable.h                     |   68 +
 OvmfPkg/XenBusDxe/Helpers.c                        |    9 +
 .../XenBusDxe/Ia32/InterlockedCompareExchange16.S  |   15 +
 .../Ia32/InterlockedCompareExchange16.asm          |   45 +
 OvmfPkg/XenBusDxe/Ia32/TestAndClearBit.S           |   13 +
 OvmfPkg/XenBusDxe/Ia32/TestAndClearBit.asm         |   17 +
 OvmfPkg/XenBusDxe/Ia32/hypercall.S                 |   22 +
 OvmfPkg/XenBusDxe/Ia32/hypercall.asm               |   26 +
 OvmfPkg/XenBusDxe/InterlockedCompareExchange16.c   |   33 +
 OvmfPkg/XenBusDxe/InterlockedCompareExchange16.h   |   38 +
 .../XenBusDxe/X64/InterlockedCompareExchange16.S   |   13 +
 .../XenBusDxe/X64/InterlockedCompareExchange16.asm |   41 +
 OvmfPkg/XenBusDxe/X64/TestAndClearBit.S            |   12 +
 OvmfPkg/XenBusDxe/X64/TestAndClearBit.asm          |   16 +
 OvmfPkg/XenBusDxe/X64/hypercall.S                  |   22 +
 OvmfPkg/XenBusDxe/X64/hypercall.asm                |   26 +
 OvmfPkg/XenBusDxe/XenBus.c                         |  375 +++++
 OvmfPkg/XenBusDxe/XenBus.h                         |   64 +
 OvmfPkg/XenBusDxe/XenBusDxe.c                      |  497 +++++++
 OvmfPkg/XenBusDxe/XenBusDxe.h                      |  159 ++
 OvmfPkg/XenBusDxe/XenBusDxe.inf                    |   86 ++
 OvmfPkg/XenBusDxe/XenHypercall.c                   |  134 ++
 OvmfPkg/XenBusDxe/XenHypercall.h                   |  100 ++
 OvmfPkg/XenBusDxe/XenStore.c                       | 1550 ++++++++++++++++++++
 OvmfPkg/XenBusDxe/XenStore.h                       |  379 +++++
 OvmfPkg/XenPvBlkDxe/BlockFront.c                   |  647 ++++++++
 OvmfPkg/XenPvBlkDxe/BlockFront.h                   |   87 ++
 OvmfPkg/XenPvBlkDxe/BlockIo.c                      |  290 ++++
 OvmfPkg/XenPvBlkDxe/BlockIo.h                      |  124 ++
 OvmfPkg/XenPvBlkDxe/ComponentName.c                |  192 +++
 OvmfPkg/XenPvBlkDxe/ComponentName.h                |  110 ++
 OvmfPkg/XenPvBlkDxe/DriverBinding.h                |  159 ++
 OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.c                  |  410 ++++++
 OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.h                  |   99 ++
 OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf                |   80 +
 65 files changed, 9955 insertions(+)
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/arch-x86/xen-x86_32.h
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/arch-x86/xen-x86_64.h
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/arch-x86/xen.h
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/event_channel.h
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/grant_table.h
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/hvm/hvm_op.h
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/hvm/params.h
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/io/blkif.h
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/io/protocols.h
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/io/ring.h
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/io/xenbus.h
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/io/xs_wire.h
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/memory.h
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/xen-compat.h
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/xen.h
 create mode 100644 OvmfPkg/Include/Protocol/XenBus.h
 create mode 100644 OvmfPkg/XenBusDxe/ComponentName.c
 create mode 100644 OvmfPkg/XenBusDxe/ComponentName.h
 create mode 100644 OvmfPkg/XenBusDxe/DriverBinding.h
 create mode 100644 OvmfPkg/XenBusDxe/EventChannel.c
 create mode 100644 OvmfPkg/XenBusDxe/EventChannel.h
 create mode 100644 OvmfPkg/XenBusDxe/GrantTable.c
 create mode 100644 OvmfPkg/XenBusDxe/GrantTable.h
 create mode 100644 OvmfPkg/XenBusDxe/Helpers.c
 create mode 100644 OvmfPkg/XenBusDxe/Ia32/InterlockedCompareExchange16.S
 create mode 100644 OvmfPkg/XenBusDxe/Ia32/InterlockedCompareExchange16.asm
 create mode 100644 OvmfPkg/XenBusDxe/Ia32/TestAndClearBit.S
 create mode 100644 OvmfPkg/XenBusDxe/Ia32/TestAndClearBit.asm
 create mode 100644 OvmfPkg/XenBusDxe/Ia32/hypercall.S
 create mode 100644 OvmfPkg/XenBusDxe/Ia32/hypercall.asm
 create mode 100644 OvmfPkg/XenBusDxe/InterlockedCompareExchange16.c
 create mode 100644 OvmfPkg/XenBusDxe/InterlockedCompareExchange16.h
 create mode 100644 OvmfPkg/XenBusDxe/X64/InterlockedCompareExchange16.S
 create mode 100644 OvmfPkg/XenBusDxe/X64/InterlockedCompareExchange16.asm
 create mode 100644 OvmfPkg/XenBusDxe/X64/TestAndClearBit.S
 create mode 100644 OvmfPkg/XenBusDxe/X64/TestAndClearBit.asm
 create mode 100644 OvmfPkg/XenBusDxe/X64/hypercall.S
 create mode 100644 OvmfPkg/XenBusDxe/X64/hypercall.asm
 create mode 100644 OvmfPkg/XenBusDxe/XenBus.c
 create mode 100644 OvmfPkg/XenBusDxe/XenBus.h
 create mode 100644 OvmfPkg/XenBusDxe/XenBusDxe.c
 create mode 100644 OvmfPkg/XenBusDxe/XenBusDxe.h
 create mode 100644 OvmfPkg/XenBusDxe/XenBusDxe.inf
 create mode 100644 OvmfPkg/XenBusDxe/XenHypercall.c
 create mode 100644 OvmfPkg/XenBusDxe/XenHypercall.h
 create mode 100644 OvmfPkg/XenBusDxe/XenStore.c
 create mode 100644 OvmfPkg/XenBusDxe/XenStore.h
 create mode 100644 OvmfPkg/XenPvBlkDxe/BlockFront.c
 create mode 100644 OvmfPkg/XenPvBlkDxe/BlockFront.h
 create mode 100644 OvmfPkg/XenPvBlkDxe/BlockIo.c
 create mode 100644 OvmfPkg/XenPvBlkDxe/BlockIo.h
 create mode 100644 OvmfPkg/XenPvBlkDxe/ComponentName.c
 create mode 100644 OvmfPkg/XenPvBlkDxe/ComponentName.h
 create mode 100644 OvmfPkg/XenPvBlkDxe/DriverBinding.h
 create mode 100644 OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.c
 create mode 100644 OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.h
 create mode 100644 OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf

-- 
Anthony PERARD

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-10-17 17:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-10-17 17:03 [PATCH v3 00/19] Introducing Xen PV block driver to OVMF Anthony PERARD

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.