blob: 62456a572530bd3c9c0d1bbe7f56ee9377f21c0c [file] [log] [blame]
/** @file
Platform PEI module include file.
Copyright (c) 2024 Loongson Technology Corporation Limited. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef PLATFORM_H_
#define PLATFORM_H_
#include <IndustryStandard/E820.h>
typedef struct {
UINT64 BaseAddr;
UINT64 Length;
UINT32 Type;
UINT32 Reserved;
} MEMMAP_ENTRY;
/**
Create memory range hand off block.
@param MemoryBase memory base address.
@param MemoryLimit memory length.
@return VOID
**/
VOID
AddMemoryRangeHob (
EFI_PHYSICAL_ADDRESS MemoryBase,
EFI_PHYSICAL_ADDRESS MemoryLimit
);
/**
Publish PEI core memory
@return EFI_SUCCESS The PEIM initialized successfully.
**/
EFI_STATUS
PublishPeiMemory (
VOID
);
/**
Publish system RAM and reserve memory regions
@return VOID
**/
VOID
InitializeRamRegions (
VOID
);
/**
Publish PEI & DXE (Decompressed) Memory based FVs to let PEI
and DXE know about them.
@retval EFI_SUCCESS Platform PEI FVs were initialized successfully.
**/
EFI_STATUS
PeiFvInitialization (
VOID
);
/**
Gets the Virtual Memory Map of corresponding platforms.
This Virtual Memory Map is used by initialize the MMU on corresponding
platforms.
@param[out] MemoryTable Array of EFI_MEMORY_DESCRIPTOR
describing a Physical-to-Virtual Memory
mapping. This array must be ended by a
zero-filled entry. The allocated memory
will not be freed.
**/
VOID
EFIAPI
GetMemoryMapPolicy (
OUT EFI_MEMORY_DESCRIPTOR **MemoryTable
);
#endif // PLATFORM_H_