X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdePkg%2FLibrary%2FBaseIoLibIntrinsic%2FAArch64%2FArmVirtMmio.asm;h=847f783844f7c8e19cd7589b1fd1c4089e949128;hp=bd235a5dd441734d36bc273efb19d6f7db6a36c0;hb=9095d37b8fe5bfc3d02adad6ba7fd7359ebc0107;hpb=d1102dba7210b95e41d06c2338a22ba6af248645 diff --git a/MdePkg/Library/BaseIoLibIntrinsic/AArch64/ArmVirtMmio.asm b/MdePkg/Library/BaseIoLibIntrinsic/AArch64/ArmVirtMmio.asm index bd235a5dd4..847f783844 100644 --- a/MdePkg/Library/BaseIoLibIntrinsic/AArch64/ArmVirtMmio.asm +++ b/MdePkg/Library/BaseIoLibIntrinsic/AArch64/ArmVirtMmio.asm @@ -1,149 +1,149 @@ -; -; Copyright (c) 2014-2018, Linaro Limited. All rights reserved. -; -; This program and the accompanying materials are licensed and made available -; under the terms and conditions of the BSD License which accompanies this -; distribution. The full text of the license may be found at -; http:;opensource.org/licenses/bsd-license.php -; -; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -; - - -AREA IoLibMmio, CODE, READONLY - -EXPORT MmioRead8Internal -EXPORT MmioWrite8Internal -EXPORT MmioRead16Internal -EXPORT MmioWrite16Internal -EXPORT MmioRead32Internal -EXPORT MmioWrite32Internal -EXPORT MmioRead64Internal -EXPORT MmioWrite64Internal - -; -; Reads an 8-bit MMIO register. -; -; Reads the 8-bit MMIO register specified by Address. The 8-bit read value is -; returned. This function must guarantee that all MMIO read and write -; operations are serialized. -; -; @param Address The MMIO register to read. -; -; @return The value read. -; -MmioRead8Internal - ldrb w0, [x0] - dmb ld - ret - -; -; Writes an 8-bit MMIO register. -; -; Writes the 8-bit MMIO register specified by Address with the value specified -; by Value and returns Value. This function must guarantee that all MMIO read -; and write operations are serialized. -; -; @param Address The MMIO register to write. -; @param Value The value to write to the MMIO register. -; -MmioWrite8Internal - dmb st - strb w1, [x0] - ret - -; -; Reads a 16-bit MMIO register. -; -; Reads the 16-bit MMIO register specified by Address. The 16-bit read value is -; returned. This function must guarantee that all MMIO read and write -; operations are serialized. -; -; @param Address The MMIO register to read. -; -; @return The value read. -; -MmioRead16Internal - ldrh w0, [x0] - dmb ld - ret - -; -; Writes a 16-bit MMIO register. -; -; Writes the 16-bit MMIO register specified by Address with the value specified -; by Value and returns Value. This function must guarantee that all MMIO read -; and write operations are serialized. -; -; @param Address The MMIO register to write. -; @param Value The value to write to the MMIO register. -; -MmioWrite16Internal - dmb st - strh w1, [x0] - ret - -; -; Reads a 32-bit MMIO register. -; -; Reads the 32-bit MMIO register specified by Address. The 32-bit read value is -; returned. This function must guarantee that all MMIO read and write -; operations are serialized. -; -; @param Address The MMIO register to read. -; -; @return The value read. -; -MmioRead32Internal - ldr w0, [x0] - dmb ld - ret - -; -; Writes a 32-bit MMIO register. -; -; Writes the 32-bit MMIO register specified by Address with the value specified -; by Value and returns Value. This function must guarantee that all MMIO read -; and write operations are serialized. -; -; @param Address The MMIO register to write. -; @param Value The value to write to the MMIO register. -; -MmioWrite32Internal - dmb st - str w1, [x0] - ret - -; -; Reads a 64-bit MMIO register. -; -; Reads the 64-bit MMIO register specified by Address. The 64-bit read value is -; returned. This function must guarantee that all MMIO read and write -; operations are serialized. -; -; @param Address The MMIO register to read. -; -; @return The value read. -; -MmioRead64Internal - ldr x0, [x0] - dmb ld - ret - -; -; Writes a 64-bit MMIO register. -; -; Writes the 64-bit MMIO register specified by Address with the value specified -; by Value and returns Value. This function must guarantee that all MMIO read -; and write operations are serialized. -; -; @param Address The MMIO register to write. -; @param Value The value to write to the MMIO register. -; -MmioWrite64Internal - dmb st - str x1, [x0] - ret - - END +; +; Copyright (c) 2014-2018, Linaro Limited. All rights reserved. +; +; This program and the accompanying materials are licensed and made available +; under the terms and conditions of the BSD License which accompanies this +; distribution. The full text of the license may be found at +; http:;opensource.org/licenses/bsd-license.php +; +; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +; + + +AREA IoLibMmio, CODE, READONLY + +EXPORT MmioRead8Internal +EXPORT MmioWrite8Internal +EXPORT MmioRead16Internal +EXPORT MmioWrite16Internal +EXPORT MmioRead32Internal +EXPORT MmioWrite32Internal +EXPORT MmioRead64Internal +EXPORT MmioWrite64Internal + +; +; Reads an 8-bit MMIO register. +; +; Reads the 8-bit MMIO register specified by Address. The 8-bit read value is +; returned. This function must guarantee that all MMIO read and write +; operations are serialized. +; +; @param Address The MMIO register to read. +; +; @return The value read. +; +MmioRead8Internal + ldrb w0, [x0] + dmb ld + ret + +; +; Writes an 8-bit MMIO register. +; +; Writes the 8-bit MMIO register specified by Address with the value specified +; by Value and returns Value. This function must guarantee that all MMIO read +; and write operations are serialized. +; +; @param Address The MMIO register to write. +; @param Value The value to write to the MMIO register. +; +MmioWrite8Internal + dmb st + strb w1, [x0] + ret + +; +; Reads a 16-bit MMIO register. +; +; Reads the 16-bit MMIO register specified by Address. The 16-bit read value is +; returned. This function must guarantee that all MMIO read and write +; operations are serialized. +; +; @param Address The MMIO register to read. +; +; @return The value read. +; +MmioRead16Internal + ldrh w0, [x0] + dmb ld + ret + +; +; Writes a 16-bit MMIO register. +; +; Writes the 16-bit MMIO register specified by Address with the value specified +; by Value and returns Value. This function must guarantee that all MMIO read +; and write operations are serialized. +; +; @param Address The MMIO register to write. +; @param Value The value to write to the MMIO register. +; +MmioWrite16Internal + dmb st + strh w1, [x0] + ret + +; +; Reads a 32-bit MMIO register. +; +; Reads the 32-bit MMIO register specified by Address. The 32-bit read value is +; returned. This function must guarantee that all MMIO read and write +; operations are serialized. +; +; @param Address The MMIO register to read. +; +; @return The value read. +; +MmioRead32Internal + ldr w0, [x0] + dmb ld + ret + +; +; Writes a 32-bit MMIO register. +; +; Writes the 32-bit MMIO register specified by Address with the value specified +; by Value and returns Value. This function must guarantee that all MMIO read +; and write operations are serialized. +; +; @param Address The MMIO register to write. +; @param Value The value to write to the MMIO register. +; +MmioWrite32Internal + dmb st + str w1, [x0] + ret + +; +; Reads a 64-bit MMIO register. +; +; Reads the 64-bit MMIO register specified by Address. The 64-bit read value is +; returned. This function must guarantee that all MMIO read and write +; operations are serialized. +; +; @param Address The MMIO register to read. +; +; @return The value read. +; +MmioRead64Internal + ldr x0, [x0] + dmb ld + ret + +; +; Writes a 64-bit MMIO register. +; +; Writes the 64-bit MMIO register specified by Address with the value specified +; by Value and returns Value. This function must guarantee that all MMIO read +; and write operations are serialized. +; +; @param Address The MMIO register to write. +; @param Value The value to write to the MMIO register. +; +MmioWrite64Internal + dmb st + str x1, [x0] + ret + + END