mirror of
https://github.com/edk2-porting/edk2-msm
synced 2025-05-13 12:42:54 +00:00
65 lines
2.6 KiB
C
65 lines
2.6 KiB
C
#ifndef _PLATFORM_MEMORY_MAP_LIB_H_
|
|
#define _PLATFORM_MEMORY_MAP_LIB_H_
|
|
|
|
#include <PiPei.h>
|
|
|
|
#include <Library/ArmLib.h>
|
|
#include <Library/HobLib.h>
|
|
#include <Library/MemoryAllocationLib.h>
|
|
|
|
#define MAX_ARM_MEMORY_REGION_DESCRIPTOR_COUNT 128
|
|
|
|
/* Below flag is used for system memory */
|
|
#define SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES \
|
|
EFI_RESOURCE_ATTRIBUTE_PRESENT | EFI_RESOURCE_ATTRIBUTE_INITIALIZED | \
|
|
EFI_RESOURCE_ATTRIBUTE_TESTED | EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE | \
|
|
EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE | \
|
|
EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE | \
|
|
EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE | \
|
|
EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTABLE
|
|
|
|
typedef enum { NoHob, AddMem, AddDev, HobOnlyNoCacheSetting,
|
|
Mem4G, Mem6G, Mem8G, Mem10G, Mem12G, MaxMem } DeviceMemoryAddHob;
|
|
|
|
#define MEMORY_REGION_NAME_MAX_LENGTH 32
|
|
|
|
typedef struct {
|
|
CHAR8 Name[MEMORY_REGION_NAME_MAX_LENGTH];
|
|
EFI_PHYSICAL_ADDRESS Address;
|
|
UINT64 Length;
|
|
DeviceMemoryAddHob HobOption;
|
|
EFI_RESOURCE_TYPE ResourceType;
|
|
EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
|
|
EFI_MEMORY_TYPE MemoryType;
|
|
ARM_MEMORY_REGION_ATTRIBUTES ArmAttributes;
|
|
} ARM_MEMORY_REGION_DESCRIPTOR_EX, *PARM_MEMORY_REGION_DESCRIPTOR_EX;
|
|
|
|
#define MEM_RES EFI_RESOURCE_MEMORY_RESERVED
|
|
#define MMAP_IO EFI_RESOURCE_MEMORY_MAPPED_IO
|
|
#define SYS_MEM EFI_RESOURCE_SYSTEM_MEMORY
|
|
|
|
#define SYS_MEM_CAP SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES
|
|
#define INITIALIZED EFI_RESOURCE_ATTRIBUTE_INITIALIZED
|
|
#define WRITE_COMBINEABLE EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE
|
|
#define UNCACHEABLE EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE
|
|
|
|
#define Reserv EfiReservedMemoryType
|
|
#define Conv EfiConventionalMemory
|
|
#define BsData EfiBootServicesData
|
|
#define BsCode EfiBootServicesCode
|
|
#define RtData EfiRuntimeServicesData
|
|
#define RtCode EfiRuntimeServicesCode
|
|
#define MmIO EfiMemoryMappedIO
|
|
|
|
#define NS_DEVICE ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_DEVICE
|
|
#define DEVICE ARM_MEMORY_REGION_ATTRIBUTE_DEVICE
|
|
#define WRITE_THROUGH ARM_MEMORY_REGION_ATTRIBUTE_WRITE_THROUGH
|
|
#define WRITE_THROUGH_XN ARM_MEMORY_REGION_ATTRIBUTE_WRITE_THROUGH
|
|
#define WRITE_BACK ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK
|
|
#define WRITE_BACK_XN ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK
|
|
#define UNCACHED_UNBUFFERED ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED
|
|
#define UNCACHED_UNBUFFERED_XN ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED
|
|
|
|
ARM_MEMORY_REGION_DESCRIPTOR_EX* GetPlatformMemoryMap();
|
|
|
|
#endif /* _PLATFORM_MEMORY_MAP_LIB_H_ */ |