15 releases

Uses new Rust 2024

new 0.3.0-preview.3 Mar 11, 2026
0.3.0-preview.2 Mar 6, 2026
0.2.2-preview.6 Feb 8, 2026

#914 in Hardware support

Download history 88/week @ 2026-02-03 31/week @ 2026-02-10 78/week @ 2026-02-17 125/week @ 2026-02-24 208/week @ 2026-03-03

518 downloads per month
Used in 36 crates (22 directly)

GPL-3.0-or-later OR Apache-2…

53KB
968 lines

axhal

ArceOS hardware abstraction layer: unified APIs for platform-specific operations (CPU, platform, paging, IRQ, etc.).

Depends on axconfig, axplat, and axcpu for platform and architecture support.

License

GPL-3.0-or-later OR Apache-2.0 OR MulanPSL-2.0


lib.rs:

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 or unimplemented!(). 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.

Dependencies

~6.5–9.5MB
~147K SLoC