Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/arm64/locore.S
Show First 20 Lines • Show All 139 Lines • ▼ Show 20 Lines | 1: | ||||
str x23, [x0, #BP_BOOT_EL] | str x23, [x0, #BP_BOOT_EL] | ||||
/* trace back starts here */ | /* trace back starts here */ | ||||
mov fp, #0 | mov fp, #0 | ||||
/* Branch to C code */ | /* Branch to C code */ | ||||
bl initarm | bl initarm | ||||
/* We are done with the boot params */ | /* We are done with the boot params */ | ||||
add sp, sp, #BOOTPARAMS_SIZE | add sp, sp, #BOOTPARAMS_SIZE | ||||
bl ptrauth_start | |||||
jrtc27: This could benefit from a comment about why initarm doesn't just call ptrauth_start (obvious… | |||||
bl mi_startup | bl mi_startup | ||||
/* We should not get here */ | /* We should not get here */ | ||||
brk 0 | brk 0 | ||||
.align 3 | .align 3 | ||||
.Lvirtdone: | .Lvirtdone: | ||||
.quad virtdone | .quad virtdone | ||||
▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | |||||
LENTRY(drop_to_el1) | LENTRY(drop_to_el1) | ||||
mrs x23, CurrentEL | mrs x23, CurrentEL | ||||
lsr x23, x23, #2 | lsr x23, x23, #2 | ||||
cmp x23, #0x2 | cmp x23, #0x2 | ||||
b.eq 1f | b.eq 1f | ||||
ret | ret | ||||
1: | 1: | ||||
/* Configure the Hypervisor */ | /* Configure the Hypervisor */ | ||||
mov x2, #(HCR_RW) | ldr x2, =(HCR_RW | HCR_APK | HCR_API) | ||||
msr hcr_el2, x2 | msr hcr_el2, x2 | ||||
/* Load the Virtualization Process ID Register */ | /* Load the Virtualization Process ID Register */ | ||||
mrs x2, midr_el1 | mrs x2, midr_el1 | ||||
msr vpidr_el2, x2 | msr vpidr_el2, x2 | ||||
/* Load the Virtualization Multiprocess ID Register */ | /* Load the Virtualization Multiprocess ID Register */ | ||||
mrs x2, mpidr_el1 | mrs x2, mpidr_el1 | ||||
▲ Show 20 Lines • Show All 582 Lines • Show Last 20 Lines |
This could benefit from a comment about why initarm doesn't just call ptrauth_start (obvious once you see the problem, but not if you don't...)