/** @file Library for Phytium platform. Copyright (C) 2020, Phytium Technology Co Ltd. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include #include #include #include #include ARM_CORE_INFO mPhytiumMpCoreInfoTable[] = { { 0x0, 0x0, // Cluster 0, Core 0 // MP Core MailBox Set/Get/Clear Addresses and Clear Value (EFI_PHYSICAL_ADDRESS)0, (EFI_PHYSICAL_ADDRESS)0, (EFI_PHYSICAL_ADDRESS)0, (UINT64)0xFFFFFFFF } }; /* This function geted the current Boot Mode. This function returns the boot reason on the platform. @return Return the current Boot Mode of the platform. */ EFI_BOOT_MODE ArmPlatformGetBootMode ( VOID ) { return BOOT_WITH_FULL_CONFIGURATION; } /** Initialize controllers that must setup in the normal world. This function is called by the ArmPlatformPkg/Pei or ArmPlatformPkg/Pei/PlatformPeim in the PEI phase. @retval EFI_SUCCESS ArmPlatformInitialize() is executed successfully. **/ RETURN_STATUS ArmPlatformInitialize ( IN UINTN MpId ) { return RETURN_SUCCESS; } /** This function Inited the system (or sometimes called permanent) memory. This memory is generally represented by the DRAM. @param[in] None. @retval None. **/ VOID ArmPlatformInitializeSystemMemory ( VOID ) { // Nothing to do here } /** This function geted the information of core. @param[out] CoreCount The count of CoreInfoTable. @param[out] ArmCoreTable The pointer of CoreInfoTable. @retval EFI_SUCCESS PrePeiCoreGetMpCoreInfo() is executed successfully. **/ EFI_STATUS PrePeiCoreGetMpCoreInfo ( OUT UINTN *CoreCount, OUT ARM_CORE_INFO **ArmCoreTable ) { *CoreCount = PcdGet32 (PcdCoreCount); *ArmCoreTable = mPhytiumMpCoreInfoTable; return EFI_SUCCESS; } // // Needs to be declared in the file. Otherwise gArmMpCoreInfoPpiGuid is // undefined in the contect of PrePeiCore // EFI_GUID mArmMpCoreInfoPpiGuid = ARM_MP_CORE_INFO_PPI_GUID; ARM_MP_CORE_INFO_PPI mMpCoreInfoPpi = { PrePeiCoreGetMpCoreInfo }; EFI_PEI_PPI_DESCRIPTOR gPlatformPpiTable[] = { { EFI_PEI_PPI_DESCRIPTOR_PPI, &mArmMpCoreInfoPpiGuid, &mMpCoreInfoPpi } }; /** This function geted the information of Ppitable. @param[out] PpiListSize The size of Ppitable. @param[out] PpiList The pointer of Ppitable. @retval None. **/ VOID ArmPlatformGetPlatformPpiList ( OUT UINTN *PpiListSize, OUT EFI_PEI_PPI_DESCRIPTOR **PpiList ) { *PpiListSize = sizeof (gPlatformPpiTable); *PpiList = gPlatformPpiTable; }