2 <:copyright-BRCM:2019:DUAL/GPL:standard
4 Copyright (c) 2019 Broadcom
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License, version 2, as published by
9 the Free Software Foundation (the "GPL").
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
17 A copy of the GPL is available at http://www.broadcom.com/licenses/GPLv2.php, or by
18 writing to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA.
23 #if defined(SPD_opteed)
24 #include <asm_macros.S>
26 .global save_atf_sysreg
27 .global restore_atf_sysreg
30 mrc p15, 0, \reg, c1, c0, 0
33 .macro write_sctlr reg
34 mcr p15, 0, \reg, c1, c0, 0
38 mrc p15, 0, \reg, c1, c1, 0
42 mcr p15, 0, \reg, c1, c1, 0
45 .macro write_ttbr0 reg
46 mcr p15, 0, \reg, c2, c0, 0
50 mrc p15, 0, \reg, c2, c0, 0
53 .macro write_ttbr1 reg
54 mcr p15, 0, \reg, c2, c0, 1
58 mrc p15, 0, \reg, c2, c0, 1
61 .macro write_ttbcr reg
62 mcr p15, 0, \reg, c2, c0, 2
66 mrc p15, 0, \reg, c2, c0, 2
70 mcr p15, 0, \reg, c3, c0, 0
74 mrc p15, 0, \reg, c3, c0, 0
78 mrc p15, 0, \reg, c12, c0, 0
82 mcr p15, 0, \reg, c12, c0, 0
85 .macro write_mvbar reg
86 mcr p15, 0, \reg, c12, c0, 1
90 mrc p15, 0, \reg, c12, c0, 1
93 .macro write_mair0 reg
94 mcr p15, 0, \reg, c10, c2, 0
98 mrc p15, 0, \reg, c10, c2, 0
101 .macro write_mair1 reg
102 mcr p15, 0, \reg, c10, c2, 1
105 .macro read_mair1 reg
106 mrc p15, 0, \reg, c10, c2, 1
113 .macro write_cpsr reg
117 .macro invalidate_tlb reg
119 mcr p15, 0, \reg, c8, c5, 0
120 mcr p15, 0, \reg, c8, c6, 0
121 mcr p15, 0, \reg, c8, c7, 0
132 mrc p15, 0, r1, c0, c0, 5
175 endfunc save_atf_sysreg
181 func restore_atf_sysreg
184 mrc p15, 0, r1, c0, c0, 5
229 endfunc restore_atf_sysreg