Skip to content

Commit 0e003c3

Browse files
authored
platform(x86_64): initial x86_64 bringup (#216)
Depends on #219. This branch adds an initial implementation of an x86_64 platform target for mnemOS, using the [`mycelium` x86 HAL][hal]. Currently, I haven't implemented drivers for the UART, keyboard, or emb-display service (using the framebuffer as the display), so we don't have SerMux, Forth, trace-proto, or anything else interesting. However, what we *do* have is a basic bootable image with a timer, allocator, and rudimentary kernel run loop, and --- as you can see here --- it works: ![image](https://github.com/tosc-rs/mnemos/assets/2796466/8b6785cd-9a66-4735-8b03-02b8a191016f) I've also added new `just` commands for building x86_64 images and running them in QEMU for development. [hal]: https://github.com/hawkw/mycelium/tree/main/hal-x86_64
1 parent be4ccd9 commit 0e003c3

23 files changed

+1767
-23
lines changed

.cargo/config.toml

+13-1
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,16 @@ forth3 = "run --bin f3repl --release --"
99
rustflags = ["--cfg", "tokio_unstable"]
1010

1111
[target.riscv32imac-unknown-none-elf]
12-
runner = "espflash flash --monitor"
12+
runner = "espflash flash --monitor"
13+
14+
[unstable]
15+
# Enables Cargo artifact dependencies.
16+
#
17+
# This allows a crate to depend on a specific binary artifact from another
18+
# crate. This is used as part of the build process for `x86_64` targets using
19+
# `rust-osdev/bootloader`, where a target crate depends on the kernel binary
20+
# artifact from the kernel core crate and links it with the bootloader binary in
21+
# a `build.rs` script.
22+
#
23+
# See: https://doc.rust-lang.org/cargo/reference/unstable.html#artifact-dependencies
24+
bindeps = true

0 commit comments

Comments
 (0)