Kernel Loader: Difference between revisions
Line 414: | Line 414: | ||
* Restores X19-X30 + SP from the memory pointed to by TPIDR_EL1. | * Restores X19-X30 + SP from the memory pointed to by TPIDR_EL1. | ||
* Returns to the saved LR stored in the context save struct. | * Returns to the saved LR stored in the context save struct. | ||
== KernelLdr_SaveRegistersToTpidrEl1 == | |||
This saves X19-X30 + SP to an input pointer, and moves the pointer into TPIDR_EL1. | |||
== KernelLdr_VerifyTpidrEl1 == | |||
This just verifies that TPIDR_EL1 is equal to an input argument, and clears it. | |||
<pre> | |||
// 9.0.0+ | |||
if (TPIDR_EL1 != input_arg) { | |||
while (1) { /* Infinite loop panic */ } | |||
} | |||
TPIDR_EL1 = 0 | |||
</pre> | |||
== KInitialPageAllocator::KInitialPageAllocator == | == KInitialPageAllocator::KInitialPageAllocator == |