0
0
mirror of https://github.com/edk2-porting/edk2-msm synced 2025-05-13 12:42:54 +00:00
Files
edk2-msm/Silicon/Qualcomm/QcomPkg/Include/Library/PlatformMemoryMapLib.h
Molly Sophia c8c03c442d !UNTESTED: sm8150: Add Mem12G option
Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
2022-11-10 12:20:21 +08:00

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_ */