EarlyConfigPeimD05.c 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /** @file
  2. *
  3. * Copyright (c) 2016, Hisilicon Limited. All rights reserved.
  4. * Copyright (c) 2016, Linaro Limited. All rights reserved.
  5. *
  6. * This program and the accompanying materials
  7. * are licensed and made available under the terms and conditions of the BSD License
  8. * which accompanies this distribution. The full text of the license may be found at
  9. * http://opensource.org/licenses/bsd-license.php
  10. *
  11. * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
  13. *
  14. **/
  15. #include <PiPei.h>
  16. #include <PlatformArch.h>
  17. #include <Uefi.h>
  18. #include <Library/ArmLib.h>
  19. #include <Library/CacheMaintenanceLib.h>
  20. #include <Library/DebugLib.h>
  21. #include <Library/IoLib.h>
  22. #include <Library/OemAddressMapLib.h>
  23. #include <Library/OemMiscLib.h>
  24. #include <Library/PcdLib.h>
  25. #include <Library/PlatformSysCtrlLib.h>
  26. VOID
  27. QResetAp (
  28. VOID
  29. )
  30. {
  31. MmioWrite64(FixedPcdGet64(PcdMailBoxAddress), 0x0);
  32. (VOID)WriteBackInvalidateDataCacheRange((VOID *) FixedPcdGet64(PcdMailBoxAddress), 8);
  33. if (!PcdGet64 (PcdTrustedFirmwareEnable)) {
  34. StartupAp();
  35. }
  36. }
  37. EFI_STATUS
  38. EFIAPI
  39. EarlyConfigEntry (
  40. IN EFI_PEI_FILE_HANDLE FileHandle,
  41. IN CONST EFI_PEI_SERVICES **PeiServices
  42. )
  43. {
  44. DEBUG((DEBUG_INFO,"SMMU CONFIG........."));
  45. (VOID)SmmuConfigForBios();
  46. DEBUG((DEBUG_INFO,"Done\n"));
  47. DEBUG((DEBUG_INFO,"AP CONFIG........."));
  48. (VOID)QResetAp();
  49. DEBUG((DEBUG_INFO,"Done\n"));
  50. DEBUG((DEBUG_INFO,"MN CONFIG........."));
  51. (VOID)MN_CONFIG();
  52. DEBUG((DEBUG_INFO,"Done\n"));
  53. return EFI_SUCCESS;
  54. }