All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/19] Introducing Xen PV block driver to OVMF
@ 2014-10-23 18:17 Anthony PERARD
  0 siblings, 0 replies; 24+ messages in thread
From: Anthony PERARD @ 2014-10-23 18:17 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.

* Change in V4:
- new file OvmfPkg/Include/IndustryStandard/Xen/README in the patch "OvmfPkg:
  Add public headers from Xen Project." which is mostly a copy/past of the
  patch description.
- Added a brief description for both driver in the .inf file.
- And replaced the BSD-2 license text in file headers by the commonly used file
  header text.

* Change 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.

 OvmfPkg/Include/IndustryStandard/Xen/README        |   34 +
 .../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                  |  174 +++
 OvmfPkg/XenBusDxe/ComponentName.h                  |   94 ++
 OvmfPkg/XenBusDxe/DriverBinding.h                  |  128 ++
 OvmfPkg/XenBusDxe/EventChannel.c                   |   88 ++
 OvmfPkg/XenBusDxe/EventChannel.h                   |   88 ++
 OvmfPkg/XenBusDxe/GrantTable.c                     |  217 +++
 OvmfPkg/XenBusDxe/GrantTable.h                     |   77 +
 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                         |   44 +
 OvmfPkg/XenBusDxe/XenBusDxe.c                      |  481 ++++++
 OvmfPkg/XenBusDxe/XenBusDxe.h                      |  143 ++
 OvmfPkg/XenBusDxe/XenBusDxe.inf                    |   89 ++
 OvmfPkg/XenBusDxe/XenHypercall.c                   |  118 ++
 OvmfPkg/XenBusDxe/XenHypercall.h                   |  115 ++
 OvmfPkg/XenBusDxe/XenStore.c                       | 1550 ++++++++++++++++++++
 OvmfPkg/XenBusDxe/XenStore.h                       |  379 +++++
 OvmfPkg/XenPvBlkDxe/BlockFront.c                   |  647 ++++++++
 OvmfPkg/XenPvBlkDxe/BlockFront.h                   |  101 ++
 OvmfPkg/XenPvBlkDxe/BlockIo.c                      |  274 ++++
 OvmfPkg/XenPvBlkDxe/BlockIo.h                      |  108 ++
 OvmfPkg/XenPvBlkDxe/ComponentName.c                |  176 +++
 OvmfPkg/XenPvBlkDxe/ComponentName.h                |   94 ++
 OvmfPkg/XenPvBlkDxe/DriverBinding.h                |  143 ++
 OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.c                  |  394 +++++
 OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.h                  |   83 ++
 OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf                |   63 +
 66 files changed, 9753 insertions(+)
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/README
 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] 24+ messages in thread

end of thread, other threads:[~2014-10-29  6:57 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1414088257-15748-1-git-send-email-anthony.perard@citrix.com>
2014-10-23 18:17 ` [PATCH v4 01/19] OvmfPkg: Add the MIT license to License.txt Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 02/19] OvmfPkg: Add public headers from Xen Project Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 03/19] OvmfPkg: Add basic skeleton for the XenBus bus driver Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 04/19] OvmfPkg/XenBusDxe: Add device state struct and create an ExitBoot services event Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 05/19] OvmfPkg/XenBusDxe: Add support to make Xen Hypercalls Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 06/19] OvmfPkg/XenBusDxe: Open PciIo protocol Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 07/19] OvmfPkg: Introduce XenBus Protocol Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 08/19] OvmfPkg/XenBusDxe: Add InterlockedCompareExchange16 Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 09/19] OvmfPkg/XenBusDxe: Add Grant Table functions Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 10/19] OvmfPkg/XenBusDxe: Add Event Channel Notify Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 11/19] OvmfPkg/XenBusDxe: Add TestAndClearBit Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 12/19] OvmfPkg/XenBusDxe: Add XenStore client implementation Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 13/19] OvmfPkg/XenBusDxe: Add an helper AsciiStrDup Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 14/19] OvmfPkg/XenBusDxe: Add XenStore function into the XenBus protocol Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 15/19] OvmfPkg/XenBusDxe: Indroduce XenBus support itself Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 16/19] OvmfPkg/XenBusDxe: Add Event Channel into XenBus protocol Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 17/19] OvmfPkg/XenPvBlkDxe: Xen PV Block device, initial skeleton Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 18/19] OvmfPkg/XenPvBlkDxe: Add BlockFront client Anthony PERARD
2014-10-23 18:17 ` [PATCH v4 19/19] OvmfPkg/XenPvBlkDxe: Add BlockIo Anthony PERARD
2014-10-24 23:29 ` [PATCH v4 00/19] Introducing Xen PV block driver to OVMF Jordan Justen
     [not found] ` <CAFe8ug89DEX3CDBo3n_PBO4zU51_EU0ziigfFpJamG-HT+YqsA@mail.gmail.com>
2014-10-27 12:20   ` Anthony PERARD
     [not found]   ` <20141027122021.GA1711@perard.uk.xensource.com>
2014-10-27 19:52     ` Konrad Rzeszutek Wilk
2014-10-29  6:57     ` Jordan Justen
2014-10-23 18:17 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.