Ver código fonte

Test VirtIO PCI devices too.

Andrew Walbran 2 anos atrás
pai
commit
330dad7191
2 arquivos alterados com 19 adições e 1 exclusões
  1. 13 0
      examples/aarch64/Makefile
  2. 6 1
      examples/aarch64/src/main.rs

+ 13 - 0
examples/aarch64/Makefile

@@ -44,10 +44,23 @@ qemu: $(kernel_bin) $(img)
 		-serial mon:stdio \
 		-kernel $(kernel_bin) \
 		-global virtio-mmio.force-legacy=false \
+		-nic none \
 		-drive file=$(img),if=none,format=raw,id=x0 \
 		-device virtio-blk-device,drive=x0 \
 		-device virtio-gpu-device
 
+qemu-pci: $(kernel_bin) $(img)
+	qemu-system-aarch64 \
+		-machine virt \
+		-cpu max \
+		-serial mon:stdio \
+		-kernel $(kernel_bin) \
+		-nic none \
+		-drive file=$(img),if=none,format=raw,id=x0 \
+		-device virtio-blk-pci,drive=x0 \
+		-device virtio-gpu-pci \
+		-device virtio-serial,id=virtio-serial0
+
 $(img):
 	dd if=/dev/zero of=$@ bs=512 count=32
 

+ 6 - 1
examples/aarch64/src/main.rs

@@ -187,7 +187,12 @@ fn enumerate_pci(pci_node: FdtNode, cam: Cam) {
                 dump_bar_contents(&mut pci_root, device_function, 4);
                 let mut transport =
                     PciTransport::new::<HalImpl>(pci_root.clone(), device_function).unwrap();
-                info!("  Features: {:#018x}", transport.read_device_features());
+                info!(
+                    "Detected virtio PCI device with device type {:?}, features {:#018x}",
+                    transport.device_type(),
+                    transport.read_device_features(),
+                );
+                virtio_device(transport);
             }
         }
     }