1
0
Fork 0
forked from koniifer/ableos

Work done on adding board support packages

This commit is contained in:
Able 2021-11-27 14:59:29 -06:00
parent bcc6a10763
commit 40f55d922d
7 changed files with 73 additions and 20 deletions

View file

@ -1,7 +1,4 @@
use alloc::alloc::{GlobalAlloc, Layout};
mod aalloc; mod aalloc;
// use dummy::Dummy;
pub const HEAP_START: usize = 0x_4444_4444_0000; pub const HEAP_START: usize = 0x_4444_4444_0000;
/// 131072 bytes /// 131072 bytes

View file

@ -0,0 +1,64 @@
OUTPUT_ARCH(riscv64gc)
ENTRY(_boot);
SECTIONS {
. = 0x80200000;
.text : {
PROVIDE(__text_start = .);
PROVIDE(KERNEL_START = .);
*(.init.boot)
*(.init.rust)
*(.text .text.*)
. = ALIGN(4K);
PROVIDE(__text_end = .);
}
.data : {
PROVIDE(__data_start = .);
*(.data .data.* .rodata .rodata.*)
. = ALIGN(8);
PROVIDE(__tmp_stack_bottom = .);
. += 1024 * 1024 * 4;
PROVIDE(__tmp_stack_top = .);
. += 4096;
PROVIDE(__scratch_stack = .);
. = ALIGN(8);
}
. = ALIGN(8);
.sdata : {
PROVIDE(__global_pointer$ = .);
*(.sdata .sdata.*)
. = ALIGN(4K);
PROVIDE(__data_end = .);
}
PROVIDE(__bss_start = .);
.sbss : {
*(.sbss .sbss.*);
}
.bss : {
*(.bss .bss.*)
}
. = ALIGN(4K);
PROVIDE(__bss_end = .);
.tdata : {
. = ALIGN(4K);
PROVIDE(__tdata_start = .);
*(.tdata .tdata.*)
. = ALIGN(4K);
PROVIDE(__tdata_end = .);
}
. = ALIGN(2M);
PROVIDE(KERNEL_END = .);
/DISCARD/ : { *(.eh_frame_hdr .eh_frame) }
}

View file

@ -8,8 +8,6 @@ pub const PIC_2_OFFSET: u8 = PIC_1_OFFSET + 8;
pub static PICS: spin::Mutex<ChainedPics> = pub static PICS: spin::Mutex<ChainedPics> =
spin::Mutex::new(unsafe { ChainedPics::new(PIC_1_OFFSET, PIC_2_OFFSET) }); spin::Mutex::new(unsafe { ChainedPics::new(PIC_1_OFFSET, PIC_2_OFFSET) });
use crate::arch::sloop;
use x86_64::structures::idt::PageFaultErrorCode;
/// Interrupt offsets. /// Interrupt offsets.
#[derive(Debug, Clone, Copy)] #[derive(Debug, Clone, Copy)]
#[repr(u8)] #[repr(u8)]
@ -99,6 +97,8 @@ extern "x86-interrupt" fn keyboard_interrupt_handler(_stack_frame: InterruptStac
.notify_end_of_interrupt(InterruptIndex::Keyboard.as_u8()); .notify_end_of_interrupt(InterruptIndex::Keyboard.as_u8());
} }
} }
/*
extern "x86-interrupt" fn page_fault_handler( extern "x86-interrupt" fn page_fault_handler(
stack_frame: InterruptStackFrame, stack_frame: InterruptStackFrame,
error_code: PageFaultErrorCode, error_code: PageFaultErrorCode,
@ -110,3 +110,4 @@ extern "x86-interrupt" fn page_fault_handler(
println!["{:#?}", stack_frame]; println!["{:#?}", stack_frame];
sloop(); sloop();
} }
*/

View file

@ -4,7 +4,7 @@ use crate::{
driver_traits::graphics::Graphics, driver_traits::graphics::Graphics,
experiments::systeminfo::{KERNEL_VERSION, RELEASE_TYPE}, experiments::systeminfo::{KERNEL_VERSION, RELEASE_TYPE},
keyboard::DecodedKey, keyboard::DecodedKey,
relib::math::rand::{RAND_HANDLE, RNG}, relib::math::rand::RAND_HANDLE,
}; };
use lazy_static::lazy_static; use lazy_static::lazy_static;

View file

@ -36,4 +36,6 @@ pub mod kmain;
pub mod log; pub mod log;
pub mod panic; pub mod panic;
pub mod relib; pub mod relib;
pub mod wasm;
extern crate alloc; extern crate alloc;

View file

@ -6,23 +6,11 @@ pub trait Log {
} }
use crate::serial_print; use crate::serial_print;
use lliw::{Bg, Fg, Reset, Style}; use lliw::{Fg, Reset};
pub struct ANSISerialLogger; pub struct ANSISerialLogger;
impl Log for ANSISerialLogger { impl Log for ANSISerialLogger {
fn debug() { fn debug() {
// serial_print!("[{}Debug{}]",); serial_print!("[{}Debug{}]", Fg::Blue, Reset);
serial_print!(
"{}{}Attention!{}{} You have {}{}1{}{} new message",
Style::Underline,
Fg::Yellow,
Style::NoUnderline,
Fg::Reset,
Bg::White,
Fg::Black,
Bg::Reset,
Fg::Reset,
);
todo!(); todo!();
} }

View file

@ -0,0 +1 @@