Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
31ece1e0
Unverified
Commit
31ece1e0
authored
6 years ago
by
Dimitris Papastamos
Committed by
GitHub
6 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #1405 from dp-arm/dp/cve_2017_5715
Fast path SMCCC_ARCH_WORKAROUND_1 calls from AArch32
parents
83685de9
2b915366
master
v2.5
v2.5-rc1
v2.5-rc0
v2.4
v2.4-rc2
v2.4-rc1
v2.4-rc0
v2.3
v2.3-rc2
v2.3-rc1
v2.3-rc0
v2.2
v2.2-rc2
v2.2-rc1
v2.2-rc0
v2.1
v2.1-rc1
v2.1-rc0
v2.0
v2.0-rc0
v1.6
v1.6-rc1
v1.6-rc0
arm_cca_v0.2
arm_cca_v0.1
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
lib/cpus/aarch64/wa_cve_2017_5715_mmu.S
+12
-11
lib/cpus/aarch64/wa_cve_2017_5715_mmu.S
with
12 additions
and
11 deletions
+12
-11
lib/cpus/aarch64/wa_cve_2017_5715_mmu.S
View file @
31ece1e0
...
...
@@ -12,10 +12,11 @@
.
globl
wa_cve_2017_5715_mmu_vbar
#define ESR_EL3_A64_SMC0 0x5e000000
#define ESR_EL3_A32_SMC0 0x4e000000
vector_base
wa_cve_2017_5715_mmu_vbar
.
macro
apply_cve_2017_5715_wa
_is_sync_exception
.
macro
apply_cve_2017_5715_wa
_is_sync_exception
_esr_el3_val
stp
x0
,
x1
,
[
sp
,
#
CTX_GPREGS_OFFSET
+
CTX_GPREG_X0
]
mrs
x1
,
sctlr_el3
/
*
Disable
MMU
*/
...
...
@@ -32,7 +33,7 @@ vector_base wa_cve_2017_5715_mmu_vbar
*/
/
*
*
Ensure
SMC
is
coming
from
A64
state
on
#
0
*
Ensure
SMC
is
coming
from
A64
/
A32
state
on
#
0
*
with
W0
=
SMCCC_ARCH_WORKAROUND_1
*
*
This
sequence
evaluates
as
:
...
...
@@ -43,7 +44,7 @@ vector_base wa_cve_2017_5715_mmu_vbar
orr
w1
,
wzr
,
#
SMCCC_ARCH_WORKAROUND_1
cmp
w0
,
w1
mrs
x0
,
esr_el3
mov_imm
w1
,
ESR_EL3_A64_SMC0
mov_imm
w1
,
\
_esr_el3_val
ccmp
w0
,
w1
,
#
0
,
eq
/
*
Static
predictor
will
predict
a
fall
through
*/
bne
1
f
...
...
@@ -104,22 +105,22 @@ vector_entry mmu_serror_sp_elx
*
---------------------------------------------------------------------
*/
vector_entry
mmu_sync_exception_aarch64
apply_cve_2017_5715_wa
_is_sync_exception
=
1
apply_cve_2017_5715_wa
_is_sync_exception
=
1
_esr_el3_val
=
ESR_EL3_A64_SMC0
b
sync_exception_aarch64
check_vector_size
mmu_sync_exception_aarch64
vector_entry
mmu_irq_aarch64
apply_cve_2017_5715_wa
_is_sync_exception
=
0
apply_cve_2017_5715_wa
_is_sync_exception
=
0
_esr_el3_val
=
ESR_EL3_A64_SMC0
b
irq_aarch64
check_vector_size
mmu_irq_aarch64
vector_entry
mmu_fiq_aarch64
apply_cve_2017_5715_wa
_is_sync_exception
=
0
apply_cve_2017_5715_wa
_is_sync_exception
=
0
_esr_el3_val
=
ESR_EL3_A64_SMC0
b
fiq_aarch64
check_vector_size
mmu_fiq_aarch64
vector_entry
mmu_serror_aarch64
apply_cve_2017_5715_wa
_is_sync_exception
=
0
apply_cve_2017_5715_wa
_is_sync_exception
=
0
_esr_el3_val
=
ESR_EL3_A64_SMC0
b
serror_aarch64
check_vector_size
mmu_serror_aarch64
...
...
@@ -128,21 +129,21 @@ vector_entry mmu_serror_aarch64
*
---------------------------------------------------------------------
*/
vector_entry
mmu_sync_exception_aarch32
apply_cve_2017_5715_wa
_is_sync_exception
=
1
apply_cve_2017_5715_wa
_is_sync_exception
=
1
_esr_el3_val
=
ESR_EL3_A32_SMC0
b
sync_exception_aarch32
check_vector_size
mmu_sync_exception_aarch32
vector_entry
mmu_irq_aarch32
apply_cve_2017_5715_wa
_is_sync_exception
=
0
apply_cve_2017_5715_wa
_is_sync_exception
=
0
_esr_el3_val
=
ESR_EL3_A32_SMC0
b
irq_aarch32
check_vector_size
mmu_irq_aarch32
vector_entry
mmu_fiq_aarch32
apply_cve_2017_5715_wa
_is_sync_exception
=
0
apply_cve_2017_5715_wa
_is_sync_exception
=
0
_esr_el3_val
=
ESR_EL3_A32_SMC0
b
fiq_aarch32
check_vector_size
mmu_fiq_aarch32
vector_entry
mmu_serror_aarch32
apply_cve_2017_5715_wa
_is_sync_exception
=
0
apply_cve_2017_5715_wa
_is_sync_exception
=
0
_esr_el3_val
=
ESR_EL3_A32_SMC0
b
serror_aarch32
check_vector_size
mmu_serror_aarch32
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help