summaryrefslogtreecommitdiffstats
path: root/ArmPkg/Library/ArmSmcPsciResetSystemLib/Arm/Reset.asm
blob: fa4fbd0e07f09277290cea911413c7fc69e480fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
;/** @file
;  ResetSystemLib implementation using PSCI calls
;
;  Copyright (c) 2018, Linaro Ltd. All rights reserved.<BR>
;
;  This program and the accompanying materials
;  are licensed and made available under the terms and conditions of the BSD License
;  which accompanies this distribution. The full text of the license may be found at
;  http://opensource.org/licenses/bsd-license.php
;
;  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
;  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
;
;**/

  INCLUDE AsmMacroExport.inc
  PRESERVE8

  IMPORT ArmDisableMmu

RVCT_ASM_EXPORT DisableMmuAndReenterPei
  push  {lr}

  bl    ArmDisableMmu

  ; no memory accesses after MMU and caches have been disabled

  mov32 r0, FixedPcdGet64 (PcdFvBaseAddress)
  blx   r0

  ; never returns
  nop

  END