From 5867aad78c4ebd154eace69b026b63d780be0e84 Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Sun, 16 Feb 2014 10:48:13 +0100
Subject: use virtio drivers for sparc64

---
 target/config/Config.in              | 17 +++++++++++++++++
 target/linux/Config.in               |  1 +
 target/linux/config/Config.in.virtio | 37 ++++++++++++++++++++++++++++++++++++
 target/sparc64/Makefile              |  7 ++++++-
 target/sparc64/kernel/qemu-sparc64   |  4 ----
 5 files changed, 61 insertions(+), 5 deletions(-)
 create mode 100644 target/linux/config/Config.in.virtio

(limited to 'target')

diff --git a/target/config/Config.in b/target/config/Config.in
index b047742b7..99e810528 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -171,6 +171,23 @@ config ADK_TARGET_KERNEL_MINICONFIG
 	default "qemu-i686" if ADK_TARGET_SYSTEM_QEMU_I686
 	default "raspberry-pi" if ADK_TARGET_SYSTEM_RASPBERRY_PI
 
+choice
+prompt "Qemu Emulation using VirtIO drivers"
+depends on ADK_TARGET_SYSTEM_QEMU_SPARC64
+
+config ADK_TARGET_QEMU_WITH_VIRTIO
+	boolean "enabled"
+	select ADK_KERNEL_BLK_DEV
+	select ADK_KERNEL_VIRTIO
+	select ADK_KERNEL_VIRTIO_PCI
+	select ADK_KERNEL_VIRTIO_NET
+	select ADK_KERNEL_VIRTIO_BLK
+
+config ADK_TARGET_QEMU_WITHOUT_VIRTIO
+	boolean "disabled"
+
+endchoice
+
 choice
 prompt "Qemu MICROBLAZE Emulation"
 depends on ADK_TARGET_SYSTEM_QEMU_MICROBLAZE || ADK_TARGET_SYSTEM_QEMU_MICROBLAZEEL
diff --git a/target/linux/Config.in b/target/linux/Config.in
index e4b81dd2f..f4ead4caf 100644
--- a/target/linux/Config.in
+++ b/target/linux/Config.in
@@ -25,3 +25,4 @@ source target/linux/config/Config.in.serial
 source target/linux/config/Config.in.spi
 source target/linux/config/Config.in.kvm
 source target/linux/config/Config.in.debug
+source target/linux/config/Config.in.virtio
diff --git a/target/linux/config/Config.in.virtio b/target/linux/config/Config.in.virtio
new file mode 100644
index 000000000..51cf67d54
--- /dev/null
+++ b/target/linux/config/Config.in.virtio
@@ -0,0 +1,37 @@
+config ADK_KERNEL_VIRTIO
+	boolean
+
+config ADK_KERNEL_VIRTIO_PCI
+	boolean
+
+config ADK_KERNEL_VIRTIO_NET
+	boolean
+
+config ADK_KERNEL_VIRTIO_BLK
+	boolean
+
+menu "Virtio driver support"
+depends on !ADK_TARGET_QEMU_WITH_VIRTIO
+
+config ADK_KPACKAGE_KMOD_VIRTIO_NET
+	prompt "kmod-virtio-net.................... Virtio net driver"
+	tristate
+	select ADK_KERNEL_VIRTIO
+	select ADK_KERNEL_VIRTIO_PCI
+	depends on !ADK_KERNEL_VIRTIO_NET
+	default n
+	help
+	  Enables support for Virtio Net driver.
+
+config ADK_KPACKAGE_KMOD_VIRTIO_BLK
+	prompt "kmod-virtio-block.................. Virtio block driver"
+	tristate
+	select ADK_KERNEL_VIRTIO
+	select ADK_KERNEL_VIRTIO_PCI
+	select ADK_KERNEL_BLK_DEV
+	depends on !ADK_KERNEL_VIRTIO_BLK
+	default n
+	help
+	  Enables support for Virtio Block driver.
+
+endmenu
diff --git a/target/sparc64/Makefile b/target/sparc64/Makefile
index 73f765f96..7a31c1499 100644
--- a/target/sparc64/Makefile
+++ b/target/sparc64/Makefile
@@ -18,7 +18,12 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_SPARC64),y)
 	@echo "Use following command to create a QEMU Image:"
 	@echo "./scripts/create.sh +g qemu-${CPU_ARCH}.img $(BIN_DIR)/$(ROOTFSTARBALL)"
 	@echo "Start qemu with following command line:"
-	@echo 'qemu-system-sparc64 -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img -append "root=/dev/sda1"'
+ifeq ($(ADK_TARGET_QEMU_WITH_VIRTIO),y)
+	@echo 'qemu-system-sparc64 -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL) -drive file=qemu-${CPU_ARCH}.img,if=virtio,index=0 \
+		-net nic,model=virtio -net user'
+else
+	@echo 'qemu-system-sparc64 -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
+endif
 endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfs)
diff --git a/target/sparc64/kernel/qemu-sparc64 b/target/sparc64/kernel/qemu-sparc64
index 73e26ec4d..5119f1225 100644
--- a/target/sparc64/kernel/qemu-sparc64
+++ b/target/sparc64/kernel/qemu-sparc64
@@ -16,10 +16,6 @@ CONFIG_SCSI=y
 CONFIG_SCSI_DMA=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ATA=y
-CONFIG_ATA_SFF=y
-CONFIG_ATA_BMDMA=y
-CONFIG_PATA_CMD64X=y
 CONFIG_NETDEVICES=y
 CONFIG_NET_CORE=y
 CONFIG_ETHERNET=y
-- 
cgit v1.2.3