summary refs log tree commit diff
path: root/aarch64
diff options
context:
space:
mode:
authorDaniel Verkamp <dverkamp@chromium.org>2018-10-15 14:32:30 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-10-31 21:59:16 -0700
commit402d53bba8f92794e322e1497115eb2d15b635df (patch)
tree94dfe641cd87d410b67cf374829826c6cfc31137 /aarch64
parent5656c124af2bb956dba19e409a269ca588c685e3 (diff)
downloadcrosvm-402d53bba8f92794e322e1497115eb2d15b635df.tar
crosvm-402d53bba8f92794e322e1497115eb2d15b635df.tar.gz
crosvm-402d53bba8f92794e322e1497115eb2d15b635df.tar.bz2
crosvm-402d53bba8f92794e322e1497115eb2d15b635df.tar.lz
crosvm-402d53bba8f92794e322e1497115eb2d15b635df.tar.xz
crosvm-402d53bba8f92794e322e1497115eb2d15b635df.tar.zst
crosvm-402d53bba8f92794e322e1497115eb2d15b635df.zip
devices: virtio: remove virtio MMIO transport
All devices have been converted to PCI, so we don't need MmioDevice.

BUG=chromium:854766
TEST=Boot crosvm on kevin and verify virtio devices still work

Change-Id: Ib6400e15bdb2153d14795de3cb0bfbf1845a8891
Signed-off-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1281832
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Diffstat (limited to 'aarch64')
-rw-r--r--aarch64/src/fdt.rs32
-rw-r--r--aarch64/src/lib.rs2
2 files changed, 1 insertions, 33 deletions
diff --git a/aarch64/src/fdt.rs b/aarch64/src/fdt.rs
index 97f3c61..01ac887 100644
--- a/aarch64/src/fdt.rs
+++ b/aarch64/src/fdt.rs
@@ -36,7 +36,6 @@ use AARCH64_SERIAL_SPEED;
 // These are related to guest virtio devices.
 use AARCH64_IRQ_BASE;
 use AARCH64_MMIO_BASE;
-use AARCH64_MMIO_LEN;
 use AARCH64_MMIO_SIZE;
 use AARCH64_PCI_CFG_BASE;
 use AARCH64_PCI_CFG_SIZE;
@@ -368,30 +367,6 @@ fn create_chosen_node(fdt: &mut Vec<u8>, cmdline: &CStr) -> Result<(), Box<Error
     Ok(())
 }
 
-fn create_io_nodes(fdt: &mut Vec<u8>) -> Result<(), Box<Error>> {
-    // TODO(sonnyrao) Pass in bus to get number of devices
-    // HACK -- this is creating a static number of device nodes
-    // the unused nodes just throw a warning when the guest boots
-    for i in 0..8 {
-        let addr = AARCH64_MMIO_BASE + i * AARCH64_MMIO_LEN;
-        let node = format!("virtio@{:x}", addr);
-        let reg = generate_prop64(&[addr, AARCH64_MMIO_LEN]);
-        let irq = generate_prop32(&[
-            GIC_FDT_IRQ_TYPE_SPI,
-            AARCH64_IRQ_BASE + i as u32,
-            IRQ_TYPE_EDGE_RISING,
-        ]);
-
-        begin_node(fdt, &node)?;
-        property_string(fdt, "compatible", "virtio,mmio")?;
-        property(fdt, "reg", &reg)?;
-        property_null(fdt, "dma-coherent")?;
-        property(fdt, "interrupts", &irq)?;
-        end_node(fdt)?;
-    }
-    Ok(())
-}
-
 fn create_pci_nodes(
     fdt: &mut Vec<u8>,
     pci_irqs: Vec<(u32, PciInterruptPin)>,
@@ -539,12 +514,7 @@ pub fn create_fdt(
     create_timer_node(&mut fdt, num_cpus)?;
     create_serial_node(&mut fdt)?;
     create_psci_node(&mut fdt)?;
-    // TODO(dverkamp): remove create_io_nodes() once the PCI conversion is complete
-    if !pci_irqs.is_empty() {
-        create_pci_nodes(&mut fdt, pci_irqs)?;
-    } else {
-        create_io_nodes(&mut fdt)?;
-    }
+    create_pci_nodes(&mut fdt, pci_irqs)?;
     create_rtc_node(&mut fdt)?;
     // End giant node
     end_node(&mut fdt)?;
diff --git a/aarch64/src/lib.rs b/aarch64/src/lib.rs
index 064bbbf..fe80534 100644
--- a/aarch64/src/lib.rs
+++ b/aarch64/src/lib.rs
@@ -111,8 +111,6 @@ const AARCH64_PCI_CFG_SIZE: u64 = 0x1000000;
 const AARCH64_MMIO_BASE: u64 = 0x1010000;
 // Size of the whole MMIO region.
 const AARCH64_MMIO_SIZE: u64 = 0x100000;
-// Each MMIO device gets a 4k page.
-const AARCH64_MMIO_LEN: u64 = 0x1000;
 // Virtio devices start at SPI interrupt number 2
 const AARCH64_IRQ_BASE: u32 = 2;