|
@@ -524,8 +524,19 @@ CPU_LE( movk x0, #0x30d0, lsl #16 ) // Clear EE and E0E on LE systems
|
|
|
mov x0, #0x33ff
|
|
|
msr cptr_el2, x0 // Disable copro. traps to EL2
|
|
|
|
|
|
+ /* SVE register access */
|
|
|
+ mrs x1, id_aa64pfr0_el1
|
|
|
+ ubfx x1, x1, #ID_AA64PFR0_SVE_SHIFT, #4
|
|
|
+ cbz x1, 7f
|
|
|
+
|
|
|
+ bic x0, x0, #CPTR_EL2_TZ // Also disable SVE traps
|
|
|
+ msr cptr_el2, x0 // Disable copro. traps to EL2
|
|
|
+ isb
|
|
|
+ mov x1, #ZCR_ELx_LEN_MASK // SVE: Enable full vector
|
|
|
+ msr_s SYS_ZCR_EL2, x1 // length for EL1.
|
|
|
+
|
|
|
/* Hypervisor stub */
|
|
|
- adr_l x0, __hyp_stub_vectors
|
|
|
+7: adr_l x0, __hyp_stub_vectors
|
|
|
msr vbar_el2, x0
|
|
|
|
|
|
/* spsr */
|