bootloader
bootloader copied to clipboard
Mirror of https://gitlab.redox-os.org/redox-os/bootloader
Bootloader
Redox OS Bootloader
Requirements
These software needs to be available on the PATH at build time:
Building
make TARGET=<triplet> BUILD=build all
The <triplet> is one of:
| ARCH | Boot Mode | Triplets |
|---|---|---|
i686 |
BIOS | x86-unknown-none |
x86_64 |
BIOS | x86-unknown-none |
x86_64 |
UEFI | x86_64-unknown-uefi |
aarch64 |
UEFI | aarch64-unknown-uefi |
riscv64gc |
UEFI | riscv64gc-unknown-uefi |
See mk directory for more information of how the build is working.
Entry points
Please read Boot Process in the Redox OS Book for an introductory guide.
In this source code, some interesting files for entry points are:
- BIOS boot stages: asm/x86-unknown-none/bootloader.asm
- BIOS boot entry:
fn startat src/os/bios/mod.rs - UEFI boot entry:
fn mainat src/os/uefi/mod.rs - Common boot process:
fn mainat src/main.rs - UEFI kernel entry:
fn kernel_entryin each arch:x86_64: src/os/uefi/arch/x86_64.rsaarch64: src/os/uefi/arch/aarch64.rsriscv64gc: src/os/uefi/arch/riscv64/mod.rs
Debugging
QEMU
make TARGET=<triplet> BUILD=build qemu
How To Contribute
To learn how to contribute to this system component you need to read the following document:
Development
To learn how to do development with this system component inside the Redox build system you need to read the Build System and Coding and Building pages.