summary refs log tree commit diff
diff options
context:
space:
mode:
authorGurchetan Singh <gurchetansingh@chromium.org>2019-01-28 16:39:31 -0800
committerchrome-bot <chrome-bot@chromium.org>2019-03-05 12:58:51 -0800
commite95f4d75c0b24959279ce80abc340fe5f83042c0 (patch)
tree66a828a8ae647788a08298a9dd999de4a3aa1b54
parent09358ef076870390ba4617324028ac60b271545c (diff)
downloadcrosvm-e95f4d75c0b24959279ce80abc340fe5f83042c0.tar
crosvm-e95f4d75c0b24959279ce80abc340fe5f83042c0.tar.gz
crosvm-e95f4d75c0b24959279ce80abc340fe5f83042c0.tar.bz2
crosvm-e95f4d75c0b24959279ce80abc340fe5f83042c0.tar.lz
crosvm-e95f4d75c0b24959279ce80abc340fe5f83042c0.tar.xz
crosvm-e95f4d75c0b24959279ce80abc340fe5f83042c0.tar.zst
crosvm-e95f4d75c0b24959279ce80abc340fe5f83042c0.zip
virtio-gpu: add a BAR for device
BUG=chromium:924405
TEST=compile

Change-Id: I8a583df2a9db4ea7e066eb284eac54fc62580350
Reviewed-on: https://chromium-review.googlesource.com/1480744
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
-rw-r--r--devices/src/virtio/gpu/mod.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/devices/src/virtio/gpu/mod.rs b/devices/src/virtio/gpu/mod.rs
index c8d4dcd..0047bbd 100644
--- a/devices/src/virtio/gpu/mod.rs
+++ b/devices/src/virtio/gpu/mod.rs
@@ -36,6 +36,7 @@ use super::{
 
 use self::backend::Backend;
 use self::protocol::*;
+use pci::{PciBarConfiguration, PciBarPrefetchable, PciBarRegionType};
 
 // First queue is for virtio gpu commands. Second queue is for cursor commands, which we expect
 // there to be fewer of.
@@ -809,4 +810,16 @@ impl VirtioDevice for Gpu {
             return;
         }
     }
+
+    // Require 1 BAR for mapping 3D buffers
+    fn get_device_bars(&self) -> Option<Vec<PciBarConfiguration>> {
+        let mut bars = Vec::new();
+        bars.push(PciBarConfiguration::new(
+            4,
+            1 << 33,
+            PciBarRegionType::Memory64BitRegion,
+            PciBarPrefetchable::NotPrefetchable,
+        ));
+        Some(bars)
+    }
 }