forked from AbleOS/ableos
Work done on adding board support packages
This commit is contained in:
parent
bcc6a10763
commit
40f55d922d
|
@ -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
|
||||||
|
|
64
ableos/src/arch/riscv/boards/virt/virt.lds
Normal file
64
ableos/src/arch/riscv/boards/virt/virt.lds
Normal 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) }
|
||||||
|
}
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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!();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
|
Loading…
Reference in a new issue