diff options
author | Phil Dennis-Jordan <phil@philjordan.eu> | 2017-04-07 18:25:57 +1200 |
---|---|---|
committer | Laszlo Ersek <lersek@redhat.com> | 2017-04-07 12:22:30 +0200 |
commit | 05a5379458725234de8a05780fcb5da2c12680e4 (patch) | |
tree | 1513828a075954852173baa3b3a0d2b8574c02d2 /BaseTools/Source/Python/Common/BuildVersion.py | |
parent | 9bcca53fe466cdff397578328d9d87d257aba493 (diff) | |
download | edk2-05a5379458725234de8a05780fcb5da2c12680e4.tar.gz edk2-05a5379458725234de8a05780fcb5da2c12680e4.tar.bz2 edk2-05a5379458725234de8a05780fcb5da2c12680e4.zip |
OvmfPkg/QemuVideoDxe: Helper functions for unaligned port I/O.
The VMWare SVGA display device implemented by Qemu (-vga vmware) uses
an I/O-type BAR which is laid out such that some register offsets are
not aligned to the read/write width with which they are expected to be
accessed. (The register value port has an offset of 1 and requires
32 bit wide read/write access.)
The EFI_PCI_IO_PROTOCOL's Io.Read/Io.Write functions do not support
such unaligned I/O.
Before a driver for this device can be added to QemuVideoDxe, helper
functions for unaligned I/O are therefore required. This adds the
functions UnalignedIoWrite32 and UnalignedIoRead32, based on IoLib's
IoWrite32 and IoRead32, for the Ia32 and X64 architectures. Port I/O
requires inline assembly, so implementations are provided for the GCC,
ICC, and Microsoft compiler families. Such I/O is not possible on other
architectures, a dummy (ASSERT()ing) implementation is therefore
provided to satisfy the linker.
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Suggested-by: Jordan Justen <jordan.l.justen@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Diffstat (limited to 'BaseTools/Source/Python/Common/BuildVersion.py')
0 files changed, 0 insertions, 0 deletions