Commit Graph

122 Commits

Author SHA1 Message Date
Laszlo Ersek 5cf69d4836 OvmfPkg: IndustryStandard/VirtioBlk: introduce topology-related definitions
Based on
<https://tools.oasis-open.org/version-control/browse/wsvn/virtio/virtio-v1.0-wd01-part1-specification.txt?rev=159>,
which is the last text format revision.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15002 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-18 19:57:28 +00:00
Laszlo Ersek 1d17076b00 OvmfPkg: IndustryStandard/VirtioBlk: add extra horizontal whitespace
We're going to introduce a new macro and a new VIRTIO_BLK_CONFIG member
that need realignment of existing definitions and comments. Separate out
the whitespace changes in this patch.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15001 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-18 19:57:18 +00:00
Olivier Martin 64106abf4b OvmfPkg/Virtio.h: Removed definition of VIRTIO_HDR
This definition is specific to VirtIo over PCI.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14967 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-11 16:58:30 +00:00
Olivier Martin 56f65ed838 OvmfPkg: Make the VirtIo devices use the new VIRTIO_DEVICE_PROTOCOL
This change replaces the accesses to the PCI bus from the Block, Scsi and Net drivers by
the use of the new VIRTIO_DEVICE_PROTOCOL protocol that abstracts the transport layer.
It means these drivers can be used on PCI and MMIO transport layer.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>

v5:
- VirtioFlush(): update comment block in VirtioLib.[hc]; error code is
  propagated from VirtIo->SetQueueNotify().
- VirtioBlkInit(): jump to Failed label if SetPageSize() fails
- VirtioBlkInit(): fixup comment, and add error handling, near
  SetQueueNum() call
- VirtioBlkDriverBindingStart(): remove redundant (always false) check for
  a subsystem device ID different from VIRTIO_SUBSYSTEM_BLOCK_DEVICE;
  VirtioBlkDriverBindingSupported() handles it already
- VirtioNetGetFeatures(): update stale comment block
- VirtioNetGetFeatures(): retrieve MAC address byte for byte (open-coded
  loop)
- VirtioNetDriverBindingStart(): remove redundant (always false) check for
  a subsystem device ID different from VIRTIO_SUBSYSTEM_NETWORK_CARD;
  VirtioNetDriverBindingSupported() handles it already
- VirtioNetInitRing(): call SetQueueNum() and SetQueueAlign() for proper
  MMIO operation
- VirtioNetInitialize(): fix destination error label for when
  SetPageSize() fails
- VirtioScsi.c: fix comment block of VIRTIO_CFG_WRITE()/VIRTIO_CFG_READ()
- VirtioScsiInit(): fix destination error label for when SetPageSize()
  fails
- VirtioScsiInit(): call SetQueueNum() and SetQueueAlign() for proper MMIO
  operation

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14966 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-11 16:58:22 +00:00
Wei Liu e48c696d91 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: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14941 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-08 01:35:44 +00:00
Olivier Martin 10b9b03794 OvmfPkg/Virtio.h: Added the Virtio Vendor and MMIO IDs
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14809 6f19259b-4bc3-4df7-8a09-765794883524
2013-10-29 06:09:46 +00:00
Olivier Martin d092ba8e71 OvmfPkg/Virtio.h: Added PCI/MMIO Virtio Headers Offsets
Offsets are different between the PCI and MMIO transport layer.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14808 6f19259b-4bc3-4df7-8a09-765794883524
2013-10-29 06:08:39 +00:00
Olivier Martin b342c97dfc OvmfPkg/Virtio.h: Added the macros that define the Device Specific Configuration Offset
The Device Specific Configuration region is located at different locations
for the VirtIo devices over PCI, PCI with MSI-X capability, MMIO.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14807 6f19259b-4bc3-4df7-8a09-765794883524
2013-10-29 06:07:35 +00:00
Olivier Martin a83dc3a475 OvmfPkg/Virtio.h: Added VirtIo Subsystem IDs
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14741 6f19259b-4bc3-4df7-8a09-765794883524
2013-09-30 08:56:50 +00:00
Olivier Martin 24669084b6 OvmfPkg/IndustryStandard: Fixed 'VirtioNet.h' line endings
EDK2 files must use CRLF line ending.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14740 6f19259b-4bc3-4df7-8a09-765794883524
2013-09-30 08:55:38 +00:00
Jordan Justen 4b734e61f8 OvmfPkg: Remove IndustryStandard/X64Paging.h
Since we no longer building page tables in SEC C code, we no
longer need this file.

