thermosphere: refactor exception handlers & add stolen time/emulated ptimer logic

This commit is contained in:
TuxSH
2020-01-08 22:18:56 +00:00
parent 2f999497df
commit f19c67435a
9 changed files with 151 additions and 118 deletions

View File

@@ -64,11 +64,12 @@ void thermosphereMain(ExceptionStackFrame *frame)
DEBUG("EL2: core %u reached main!\n", currentCoreCtx->coreId);
}
setCurrentCoreActive();
// Set up exception frame: init regs to 0, set spsr, elr, etc.
memset(frame, 0, sizeof(ExceptionStackFrame));
frame->spsr_el2 = (0xF << 6) | (1 << 2) | 1; // EL1h+DAIF
frame->elr_el2 = currentCoreCtx->kernelEntrypoint;
frame->x[0] = currentCoreCtx->kernelArgument;
setCurrentCoreActive();
frame->spsr_el2 = (0xF << 6) | (1 << 2) | 1; // EL1h+DAIF
frame->elr_el2 = currentCoreCtx->kernelEntrypoint;
frame->x[0] = currentCoreCtx->kernelArgument;
frame->cntvct_el0 = GET_SYSREG(cntvct_el0);
}