Skip to content
  • Colin Finck's avatar
    The first real AArch64 bringup commit for HermitCore-rs · a9671ff5
    Colin Finck authored
    * Split the CMake files into an architecture-independent and an architecture-dependent part.
      This overhaul of the build system also removes the custom "module system", which doesn't make much sense for a Rust kernel and doesn't work well with such a split configuration.
    * Add an aarch64-unknown-hermit-kernel.json target for Xargo.
    * Implement basic IRQ and serial port functions for AArch64 to get a first output.
    * Copy the 4-level paging from x86_64 to AArch64 and remove the parts relying on the "x86" crate.
      While this still needs some work to get the names and flags right, 4-level paging should generally work on AArch64 with the same concepts that are used for x86_64.
    * Comment out and stub out many functions for AArch64 to let is somewhat compile.
    * Redefine core_id as a CPU number that is guaranteed to be sequential to make it architecture-independent.
      For x86_64, this number is now translated to a Local APIC ID in the "apic" module only.
    * Add a per-architecture TaskStacks structure, which contains "stack" and "ist" on x86_64 and only "stack" on AArch64.
    * Add a per-architecture network_adapter_init function to initialize RTL8139 only for x86_64.
    * Get rid of the top-level "arch" directory and put the reasonable architecture-dependent include files into /include/hermit/<ARCH>, all prefixed with "arch_".
    * Make the inclusion of some crates dependent on the target architecture.
    * Rename get_number_of_processors to get_processor_count and make it return a usize.
    a9671ff5
This project manages its dependencies using Cargo. Learn more