forked from koniifer/ableos
get ableOS running proper on limine sans graphics
This commit is contained in:
parent
6e20d33817
commit
1e1d004240
4
Cargo.lock
generated
4
Cargo.lock
generated
|
@ -344,9 +344,9 @@ source = "git+https://git.ablecorp.us/able/libwasm.git#4ffcd290f8bc918ca4adf5e23
|
|||
|
||||
[[package]]
|
||||
name = "limine"
|
||||
version = "0.1.8"
|
||||
version = "0.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "eac64618e505bab2387986e5b1014f5d344130d609685bbd8b71a10af3ee599d"
|
||||
checksum = "c847ac148a0c53ba3755dfa9830722b1043179584009869e6afc2b413e13f105"
|
||||
|
||||
[[package]]
|
||||
name = "linked_list_allocator"
|
||||
|
|
|
@ -108,7 +108,8 @@ git = "https://git.ablecorp.us:443/able/externc-libm.git"
|
|||
riscv = "*"
|
||||
|
||||
[target.'cfg(target_arch = "x86_64")'.dependencies]
|
||||
limine = "0.1"
|
||||
limine = "0.1.9"
|
||||
|
||||
cpuio = { git = "https://git.ablecorp.us/ondra05/cpuio.git" }
|
||||
pic8259 = "0.10.1"
|
||||
uart_16550 = "0.2.0"
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
use limine::{LimineMemmapResponse, LimineMemoryMapEntryType};
|
||||
use x86_64::{
|
||||
structures::paging::{
|
||||
FrameAllocator, FrameDeallocator, OffsetPageTable, PageTable, PhysFrame,
|
||||
Size4KiB,
|
||||
FrameAllocator, FrameDeallocator, OffsetPageTable, PageTable, PhysFrame, Size4KiB,
|
||||
},
|
||||
PhysAddr, VirtAddr,
|
||||
};
|
||||
|
@ -39,7 +38,9 @@ impl BootInfoFrameAllocator {
|
|||
}
|
||||
|
||||
fn usable_frames(&self) -> impl Iterator<Item = PhysFrame> {
|
||||
self.memory_map.mmap().unwrap().iter()
|
||||
self.memory_map
|
||||
.memmap()
|
||||
.iter()
|
||||
.filter(|r| r.typ == LimineMemoryMapEntryType::Usable)
|
||||
.map(|r| r.base..r.base + r.len)
|
||||
.flat_map(|r| r.step_by(4096))
|
||||
|
|
|
@ -18,7 +18,7 @@ use crate::serial_println;
|
|||
use self::drivers::allocator;
|
||||
|
||||
static HHDM: LimineHhdmRequest = LimineHhdmRequest::new(0);
|
||||
static MMAP: LimineMmapRequest = LimineMmapRequest::new(0);
|
||||
static MMAP: LimineMemmapRequest = LimineMemmapRequest::new(0);
|
||||
|
||||
#[no_mangle]
|
||||
pub fn x86_64_start() -> ! {
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
*/
|
||||
|
||||
#![allow(clippy::empty_loop)]
|
||||
|
||||
use core::sync::atomic::AtomicU64;
|
||||
|
||||
use crate::arch::memory::BootInfoFrameAllocator;
|
||||
|
@ -16,6 +15,7 @@ use crate::{boot_conf::KernelConfig, scratchpad, systeminfo::RELEASE_TYPE};
|
|||
// use crate::{boot_conf::KernelConfig, scratchpad, systeminfo::RELEASE_TYPE, TERM};
|
||||
use crate::{filesystem, hardware};
|
||||
use kernel::KERNEL_VERSION;
|
||||
use limine::LimineTerminalRequest;
|
||||
use spin::Lazy;
|
||||
|
||||
// FIXME: platform agnostic paging stuff
|
||||
|
@ -24,6 +24,7 @@ use x86_64::structures::paging::{Mapper, Size4KiB};
|
|||
// TODO: Change this structure to allow for multiple cores loaded
|
||||
pub static KERNEL_CONF: Lazy<KernelConfig> = Lazy::new(KernelConfig::new);
|
||||
|
||||
static TERMINAL_REQUEST: LimineTerminalRequest = LimineTerminalRequest::new(0);
|
||||
/// The main entry point of the kernel
|
||||
pub fn kernel_main(
|
||||
mut mapper: impl Mapper<Size4KiB>,
|
||||
|
@ -31,6 +32,7 @@ pub fn kernel_main(
|
|||
) -> ! {
|
||||
init::init();
|
||||
|
||||
// panic!();
|
||||
// /*
|
||||
if KERNEL_CONF.logging.enabled {
|
||||
log::set_max_level(KERNEL_CONF.log_level());
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#![feature(custom_test_frameworks)]
|
||||
#![reexport_test_harness_main = "test_main"]
|
||||
#![test_runner(crate::test_runner)]
|
||||
// #![feature(llvm_asm)]
|
||||
|
||||
#[macro_use]
|
||||
pub extern crate log;
|
||||
|
|
Loading…
Reference in a new issue