This reverts commit r14493.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14720 6f19259b-4bc3-4df7-8a09-765794883524
2013-09-24 18:23:59 +00:00
Jordan Justen ca270eb727 OvmfPkg: Add IndustryStandard/X64Paging.h
Taken from MdeModulePkg/Core/DxeIplPeim/X64/VirtualMemory.h.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14493 6f19259b-4bc3-4df7-8a09-765794883524
2013-07-18 22:51:16 +00:00
Laszlo Ersek 201cac0d5a OvmfPkg: VirtioNetDxe: declarations and macro definitions
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14405 6f19259b-4bc3-4df7-8a09-765794883524
2013-06-14 07:39:32 +00:00
jljusten 25ca06f9a0 OvmfPkg LinuxBzimage.h: Update for kernel boot protocol 2.12
This was made available in:
http://git.kernel.org/linus/09c205af

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14131 6f19259b-4bc3-4df7-8a09-765794883524
2013-02-14 19:21:12 +00:00
jljusten 80feb819d3 OvmfPkg: Add Linux bzimage include file
This file is from the efilinux project where it resides
under the path loaders/bzimage/bzimage.h.
git://git.kernel.org/pub/scm/boot/efilinux/efilinux.git

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Acked-by: Matt Fleming <matt.fleming@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13920 6f19259b-4bc3-4df7-8a09-765794883524
2012-11-02 18:26:30 +00:00
jljusten 37078a63b1 OvmfPkg: introduce virtio-scsi driver
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
[jordan.l.justen@intel.com: fix build for VS2012]
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13867 6f19259b-4bc3-4df7-8a09-765794883524
2012-10-18 17:07:48 +00:00
jljusten 6b28fe9ee8 OvmfPkg: Include/IndustryStandard: extract VirtioBlk.h from Virtio.h
Separate virtio-blk related macro and type definitions from generic virtio
related ones. Adapt the virtio-blk driver since it needs the latter too.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13841 6f19259b-4bc3-4df7-8a09-765794883524
2012-10-12 18:53:36 +00:00
jljusten a9624f945e OvmfPkg: rename OFFSET_OF_VHDR() / SIZE_OF_VHDR() to *_OF_VBLK()
since they are in fact virtio-blk specific.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13840 6f19259b-4bc3-4df7-8a09-765794883524
2012-10-12 18:53:20 +00:00
jljusten 55c3443a4f OvmfPkg: regroup virtio config fields into generic & specific structs
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13839 6f19259b-4bc3-4df7-8a09-765794883524
2012-10-12 18:53:06 +00:00
jljusten 2c3239f305 OvmfPkg: IndustryStandard/Virtio.h: use OFFSET_OF in OFFSET_OF_VHDR
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13838 6f19259b-4bc3-4df7-8a09-765794883524
2012-10-12 18:52:50 +00:00
jljusten d128191620 OvmfPkg: add inclusion guards in Include/IndustryStandard/Virtio.h
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13837 6f19259b-4bc3-4df7-8a09-765794883524
2012-10-12 18:52:37 +00:00
jljusten 045b46e92d OvmfPkg: move VirtioBlkDxe/Virtio.h to Include/IndustryStandard/Virtio.h
This commit consists of:
- a verbatim move ("similarity index 100%" in git parlance),
- an updated #include directive in VirtioBlkDxe/VirtioBlk.h,
- and an OvmfPkg.dec package entry in VirtioBlkDxe/VirtioBlk.inf, so that
  the new include directory is searched.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13836 6f19259b-4bc3-4df7-8a09-765794883524
2012-10-12 18:52:24 +00:00