History log of /haiku/src/system/boot/platform/efi/arch/arm64/arch_start.cpp
Revision Date Author Comments
# b965b55d 12-Mar-2023 Alexander von Gluck IV <kallisti5@unixzen.com>

efi/serial: re-init serial after efi detatchment

* This prevents haiku from "messing" with the gUART until
EFI boot services are exiting.
* The previous design meant that our loader started fiddling
with the gUART while EFI BIOS services were still being
used. On the SiFive, this broke serial output.
* Now, we guard on serial_init if EFI is unavailable, and
only fallback to direct UART usage when EFI is no longer
available.
* tldr; we're more closely managing serial across architectures
* serial_init use EFI and init it
* kernel_serial_handoff, stop using EFI
* serial_init, oh no EFI. Use gUART and Init it
* one gap is likely if no serial is available in EFI, but I
haven't seen that yet.

Change-Id: I644b51e4912272110435d288a95517d43a76740d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6200
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>


# 81a892ed 04-Jan-2023 Alexander von Gluck IV <kallisti5@unixzen.com>

efi/serial: Refactor EFI bios serial services

* Convert x86 direct port I/O to our standard gUART.
* sSerial is plainly EFI Serial or EFI Stdout
* gUART is plainly hardware serial now

Change-Id: I5730fbc0ce3427851e4e2d1d0aa8c55f7765e444
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5982
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# a3c9f71e 25-Sep-2022 David Karoly <karolyd577@gmail.com>

boot/efi: factor out generic mmu functions

This change moves the common functions related to EFI memory map
to arch/generic for arm, arm64, x86.

riscv64 and x86_64 shall be handled separately as they use some
more architecture-specific logic:
* riscv64 needs special treatment for the M-mode resident code
located at 0x80000000 which is reported as available in the
EFI memory map provided by u-boot.
* x86_64 has a slightly different logic for building the
memory regions list so some additional rework and testing will be
needed before it can be unified with the generic mmu functions.

Change-Id: I430c84dfc693c5b6f04c170dec8ffb1db2c2ace1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5694
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 84bd9b4a 23-Sep-2022 David Karoly <karolyd577@gmail.com>

boot/efi/arm64/mmu: convert TRACE to use new syntax

Change-Id: Ib25cee9e7ea37a68d0d432db8b99eb419e453e7f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5689
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: David Karoly <karolyd577@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 4561a199 16-Jul-2022 David Karoly <karolyd577@gmail.com>

arm64: Wire up FDT

Change-Id: Ib6f60e6d703e9413eb4cef3ec77686cfd71f8e73
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5478
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# a25542e7 28-Apr-2022 milek7 <me@milek7.pl>

arm64: MMU WIP.

Change-Id: I19b2b9617fcb7bc047f9bea156801ec78786532e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5261
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 84174204 27-Mar-2022 milek7 <me@milek7.pl>

arm64: Do not misalign kernel stack.

AAPCS64 requires stack to be aligned to 16 bytes.
Additionally alignment might be enforced by hardware for every sp-relative
access depending on configuration in SCTLR.

Change-Id: Idd4756dd19386eb491d926b8a9862fa7fa48e506
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5259
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 955acf7e 03-Apr-2022 urnenfeld <oliver.ruiz.dorantes@gmail.com>

arm64: Disable Cache & MMU before reconfiguring MMU while being in EL1

* Final clean up of Exception Level Handling
* Enable legacy console

Change-Id: If19134a237fd0373c427b82a69f1ce61abe82f4d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5176
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: David Karoly <karolyd577@gmail.com>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>


# c1c3f981 16-Mar-2022 urnenfeld <oliver.ruiz.dorantes@gmail.com>

boot/efi/arm64: Rework exception level handling

* Deal additionally with EL1 context
* Reuse possible present TTBRx allocations
* Dump MMU & System Control Registers

Change-Id: If27531f3c9d3fa096da11e8a7d46dd7d82a90e33
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5108
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: David Karoly <karolyd577@gmail.com>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>


# fdb45913 29-Jan-2022 David Karoly <karolyd577@gmail.com>

boot/efi/x86: implement SMP detection and bootup

* move common SMP initialization code to x86/arch_smp.cpp

* factor out arch-specific SMP initialization to
arch_smp_32.cpp resp arch_smp_64.cpp

* implement smp_trampoline for x86 32-bit EFI loader

* rename SMP trampoline for x86_64 to long_smp_trampoline

* add new argument virtKernelArgs to arch_smp_boot_other_cpus
as the kernel args are not identity mapped on 32-bit architectures

Change-Id: I30d0bb1fa9bfb08f6784a2af34eb83d6b64afa57
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4869
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>


# f9412d9f 26-Jan-2022 urnenfeld <oliver.ruiz.dorantes@gmail.com>

boot: ARM64 EFI port

* MMU mapping
* EL2 to EL1 transition (FreeBSD/Jaroslaw Pelczar)
* Initial implementation for cache cleaning and TLB invalidations (ARM)
* Processor Helper functions
* Additional Logging in boot process

Change-Id: Idcee93583418a3c3528c5d9586d3add487f9d5ca
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4888
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 20c08874 28-Jan-2022 David Karoly <karolyd577@gmail.com>

boot/efi/arm64: implement arch_convert_kernel_args()

Empty function for now as no arch-specific calls to
fix_address() needed on arm64.

Change-Id: Ifef100c132eac29a2b763e06bf1efd695b284851
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4894
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 817c6ca4 21-Dec-2020 Alexander von Gluck IV <kallisti5@unixzen.com>

efi/arm64: Fill in some arm64 arch stuff

Change-Id: I55eeba828f523f7358c25134bd5284eeefcf5ce7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3544
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>