diff options
author | Daniel Verkamp <dverkamp@chromium.org> | 2018-10-15 14:32:30 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-10-31 21:59:16 -0700 |
commit | 402d53bba8f92794e322e1497115eb2d15b635df (patch) | |
tree | 94dfe641cd87d410b67cf374829826c6cfc31137 /aarch64 | |
parent | 5656c124af2bb956dba19e409a269ca588c685e3 (diff) | |
download | crosvm-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.rs | 32 | ||||
-rw-r--r-- | aarch64/src/lib.rs | 2 |
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", ®)?; - 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; |