EarlyConfigPeimD05.c 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /** @file
  2. *
  3. * Copyright (c) 2016, Hisilicon Limited. All rights reserved.
  4. * Copyright (c) 2016, Linaro Limited. All rights reserved.
  5. *
  6. * SPDX-License-Identifier: BSD-2-Clause-Patent
  7. *
  8. **/
  9. #include <PiPei.h>
  10. #include <PlatformArch.h>
  11. #include <Uefi.h>
  12. #include <Library/ArmLib.h>
  13. #include <Library/CacheMaintenanceLib.h>
  14. #include <Library/DebugLib.h>
  15. #include <Library/IoLib.h>
  16. #include <Library/OemAddressMapLib.h>
  17. #include <Library/OemMiscLib.h>
  18. #include <Library/PcdLib.h>
  19. #include <Library/PlatformSysCtrlLib.h>
  20. VOID
  21. QResetAp (
  22. VOID
  23. )
  24. {
  25. MmioWrite64(FixedPcdGet64(PcdMailBoxAddress), 0x0);
  26. (VOID)WriteBackInvalidateDataCacheRange((VOID *) FixedPcdGet64(PcdMailBoxAddress), 8);
  27. if (!PcdGet64 (PcdTrustedFirmwareEnable)) {
  28. StartUpBSP ();
  29. }
  30. }
  31. EFI_STATUS
  32. EFIAPI
  33. EarlyConfigEntry (
  34. IN EFI_PEI_FILE_HANDLE FileHandle,
  35. IN CONST EFI_PEI_SERVICES **PeiServices
  36. )
  37. {
  38. DEBUG((DEBUG_INFO,"SMMU CONFIG........."));
  39. (VOID)SmmuConfigForBios();
  40. DEBUG((DEBUG_INFO,"Done\n"));
  41. DEBUG((DEBUG_INFO,"AP CONFIG........."));
  42. (VOID)QResetAp();
  43. DEBUG((DEBUG_INFO,"Done\n"));
  44. DEBUG((DEBUG_INFO,"MN CONFIG........."));
  45. (VOID)MN_CONFIG();
  46. DEBUG((DEBUG_INFO,"Done\n"));
  47. return EFI_SUCCESS;
  48. }