|
@@ -5,10 +5,10 @@
|
|
extern crate alloc;
|
|
extern crate alloc;
|
|
extern crate opensbi_rt;
|
|
extern crate opensbi_rt;
|
|
|
|
|
|
|
|
+use alloc::vec;
|
|
use device_tree::util::SliceRead;
|
|
use device_tree::util::SliceRead;
|
|
use device_tree::{DeviceTree, Node};
|
|
use device_tree::{DeviceTree, Node};
|
|
-use log::{info, LevelFilter, warn};
|
|
|
|
-use alloc::vec;
|
|
|
|
|
|
+use log::{info, warn, LevelFilter};
|
|
use virtio_drivers::*;
|
|
use virtio_drivers::*;
|
|
|
|
|
|
mod virtio_impl;
|
|
mod virtio_impl;
|
|
@@ -56,8 +56,9 @@ fn virtio_probe(node: &Node) {
|
|
info!("walk dt addr={:#x}, size={:#x}", paddr, size);
|
|
info!("walk dt addr={:#x}, size={:#x}", paddr, size);
|
|
let header = unsafe { &mut *(vaddr as *mut VirtIOHeader) };
|
|
let header = unsafe { &mut *(vaddr as *mut VirtIOHeader) };
|
|
info!(
|
|
info!(
|
|
- "Detected virtio device with vendor id {:#X}",
|
|
|
|
- header.vendor_id()
|
|
|
|
|
|
+ "Detected virtio device with vendor id {:#X}, device type {:?}",
|
|
|
|
+ header.vendor_id(),
|
|
|
|
+ header.device_type(),
|
|
);
|
|
);
|
|
info!("Device tree node {:?}", node);
|
|
info!("Device tree node {:?}", node);
|
|
match header.device_type() {
|
|
match header.device_type() {
|
|
@@ -102,8 +103,7 @@ fn virtio_gpu(header: &'static mut VirtIOHeader) {
|
|
|
|
|
|
fn virtio_input(header: &'static mut VirtIOHeader) {
|
|
fn virtio_input(header: &'static mut VirtIOHeader) {
|
|
//let mut event_buf = [0u64; 32];
|
|
//let mut event_buf = [0u64; 32];
|
|
- let mut _input =
|
|
|
|
- VirtIOInput::new(header).expect("failed to create input driver");
|
|
|
|
|
|
+ let mut _input = VirtIOInput::new(header).expect("failed to create input driver");
|
|
// loop {
|
|
// loop {
|
|
// input.ack_interrupt().expect("failed to ack");
|
|
// input.ack_interrupt().expect("failed to ack");
|
|
// info!("mouse: {:?}", input.mouse_xy());
|
|
// info!("mouse: {:?}", input.mouse_xy());
|