TianoCore EDK2 master
|
Go to the source code of this file.
Functions | |
EFI_STATUS EFIAPI | ArmConfigureMmu (IN ARM_MEMORY_REGION_DESCRIPTOR *MemoryTable, OUT VOID **TranslationTableBase OPTIONAL, OUT UINTN *TranslationTableSize OPTIONAL) |
VOID EFIAPI | ArmReplaceLiveTranslationEntry (IN UINT64 *Entry, IN UINT64 Value, IN UINT64 RegionStart, IN BOOLEAN DisableMmu) |
EFI_STATUS | ArmSetMemoryAttributes (IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN UINT64 Attributes, IN UINT64 AttributeMask) |
Copyright (c) 2015 - 2016, Linaro Ltd. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file ArmMmuLib.h.
EFI_STATUS EFIAPI ArmConfigureMmu | ( | IN ARM_MEMORY_REGION_DESCRIPTOR * | MemoryTable, |
OUT VOID **TranslationTableBase | OPTIONAL, | ||
OUT UINTN *TranslationTableSize | OPTIONAL | ||
) |
Definition at line 557 of file ArmMmuLibCore.c.
EFI_STATUS ArmSetMemoryAttributes | ( | IN EFI_PHYSICAL_ADDRESS | BaseAddress, |
IN UINT64 | Length, | ||
IN UINT64 | Attributes, | ||
IN UINT64 | AttributeMask | ||
) |
Set the requested memory permission attributes on a region of memory.
BaseAddress and Length must be aligned to EFI_PAGE_SIZE.
If Attributes contains a memory type attribute (EFI_MEMORY_UC/WC/WT/WB), the region is mapped according to this memory type, and additional memory permission attributes (EFI_MEMORY_RP/RO/XP) are taken into account as well, discarding any permission attributes that are currently set for the region. AttributeMask is ignored in this case, and must be set to 0x0.
If Attributes contains only a combination of memory permission attributes (EFI_MEMORY_RP/RO/XP), each page in the region will retain its existing memory type, even if it is not uniformly set across the region. In this case, AttributesMask may be set to a mask of permission attributes, and memory permissions omitted from this mask will not be updated for any page in the region. All attributes appearing in Attributes must appear in AttributeMask as well. (Attributes & ~AttributeMask must produce 0x0)
[in] | BaseAddress | The physical address that is the start address of a memory region. |
[in] | Length | The size in bytes of the memory region. |
[in] | Attributes | Mask of memory attributes to set. |
[in] | AttributeMask | Mask of memory attributes to take into account. |
EFI_SUCCESS | The attributes were set for the memory region. |
EFI_INVALID_PARAMETER | BaseAddress or Length is not suitably aligned. Invalid combination of Attributes and AttributeMask. |
EFI_OUT_OF_RESOURCES | Requested attributes cannot be applied due to lack of system resources. |
Definition at line 506 of file ArmMmuLibCore.c.