1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-08 20:27:35 +00:00
serenity/Kernel/Arch/aarch64
Daniel Bertalan 81dd29f713 Kernel/aarch64: Support reading the command line via the RPi Mailbox
This reuses the existing `RPi::Mailbox` interface to read the command
line via a VideoCore-specific mailbox message. This will have to be
replaced if that interface starts being smarter, as this is needed very
early, and nothing guarantees that a smarter Mailbox interface wouldn't
need to allocate or log, which is a no-no during early boot.

As the response string can be arbitrarily long, it's the caller's job to
provide a long enough buffer for `Mailbox::query_kernel_command_line`.
This commit chose 512 bytes, as it provides a large enough headroom over
the 150-200 characters implicitly added by the VC firmware.

The portable way would be to parse the `/chosen/bootargs` property of
the device tree, but we currently lack the scaffolding for doing that.

Support for this in QEMU relies on a patch that has not yet been
accepted upstream, but is available via our `Toolchain/BuildQEMU.sh`
script. It should, however, work on bare metal.

Tested-By: Timon Kruiper <timonkruiper@gmail.com>
2023-04-29 08:24:18 +02:00
..
RPi Kernel/aarch64: Support reading the command line via the RPi Mailbox 2023-04-29 08:24:18 +02:00
ASM_wrapper.h Kernel/aarch64: Add volatile modifier to various asm statements 2023-04-13 20:22:08 +02:00
boot.S
BootPPMParser.cpp
BootPPMParser.h
CPU.h
CPUID.cpp
CPUID.h Revert "Kernel: Migrate ‘main id registerʼ access in Aarch64 MMIO" 2023-02-17 11:29:33 -07:00
CurrentTime.cpp
Dummy.cpp Kernel: Merge x86_64 and aarch64 init.cpp files 2023-04-03 20:01:28 -06:00
Exceptions.cpp Kernel/aarch64: Disable memory access alignment check 2023-02-18 19:17:21 +01:00
InterruptManagement.cpp
InterruptManagement.h
Interrupts.cpp Kernel/aarch64: Fix build after is_sharing_with_others API removal 2023-04-28 15:00:06 +02:00
IRQController.h
kprintf.cpp
linker.ld Revert "Kernel/aarch64: Embed disk image into kernel binary" 2023-03-25 16:50:36 +00:00
MainIdRegister.cpp
MainIdRegister.h
mcontext.h Kernel+LibC: Modify aarch64's __mcontext to store registers in an array 2023-04-06 21:19:58 +03:00
MMU.cpp
PageDirectory.cpp Kernel/aarch64: Flush entire TLB cache when changing TTBR0_EL1 2023-04-06 21:19:58 +03:00
PageDirectory.h Kernel: Store a pointer to the owner process in PageDirectory 2023-04-06 20:30:03 +03:00
Panic.cpp
pre_init.cpp
Processor.cpp Kernel/aarch64: Flush entire TLB cache when changing TTBR0_EL1 2023-04-06 21:19:58 +03:00
Processor.h Kernel/aarch64: Add implementation of Processor::for_each 2023-04-13 20:24:25 +02:00
Registers.h Kernel/aarch64: Add volatile modifier to various asm statements 2023-04-13 20:22:08 +02:00
RegisterState.h Kernel/aarch64: Add getters/setters in RegisterState and ThreadRegisters 2023-04-06 21:19:58 +03:00
SafeMem.cpp
SerenityLogoRGB.ppm
SmapDisabler.cpp
ThreadRegisters.h Kernel/aarch64: Add getters/setters in RegisterState and ThreadRegisters 2023-04-06 21:19:58 +03:00
TrapFrame.cpp Kernel: Call exit_trap in AArch64 restore_context_and_eret 2023-04-03 02:59:37 -06:00
TrapFrame.h Kernel: Implement Processor::assume_context for AArch64 2023-04-03 02:59:37 -06:00
vector_table.S Kernel: Call exit_trap in AArch64 restore_context_and_eret 2023-04-03 02:59:37 -06:00