set correct virtio-blk irq num --> 8, now exec syscall can read file correctly, and shell can work again

This commit is contained in:
Yu Chen 2022-06-20 23:30:42 +08:00
parent c348cbdbfa
commit 45c2caf564
2 changed files with 6 additions and 6 deletions

View file

@ -25,7 +25,7 @@ pub fn device_init() {
let machine = IntrTargetPriority::Machine; let machine = IntrTargetPriority::Machine;
plic.set_threshold(hart_id, supervisor, 0); plic.set_threshold(hart_id, supervisor, 0);
plic.set_threshold(hart_id, machine, 1); plic.set_threshold(hart_id, machine, 1);
for intr_src_id in [1usize, 10] { for intr_src_id in [8usize, 10] {
plic.enable(hart_id, supervisor, intr_src_id); plic.enable(hart_id, supervisor, intr_src_id);
plic.set_priority(intr_src_id, 1); plic.set_priority(intr_src_id, 1);
} }
@ -38,7 +38,7 @@ pub fn irq_handler() {
let mut plic = unsafe { PLIC::new(VIRT_PLIC) }; let mut plic = unsafe { PLIC::new(VIRT_PLIC) };
let intr_src_id = plic.claim(0, IntrTargetPriority::Supervisor); let intr_src_id = plic.claim(0, IntrTargetPriority::Supervisor);
match intr_src_id { match intr_src_id {
1 => BLOCK_DEVICE.handle_irq(), 8 => BLOCK_DEVICE.handle_irq(),
10 => UART.handle_irq(), 10 => UART.handle_irq(),
_ => panic!("unsupported IRQ {}", intr_src_id), _ => panic!("unsupported IRQ {}", intr_src_id),
} }

View file

@ -32,7 +32,7 @@ mod task;
mod timer; mod timer;
mod trap; mod trap;
use syscall::create_desktop; // use syscall::create_desktop; //for test
core::arch::global_asm!(include_str!("entry.asm")); core::arch::global_asm!(include_str!("entry.asm"));
@ -71,7 +71,7 @@ pub fn rust_main() -> ! {
timer::set_next_trigger(); timer::set_next_trigger();
board::device_init(); board::device_init();
fs::list_apps(); fs::list_apps();
syscall::create_desktop(); //syscall::create_desktop(); //for test
task::add_initproc(); task::add_initproc();
*DEV_NON_BLOCKING_ACCESS.exclusive_access() = true; *DEV_NON_BLOCKING_ACCESS.exclusive_access() = true;
task::run_tasks(); task::run_tasks();