ArmPkg/ArmDmaLib: Fixed the calculation of the Base Address of the Buffer
authorOlivier Martin <olivier.martin@arm.com>
Mon, 2 Sep 2013 13:13:29 +0000 (13:13 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 2 Sep 2013 13:13:29 +0000 (13:13 +0000)
commitdb06c2d723ac981e4e54b5d6dd410cb23621517c
treee76d6e770a933d2b59b59ddc9e4e72cda119dc3e
parentb75d7605b4c09d5d431c2d57f70341c2f43de3c3
ArmPkg/ArmDmaLib: Fixed the calculation of the Base Address of the Buffer

The former calculation 'ALIGN_VALUE(*DeviceAddress - BASE_4KB - 1,BASE_4KB)' did
not return the lowest aligned address.

Example:
*DeviceAddress = 0xB000C001;
*DeviceAddress - BASE_4KB - 1 = 0xB000B000;
Aligned value = 0xB000B000 + ((0x1000 - 0xB000B000)) & 0xFFF) = 0xB000B000
... while we where expected 0xB000C000.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14618 6f19259b-4bc3-4df7-8a09-765794883524
ArmPkg/Library/ArmDmaLib/ArmDmaLib.c