From 832f830cc4f0b77e493515cc227516cefa31f14e Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 1 Aug 2017 19:40:25 -0600 Subject: [PATCH] Update EventSte structure --- xhcid/src/xhci/event.rs | 7 ++++--- xhcid/src/xhci/mod.rs | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/xhcid/src/xhci/event.rs b/xhcid/src/xhci/event.rs index ae428281a4..309eed226b 100644 --- a/xhcid/src/xhci/event.rs +++ b/xhcid/src/xhci/event.rs @@ -6,8 +6,9 @@ use super::trb::Trb; #[repr(packed)] pub struct EventRingSte { pub address: Mmio, - pub size: Mmio, - _rsvd: Mmio, + pub size: Mmio, + _rsvd: Mmio, + _rsvd2: Mmio, } pub struct EventRing { @@ -23,7 +24,7 @@ impl EventRing { }; ring.ste.address.write(ring.trbs.physical() as u64); - ring.ste.size.write(ring.trbs.len() as u32); + ring.ste.size.write(ring.trbs.len() as u16); Ok(ring) } diff --git a/xhcid/src/xhci/mod.rs b/xhcid/src/xhci/mod.rs index a9c4b3f457..30db7b9a83 100644 --- a/xhcid/src/xhci/mod.rs +++ b/xhcid/src/xhci/mod.rs @@ -111,12 +111,12 @@ impl Xhci { // Set event ring segment table registers println!(" - Interrupter 0: {:X}", self.run.ints.as_ptr() as usize); + println!(" - Write ERDP"); + self.run.ints[0].erdp.write(self.cmd.events.trbs.physical() as u64); println!(" - Write ERSTZ"); self.run.ints[0].erstsz.write(1); println!(" - Write ERSTBA: {:X}", self.cmd.events.ste.physical() as u64); self.run.ints[0].erstba.write(self.cmd.events.ste.physical() as u64); - println!(" - Write ERDP"); - self.run.ints[0].erdp.write(self.cmd.events.trbs.physical() as u64); // Set run/stop to 1 println!(" - Start");