18.5.2 Weakly ordered memory transactions
Some processors, such as those in IPF platforms, have weakly ordered memory
models. With weak ordering, system memory transactions may complete in a
different order than the source code would seem to indicate. A PCI driver
should be implemented so that the source code is compatible with as many
processors and platforms as possible. As a result, the guidelines on the use of
the EDK II library BaseLib
function MemoryFence()
(see the next discussion)
should be followed even if the driver is not initially implemented for an IPF
platform. The techniques shown here do not have any impact on the executable
size of a driver for strongly ordered processors such as IA32, X64, and EBC.