Unfortunately, the caller (the VirtIo Block driver) does not know if the access 
is unaligned.
The VirtIo Block driver does not necessary know if the transport layer is PCI 
and has not got PCI-X capability (case when the access is unaligned).

One other solution would be to handle the 64bit unaligned access in the VirtIo 
PCI driver. Such as we are doing now by splitting the 64bit access into two 
32bit accesses; except when the access is aligned we would do a single 64bit 
access.

________________________________________
From: Jordan Justen [jljus...@gmail.com]
Sent: 23 October 2013 22:57
To: edk2-devel@lists.sourceforge.net
Subject: Re: [edk2] [PATCH v4 00/11] OvmfPkg: Introduce and use the new 
VIRTIO_DEVICE_PROTOCOL protocol

On Wed, Oct 16, 2013 at 10:29 AM, Olivier Martin <olivier.mar...@arm.com> wrote:
> Not changed:
> ------------
> - Endianness: All the architectures supported by the UEFI spec
>   are in 'little endian' mode.
> - Keep the PCI 64bit read/write break down into two 32bit accesses:
>   The VirtiIo BlockIo driver makes (at least) one non 8-byte aligned
>   access when trying to access the 'VIRTIO_BLK_CONFIG.Capacity' attribute.
>   VIRTIO_BLK_CONFIG.Capacity is a 64bit field at the offset 0x0 of the
>   device specific region. This region starts at the offset 20 (0x14) of
>   the I/O region when there is no MSI-X capability.

The caller making this I/O access has idea they are making an unaligned access?

If the caller knows that it is unaligned and they know that it is okay
(based on device specific knowledge) to split accesses apart, then the
caller should split the access.

-Jordan

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel


-- IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium.  Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered 
in England & Wales, Company No:  2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, 
Registered in England & Wales, Company No:  2548782


------------------------------------------------------------------------------
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to