Expand description
ArceOS hardware abstraction layer, provides unified APIs for platform-specific operations.
It does the bootstrapping and initialization process for the specified platform, and provides useful operations on the hardware.
Currently supported platforms (specify by cargo features):
x86-pc: Standard PC with x86_64 ISA.riscv64-qemu-virt: QEMU virt machine with RISC-V ISA.aarch64-qemu-virt: QEMU virt machine with AArch64 ISA.aarch64-raspi: Raspberry Pi with AArch64 ISA.dummy: If none of the above platform is selected, the dummy platform will be used. In this platform, most of the operations are no-op orunimplemented!(). This platform is mainly used for cargo test.
§Cargo Features
smp: Enable SMP (symmetric multiprocessing) support.fp-simd: Enable floating-point and SIMD support.paging: Enable page table manipulation.irq: Enable interrupt handling support.tls: Enable kernel space thread-local storage support.rtc: Enable real-time clock support.uspace: Enable user space support.
Modules§
- asm
- Wrapper functions for assembly instructions.
- console
- Console input and output.
- context
- CPU register states for context switching.
- dtb
- DTB (Device Tree Blob) related functionality.
- mem
- Physical memory management.
- percpu
- CPU-local data structures.
- power
- CPU power management.
- time
- Time-related operations.
- trap
- Trap handling.
Functions§
- init_
early - Initializes the platform and boot argument. This function should be called as early as possible.
- init_
later - Initializes the platform at the later stage for the primary core.