summaryrefslogtreecommitdiff
path: root/Kernel/Arch/aarch64/boot.S
AgeCommit message (Collapse)Author
2023-01-27Kernel/aarch64: Execute kernel with SP_EL1 instead of SP_EL0Timon Kruiper
Until now the kernel was always executing with SP_EL0, as this made the initial dropping to EL1 a bit easier. This commit changes this behaviour to use the corresponding SP_ELx for each exception level. To make sure that the execution of the C++ code can continue, the current stack pointer is copied into the corresponding SP_ELx just before dropping an exception level.
2023-01-24Kernel/aarch64: Add pre_init function for that sets up the CPU and MMUTimon Kruiper
This is a separate file that behaves similar to the Prekernel for x86_64, and makes sure the CPU is dropped to EL1, the MMU is enabled, and makes sure the CPU is running in high virtual memory. This code then jumps to the usual init function of the kernel.
2023-01-24Kernel/aarch64: Use relative addressing in boot.STimon Kruiper
As the kernel is now linked at high address in virtual memory, we cannot use absolute addresses as they refer to high addresses in virtual memory. At this point in the boot process we are still running with the MMU off, so we have to make sure the accesses are using physical memory addresses.
2022-10-26Kernel/aarch64: Branch to local halt function instead of C++ oneTimon Kruiper
The kernel image grew so much that it wasn't possible to jump to the C++ symbol anymore, since this generated a 'relocation truncated' error when linking.
2022-05-12Kernel: Move the aarch64 boot.S out of the Prekernel directoryTimon Kruiper
2022-04-06Kernel: Improve the aarch64 kernel source files disk layoutJames Mintram
2022-03-12Kernel: Move aarch64 Prekernel into KernelJakub V. Flasar
As there is no need for a Prekernel on aarch64, the Prekernel code was moved into Kernel itself. The functionality remains the same. SERENITY_KERNEL_AND_INITRD in run.sh specifies a kernel and an inital ramdisk to be used by the emulator. This is needed because aarch64 does not need a Prekernel and the other ones do.